Difference between revisions of "Applications and libraries/Games"

From HaskellWiki
Jump to navigation Jump to search
(→‎Games: Moved Yogurt to its correct place)
(42 intermediate revisions by 12 users not shown)
Line 5: Line 5:
   
 
== Games ==
 
== Games ==
  +
  +
See also the [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] category on Hackage.
   
 
;[http://hackage.haskell.org/package/babylon babylon]
 
;[http://hackage.haskell.org/package/babylon babylon]
 
: An implementation of a simple 2-player board game. Uses wxHaskell.
 
: An implementation of a simple 2-player board game. Uses wxHaskell.
   
  +
;[http://hackage.haskell.org/package/boomslang boomslang]
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.
 
  +
: A clone of the popular Flash game Boomshine.
  +
  +
;[https://github.com/yairchu/defend/tree Defend The King from Forces of Different]: A simple multiplayer real time strategy game.
  +
 
; [http://www.increpare.com/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.
   
 
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]
 
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]
Line 18: Line 25:
   
 
;[[GeBoP]]
 
;[[GeBoP]]
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.
+
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hex, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.
  +
  +
; [http://folk.uio.no/carljsv/gorillabas/GorillaBAS-0.1.tar.gz GorillaBAS]
  +
: A concrete game from an attempt on defining computer games.
   
 
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]
 
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]
 
:An asteroid like game
 
:An asteroid like game
   
  +
;[http://www.hedgewars.org/ Hedgewars]
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]
 
  +
:A turn-based artillery game. The game server is written in Haskell.
  +
 
;[http://www.cs.ox.ac.uk/people/ian.lynagh/Hetris/ Hetris]
 
:ASCII tetris in Haskell
 
:ASCII tetris in Haskell
   
Line 31: Line 44:
 
;[http://hackage.haskell.org/package/hinvaders hinvaders]
 
;[http://hackage.haskell.org/package/hinvaders hinvaders]
 
:A simple ANSI-graphics space invaders written entirely in Haskell 98.
 
:A simple ANSI-graphics space invaders written entirely in Haskell 98.
 
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]
 
:Chess AI engine
 
   
 
;[http://mu.org/~mux/LambdaChess/ LambdaChess]
 
;[http://mu.org/~mux/LambdaChess/ LambdaChess]
 
:GTK chess client
 
:GTK chess client
   
;[https://github.com/kosmikus/LambdaHack LambdaHack]
+
;[http://quasimal.com/projects/level_0.html Level 0]
  +
:A fun and featureful Snake II clone using SDL.
:A small roguelike game with a flexible engine. GTK and terminal front-ends.
 
   
 
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]
 
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]
Line 53: Line 63:
 
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])
 
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])
   
  +
;[http://mokehehe.blogspot.com/2009/04/super-nario-move-to-github.html Monao]
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]
 
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]
+
:A Super Mario clone, using an SDL binding different from the one in Hackage: [https://github.com/mokehehe/monao Monao on github]
   
 
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]
 
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]
 
:Octane Mech, OpenGL Haskell based mech game
 
:Octane Mech, OpenGL Haskell based mech game
   
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]
+
;[http://haskell-tetris.pbworks.com/w/page/16967421/Main OpenGL Tetris]
 
:Tetris in Haskell with OpenGL
 
:Tetris in Haskell with OpenGL
   
Line 73: Line 83:
 
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]
 
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]
 
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.
 
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.
  +
  +
;[http://hackage.haskell.org/package/SpaceInvaders Space Invaders]
  +
:A video game, based on [[Yampa]]
  +
  +
;[http://hackage.haskell.org/package/stunts stunts]
  +
:A revival of the classic racing game Stunts to serve as a non-toy-sized example for LambdaCube.
  +
  +
;[https://github.com/nbartlomiej/tfoo Tfoo]
  +
:A simple Five in a Row game. Online, with server-sent events, deployed to [http://tfoo.herokuapp.com/ Heroku], open source.
   
 
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)
 
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)
Line 83: Line 102:
 
:An implementation of xiangqi for Unix, using gtk2hs + cairo
 
:An implementation of xiangqi for Unix, using gtk2hs + cairo
   
  +
;{{HackagePackage | id =Yogurt}}
  +
:A functional MUD client featuring prioritized, regex-based hooks, variables, timers, logging, dynamic loading of Yogurt scripts and more. For example programs, please see [http://code.google.com/p/yogurt-mud/ Yogurt's home page].
   
 
=== Unfinished/in-progress games ===
 
=== Unfinished/in-progress games ===
  +
  +
;[https://github.com/Mikolaj/Allure Allure of the Stars]
  +
:A near-future Sci-Fi roguelike and tactical squad game. Long-term goals are high replayability and auto-balancing through procedural content generation and persistent content modification based on player behaviour. The game is written using the [http://hackage.haskell.org/package/LambdaHack LambdaHack] roguelike game engine.
  +
  +
;[http://ipwnstudios.com/node/4 Bloodknight]
  +
:An action RPG for mobile devices
   
 
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]
 
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]
Line 92: Line 119:
 
:A Haskell implementation of hashlife. It uses GLUT.
 
:A Haskell implementation of hashlife. It uses GLUT.
   
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]
+
;[http://joyridelabs.de/game/ Nikki and the Robots]
  +
:A puzzle, platformer game
: An attempt on a "five-in-a-row"-program
 
 
   
 
== Game Engines and Libraries ==
 
== Game Engines and Libraries ==
   
  +
;[http://hackage.haskell.org/package/bullet Bullet]
;FunGEn
 
  +
:A wrapper for the Bullet physics engine.
:FunGEn (Functional Game Engine) is a platform-independent 2D OpenGL-based BSD-licensed game engine. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/Examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/Examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/Examples/worms/worms.hs games], in Haskell.
 
   
 
;[http://hackage.haskell.org/package/FunGEn FunGEn]
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 2002 release and project page with docs
 
 
:FunGEn (Functional Game Engine) is a platform-independent BSD-licensed 2D game engine based on OpenGL and GLUT. Its light dependencies make it easy to install, however GLUT is reputed to be unsuitable for simultaneous keypresses. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/sordina/fungen/browse/examples/helloworld.hs simple] [http://darcsden.com/sordina/fungen/browse/examples/pong/pong.hs 2D] [http://darcsden.com/sordina/fungen/browse/examples/worms/worms.hs games], in Haskell. Example code: [http://joyful.com/fungen/old-site/example.html A Brief Example]. Forks and patches welcome!
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Miloslav Raus's 2008 cabalised version, no repo
 
  +
* [http://darcsden.com/simon/fungen fungen] Simon Michael's 2008/2011 branch, cabalised and updated for GHC 6.12; forks and patches welcome
 
  +
;[http://projects.haskell.org/game-tree/ game-tree]
 
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.
  +
  +
;[http://hackage.haskell.org/package/GLFW-b GLFW-b]
  +
:Bindings to GLFW, a free, open source, multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time.
  +
  +
;[http://hackage.haskell.org/package/HGamer3D HGamer3D]
  +
:A game engine for Windows which includes Haskell bindings to a couple of C++ libraries and a Haskell API on top of that. Features include Audio, Joystick, Mouse and Keyboard handling, GUI, Network, Physics, 3D graphics.
   
 
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]
 
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.
+
:Hipmunk: A Haskell binding for [http://chipmunk-physics.net/ Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.
   
 
;[[Hpysics]]
 
;[[Hpysics]]
 
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.
 
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.
   
;[http://projects.haskell.org/game-tree/ game-tree]
+
;[http://hackage.haskell.org/package/hogre hogre]
  +
:Haskell bindings to the excellent OGRE 3D rendering engine. Ogre has been used in commercial games such as Torchlight and several books exist documenting the Ogre API. Ogre uses an MIT license making it compatible with many Haskell libraries.
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.
 
   
 
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]
 
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]
 
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine
 
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine
   
  +
;[http://lambdacube3d.wordpress.com/ LambdaCube 3D]
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]
 
  +
:LambdaCube 3D is a domain specific language and library that makes it possible to program GPUs in a purely functional style.
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.
 
   
   
 
=== Unfinished/in-progress game engines/libraries ===
 
=== Unfinished/in-progress game engines/libraries ===
  +
  +
;[https://github.com/adorablepuppy/CurryDog CurryDog]
  +
:Aims to be a 2d and 3d modular game engine.
  +
  +
;[https://github.com/keera-studios/gtk-helpers gtk-helpers]
  +
:A collection of auxiliary operations related to Gtk2hs. See also [http://keera.co.uk/blog/2013/03/19/creating-board-games-in-haskell/ Creating board games in Haskell in 100 lines of code]
   
 
;[[HaskGame]]
 
;[[HaskGame]]
Line 128: Line 168:
 
; [https://github.com/shicks/hsgame hsgame]
 
; [https://github.com/shicks/hsgame hsgame]
 
:A framework for network games
 
:A framework for network games
  +
  +
;[https://github.com/kosmikus/LambdaHack LambdaHack]
  +
:A game engine library for roguelike games of arbitrary theme, size and complexity, packaged together with a small example dungeon crawler. When completed, it will let you specify content to be procedurally generated, define the AI behaviour on top of the generic content-independent rules and compile a ready-to-play game binary, using either the supplied or a custom-made main loop. Several frontends are available (GTK is the default) and many other generic engine components are easily overridden, but the fundamental source of flexibility lies in the strict and type-safe separation of code and content.
  +
   
   

Revision as of 21:31, 6 April 2013

This page contains a list of libraries and tools in a certain category. For a comprehensive list of such pages, see Applications and libraries.

See also: Game Development


Games

See also the Game category on Hackage.

babylon
An implementation of a simple 2-player board game. Uses wxHaskell.
boomslang
A clone of the popular Flash game Boomshine.
Defend The King from Forces of Different
A simple multiplayer real time strategy game.
Endless Cavern
A 2D procedurally-generated cave exploration game.
Foo
Foo (abbreviation from football) is a playing machine of Paper Soccer, a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.
Frag
Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.
GeBoP
The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hex, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.
GorillaBAS
A concrete game from an attempt on defining computer games.
Haskell in Space
An asteroid like game
Hedgewars
A turn-based artillery game. The game server is written in Haskell.
Hetris
ASCII tetris in Haskell
hfiar
Four in a Row in Haskell. Uses wxHaskell.
hinvaders
A simple ANSI-graphics space invaders written entirely in Haskell 98.
LambdaChess
GTK chess client
Level 0
A fun and featureful Snake II clone using SDL.
Lost Cities
A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.
Mage
Nethack clone written in Haskell (The web site have this mage-1.0.pre35.tar.gz file containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.
MazesOfMonad
Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.
Monadius
Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on Hackage)
Monao
A Super Mario clone, using an SDL binding different from the one in Hackage: Monao on github
Octane Mech
Octane Mech, OpenGL Haskell based mech game
OpenGL Tetris
Tetris in Haskell with OpenGL
Paratrooper
Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.
Raincat
2D puzzle game featuring a fuzzy little cat (uses GLUT)
Roguestar
Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.
Shu-thing
A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.
Space Invaders
A video game, based on Yampa
stunts
A revival of the classic racing game Stunts to serve as a non-toy-sized example for LambdaCube.
Tfoo
A simple Five in a Row game. Online, with server-sent events, deployed to Heroku, open source.
TriHs (tar.gz)
A 1- or 2-player Tetris game using Gtk2Hs and Cairo.
wxAsteroids
Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.
Xiangqiboard
An implementation of xiangqi for Unix, using gtk2hs + cairo
Yogurt
A functional MUD client featuring prioritized, regex-based hooks, variables, timers, logging, dynamic loading of Yogurt scripts and more. For example programs, please see Yogurt's home page.

Unfinished/in-progress games

Allure of the Stars
A near-future Sci-Fi roguelike and tactical squad game. Long-term goals are high replayability and auto-balancing through procedural content generation and persistent content modification based on player behaviour. The game is written using the LambdaHack roguelike game engine.
Bloodknight
An action RPG for mobile devices
haskell-game-of-life
Conway's Game of Life
HsLife
A Haskell implementation of hashlife. It uses GLUT.
Nikki and the Robots
A puzzle, platformer game

Game Engines and Libraries

Bullet
A wrapper for the Bullet physics engine.
FunGEn
FunGEn (Functional Game Engine) is a platform-independent BSD-licensed 2D game engine based on OpenGL and GLUT. Its light dependencies make it easy to install, however GLUT is reputed to be unsuitable for simultaneous keypresses. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together simple 2D games, in Haskell. Example code: A Brief Example. Forks and patches welcome!
game-tree
game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.
GLFW-b
Bindings to GLFW, a free, open source, multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time.
HGamer3D
A game engine for Windows which includes Haskell bindings to a couple of C++ libraries and a Haskell API on top of that. Features include Audio, Joystick, Mouse and Keyboard handling, GUI, Network, Physics, 3D graphics.
Hipmunk
Hipmunk: A Haskell binding for Chipmunk. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also HipmunkPlayground: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.
Hpysics
Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.
hogre
Haskell bindings to the excellent OGRE 3D rendering engine. Ogre has been used in commercial games such as Torchlight and several books exist documenting the Ogre API. Ogre uses an MIT license making it compatible with many Haskell libraries.
IrrHaskell
Haskell binding to the Irrlicht game engine. The Irrlicht Engine is an open source high performance realtime 3D engine
LambdaCube 3D
LambdaCube 3D is a domain specific language and library that makes it possible to program GPUs in a purely functional style.


Unfinished/in-progress game engines/libraries

CurryDog
Aims to be a 2d and 3d modular game engine.
gtk-helpers
A collection of auxiliary operations related to Gtk2hs. See also Creating board games in Haskell in 100 lines of code
HaskGame
An incomplete graphics system abstraction layer.
hsgame
A framework for network games
LambdaHack
A game engine library for roguelike games of arbitrary theme, size and complexity, packaged together with a small example dungeon crawler. When completed, it will let you specify content to be procedurally generated, define the AI behaviour on top of the generic content-independent rules and compile a ready-to-play game binary, using either the supplied or a custom-made main loop. Several frontends are available (GTK is the default) and many other generic engine components are easily overridden, but the fundamental source of flexibility lies in the strict and type-safe separation of code and content.