Difference between revisions of "Applications and libraries/Games"
Jump to navigation
Jump to search
(→Games: Changed Nario to Monao, updated links for this game) |
(Remove my project CurryDog.) |
||
(68 intermediate revisions by 22 users not shown) | |||
Line 6: | Line 6: | ||
== Games == |
== Games == |
||
− | See also the [http://hackage.haskell.org/packages/archive/pkg-list.html#cat: |
+ | See also the [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:Game Game] category on Hackage, |
+ | and the [https://github.com/haskell-game/tiny-games-hs#readme Haskell Tiny Game Jam]. |
||
+ | ; [http://allureofthestars.com Allure of the Stars] |
||
− | ; [http://folk.uio.no/carljsv/gorillabas/GorillaBAS-0.1.tar.gz GorillaBAS] |
||
+ | : A near-future Sci-Fi roguelike and tactical squad combat game. In brilliant 16-color ASCII, grid-based, turn-based, with a story, stealth, cool-down melee weapons, slow projectiles and fast explosions. Browser and native binaries. Free software using the {{HackagePackage|id=LambdaHack}} roguelike game engine. This incarnation complete, but in constant development and accepting contributions of all kinds. |
||
− | : A concrete game from an attempt on defining computer games. |
||
+ | ;{{HackagePackage|id=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. |
||
− | ;[ |
+ | ;[https://www.haskell.org/communities/11-2015/html/report.html#sect7.13.5 Barbarossa] |
+ | :A UCI chess engine written completely in Haskell |
||
+ | |||
+ | ;[https://github.com/plneappl/BeHaskelled BeHaskelled] |
||
+ | : A Bejeweled clone written completely in Haskell with {{HackagePackage|id=gloss}}. |
||
+ | |||
+ | ;{{HackagePackage|id=board-games}} |
||
+ | : Computer player algorithms for three games: Connect Four, Rows&Columns, Mastermind. Intended for running as a web server. |
||
+ | |||
+ | ;{{HackagePackage|id=boomslang}} |
||
: A clone of the popular Flash game Boomshine. |
: A clone of the popular Flash game Boomshine. |
||
− | ;[https://github.com/yairchu/defend |
+ | ;[https://github.com/yairchu/defend Defend The King from Forces of Different] |
+ | : A simple multiplayer real time strategy game. |
||
+ | |||
+ | ;[https://hackage.haskell.org/package/dual-game dual] |
||
+ | : Network multiplayer 2D shooter, clone of an Android game with the same name |
||
− | ; [http://www. |
+ | ; [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 26: | Line 41: | ||
;[[Frag]] |
;[[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. |
: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. |
||
+ | |||
+ | ;[http://mfuglos.github.io/jeopardy Fuglos Jeopardy] |
||
+ | :Fuglos Jeopardy is a free implementation of a game resembling the popular quiz show 'Jeopardy'. It is written using Gtk2Hs as GUI toolkit. It is quite feature complete and easy to use. It contains support for LaTeX, so you can for example use LaTeX math syntax in your data sheets and thus organize a math jeopoardy event. Licensed under GPL3. |
||
;[[GeBoP]] |
;[[GeBoP]] |
||
− | :The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, |
+ | :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. |
||
+ | |||
+ | ; [https://github.com/ocharles/hadoom hadoom] |
||
+ | :A clone of Doom, using reactive-banana, GTK, and the "diagrams" library. |
||
+ | |||
+ | ; [https://github.com/ivanperez-keera/haskanoid haskanoid] |
||
+ | :A breakout game with SDL graphics and Kinect and Wiimote support. Written in FRP, there's a fork in Haskell for Android. |
||
;[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] |
||
Line 36: | Line 63: | ||
:A turn-based artillery game. The game server is written in Haskell. |
:A turn-based artillery game. The game server is written in Haskell. |
||
− | ;[http:// |
+ | ;[http://www.cs.ox.ac.uk/people/ian.lynagh/Hetris/ Hetris] |
− | :ASCII |
+ | :ASCII Tetris in Haskell |
+ | ;{{HackagePackage|id=hfiar}} |
||
− | ;[http://hackage.haskell.org/package/hfiar hfiar] |
||
:Four in a Row in Haskell. Uses wxHaskell. |
:Four in a Row in Haskell. Uses wxHaskell. |
||
+ | ;{{HackagePackage|id=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://morgenthum.dev/static/lambda-heights Lambda-Heights] |
||
− | ;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess] |
||
+ | :A fast paced 2D arcade game written entirely in Haskell with the SDL2 binding. |
||
− | :Chess AI engine |
||
;[http://mu.org/~mux/LambdaChess/ LambdaChess] |
;[http://mu.org/~mux/LambdaChess/ LambdaChess] |
||
:GTK chess client |
:GTK chess client |
||
− | ;[https://github.com/ |
+ | ;[https://github.com/mchakravarty/lazy-lambda Lazy Lambda] |
+ | :Lazy Lambda is a simple Flappy Bird clone in Haskell, implemented with [https://github.com/mchakravarty/HaskellSpriteKit Haskell SpriteKit]. It was originally developed for the [https://speakerdeck.com/mchakravarty/playing-with-graphics-and-animations-in-haskell Compose :: Melbourne 2016 keynote], where it was live coded in the second half of the presentation. |
||
− | :A small roguelike game with a flexible engine. GTK and terminal front-ends. |
||
+ | |||
+ | ;[http://quasimal.com/projects/level_0.html Level 0] |
||
+ | :A fun and featureful Snake II clone using SDL. |
||
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities] |
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities] |
||
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell. |
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell. |
||
+ | ;{{HackagePackage|id=mage}} |
||
− | ;[http://hackage.haskell.org/package/mage Mage] |
||
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz 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. |
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz 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. |
||
− | ; |
+ | ;{{HackagePackage|id=MazesOfMonad}} |
− | :Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only. |
+ | :Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only. Modernized repository [https://github.com/bbarker/MazesOfMonad maintained on GitHub]. |
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius] |
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius] |
||
− | :Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http:// |
+ | :Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on Hackage as {{HackagePackage|id=Monadius}}; see also the [http://www.youtube.com/watch?v=zqFgQiPKtOI video]) |
;[http://mokehehe.blogspot.com/2009/04/super-nario-move-to-github.html Monao] |
;[http://mokehehe.blogspot.com/2009/04/super-nario-move-to-github.html Monao] |
||
− | :A Super Mario clone, using an SDL binding different from the one in Hackage: [https://github.com/mokehehe/monao Monao on github] |
+ | :A Super Mario clone, using an SDL binding different from the one in Hackage: [https://github.com/mokehehe/monao Monao on github], [https://github.com/keera-studios/monao New maintained version on github] |
+ | |||
+ | ;[http://joyridelabs.de/game/ Nikki and the Robots] |
||
+ | :A puzzle, platformer game. |
||
;[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:// |
+ | ;[http://sourceforge.net/projects/puzhs/ puzhs] |
+ | :Haskell bindings to [https://code.google.com/p/puz/ libpuz] |
||
+ | |||
+ | ;[http://haskell-tetris.pbworks.com/w/page/16967421/Main OpenGL Tetris] |
||
:Tetris in Haskell with OpenGL |
:Tetris in Haskell with OpenGL |
||
− | ;[http:// |
+ | ;[http://srineet.brinkster.net/para/para.html Paratrooper] |
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell. |
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell. |
||
Line 84: | Line 120: | ||
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL. |
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL. |
||
+ | ;{{HackagePackage|id=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. |
||
− | ; |
+ | ;{{HackagePackage|id=SpaceInvaders}} |
:A video game, based on [[Yampa]] |
:A video game, based on [[Yampa]] |
||
+ | ;[https://github.com/byorgey/swarm/ swarm] |
||
− | ;[http://hackage.haskell.org/package/stunts stunts] |
||
+ | :2D programming and resource gathering game. |
||
+ | |||
+ | ;{{HackagePackage|id=stunts}} |
||
:A revival of the classic racing game Stunts to serve as a non-toy-sized example for LambdaCube. |
: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) |
||
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo. |
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo. |
||
+ | |||
+ | ;[http://ariis.it/static/articles/venzone/page.html venzone] |
||
+ | :ASCII platform/adventure. |
||
;[[wxAsteroids]] |
;[[wxAsteroids]] |
||
Line 102: | Line 147: | ||
: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]. |
||
+ | |||
+ | === Commercial games === |
||
+ | |||
+ | ;[https://enpuzzled.haskell.games Enpuzzled] |
||
+ | :2D puzzle game for iOS and Android written in Haskell using SDL2 graphics and the FRP implementation [https://github.com/ivanperez-keera/Yampa Yampa]. Created by [http://facebook.com/keerastudios Keera Studios], available on [https://apps.apple.com/us/app/enpuzzled/id1460083994 iTunes] and [https://play.google.com/store/apps/details?id=uk.co.keera.games.enpuzzled Google Play for Android]. |
||
+ | |||
+ | ;[https://magiccookies.haskell.games Magic Cookies!] |
||
+ | :A lights-out clone for iOS and Android written in Haskell using SDL2 graphics and the FRP implementation [https://github.com/ivanperez-keera/Yampa Yampa]. Created by [http://facebook.com/keerastudios Keera Studios], available on [https://itunes.apple.com/us/app/magic-cookies/id1244709871?mt=8 iTunes] and [https://play.google.com/store/apps/details?id=uk.co.keera.games.magiccookies Google Play for Android]. |
||
+ | |||
+ | ;[https://magiccookies2.haskell.games Magic Cookies 2!] |
||
+ | :Second game in the Magic Cookies saga, for iOS and Android written in Haskell using SDL2 graphics and the FRP implementation [https://github.com/ivanperez-keera/Yampa Yampa]. Created by [http://facebook.com/keerastudios Keera Studios], available on [https://apps.apple.com/us/app/magic-cookies-2/id1602081807 iTunes] and [https://play.google.com/store/apps/details?id=uk.co.keera.games.magiccookies2&hl=en_US Google Play for Android]. |
||
=== Unfinished/in-progress games === |
=== Unfinished/in-progress games === |
||
Line 110: | Line 168: | ||
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life] |
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life] |
||
: Conway's Game of Life |
: Conway's Game of Life |
||
+ | |||
+ | ; [https://github.com/EricThoma/hchess hchess] |
||
+ | : Incomplete toy chess engine |
||
;[http://dotat.at/prog/life/hslife.hs HsLife] |
;[http://dotat.at/prog/life/hslife.hs HsLife] |
||
:A Haskell implementation of hashlife. It uses GLUT. |
:A Haskell implementation of hashlife. It uses GLUT. |
||
− | |||
− | ;[http://joyridelabs.de/game/ Nikki and the Robots] |
||
− | :A puzzle, platformer game |
||
== Game Engines and Libraries == |
== Game Engines and Libraries == |
||
+ | |||
+ | ;[https://github.com/egonSchiele/actionkid actionkid] |
||
+ | :A video game framework, with a [http://vimeo.com/109663514 video tutorial] and [https://github.com/egonSchiele/chips chips], a game based on it. |
||
+ | |||
+ | ;[[Bogre-Banana]] |
||
+ | :A 3D game-engine for Haskell. It uses Haskell bindings to the OGRE 3D engine and OIS input system and a library called reactive-banana, to create a "Functional Reactive Programming" game-engine. |
||
+ | |||
+ | ;[http://hackage.haskell.org/package/bullet Bullet] |
||
+ | :A wrapper for the Bullet physics engine. |
||
+ | |||
+ | ;[http://hackage.haskell.org/package/free-game free-game] |
||
+ | :A GUI/game library based on free monads. |
||
;[http://hackage.haskell.org/package/FunGEn FunGEn] |
;[http://hackage.haskell.org/package/FunGEn 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 [ |
+ | :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 [https://github.com/haskell-game/fungen/blob/master/examples/hello.hs simple] [https://github.com/haskell-game/fungen/blob/master/examples/pong/pong.hs 2D] [https://github.com/haskell-game/fungen/blob/master/examples/worms/worms.hs games], in Haskell. Example code: [http://joyful.com/fungen/site/example.html A Brief Example]. 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] |
;[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. |
:Bindings to GLFW, a free, open source, multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time. |
||
+ | |||
+ | ;[http://gloss.ouroborus.net/ Gloss] |
||
+ | :An OpenGL abstraction layer supporting game-style main loops. |
||
+ | |||
+ | ;[https://github.com/haskell-game haskell-game] |
||
+ | :A project to make game development with Haskell easier to get started with by providing a suite of libraries for covering all sorts of aspects of game development. |
||
+ | |||
+ | ;[https://github.com/mchakravarty/HaskellSpriteKit Haskell SpriteKit] |
||
+ | :Haskell SpriteKit provides a purely functional interface to the SpriteKit game engine on Apple platforms. SpriteKit is a state-of-the-art engine for 2D games and includes a versatile animation framework and an integrated physics engine. It is easy to use without the need for low-level programming or advanced concepts, such FRP. |
||
+ | |||
+ | ;[http://helm-engine.org/ Helm] |
||
+ | :A functionally reactive game engine inspired by [http://elm-lang.org/ Elm]. |
||
+ | |||
+ | ;[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. |
||
+ | :[https://www.youtube.com/watch?v=v_GSbObYRkY Y-Wing flight] is a video of a demonstration of the possibilities of HGamer3D. |
||
;[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:// |
+ | :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. |
+ | |||
+ | ;[https://github.com/asivitz/Hickory Hickory] |
||
+ | :Hickory is not really a game engine. It's more of a collection of tools and abstractions that can be used to make games. It doesn't have opinions and doesn't force you into a particular paradigm. |
||
;[[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://hackage.haskell.org/package/bullet Bullet] |
||
− | :A wrapper for the Bullet physics engine. |
||
− | |||
− | ;[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/hogre hogre] |
;[http://hackage.haskell.org/package/hogre hogre] |
||
Line 143: | Line 229: | ||
: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:// |
+ | ;[http://lambdacube3d.com/ LambdaCube 3D] |
+ | :LambdaCube 3D is a domain specific language and library that makes it possible to program GPUs in a purely functional style. |
||
− | :LambdaCube is a 3D rendering engine entirely written in Haskell. The main goal of this project is to provide a modern and feature rich graphical backend for various Haskell projects, and in the long run it is intended to be a practical solution even for serious purposes. |
||
+ | ; [https://github.com/LambdaHack/LambdaHack LambdaHack] |
||
+ | : A game engine library for turn- and grid-based roguelike games, with optional tactical squad combat. Produces both browser and native binary games. You need to specify the content to be procedurally generated and the engine builds the world and runs it. Actively developed, accepting extensions and all kinds of contributions. |
||
+ | |||
+ | ;[http://hackage.haskell.org/package/set-cover set-cover] |
||
+ | :Solver for exact set cover problems. Included examples: [[Sudoku]], [[Mastermind]], [[Nonogram]], Domino tessellation, 8 Queens, Soma Cube, [[Tetris Cube]], Cube of L's, Logika's Baumeister puzzle. Generic algorithm allows to choose between slow but flexible Set from containers package and fast but cumbersome bitvectors. |
||
=== Unfinished/in-progress game engines/libraries === |
=== Unfinished/in-progress game engines/libraries === |
||
+ | |||
+ | ;[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]] |
||
:An incomplete graphics system abstraction layer. |
:An incomplete graphics system abstraction layer. |
||
+ | |||
+ | ; [https://bananu7.github.io/Hate Hate] |
||
+ | :Hate is a small framework for graphical haskell games and applications. It's heavily inspired by Love and aims at similar ease of use, but within the power of Haskell's type and concurrency safety. |
||
; [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/adorablepuppy/CurryDog CurryDog] |
||
− | :Aims to be a 2d and 3d modular game engine. |
||
− | |||
Latest revision as of 02:36, 10 July 2024
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, and the Haskell Tiny Game Jam.
- Allure of the Stars
- A near-future Sci-Fi roguelike and tactical squad combat game. In brilliant 16-color ASCII, grid-based, turn-based, with a story, stealth, cool-down melee weapons, slow projectiles and fast explosions. Browser and native binaries. Free software using the LambdaHack roguelike game engine. This incarnation complete, but in constant development and accepting contributions of all kinds.
- babylon
- An implementation of a simple 2-player board game. Uses wxHaskell.
- Barbarossa
- A UCI chess engine written completely in Haskell
- BeHaskelled
- A Bejeweled clone written completely in Haskell with gloss.
- board-games
- Computer player algorithms for three games: Connect Four, Rows&Columns, Mastermind. Intended for running as a web server.
- boomslang
- A clone of the popular Flash game Boomshine.
- Defend The King from Forces of Different
- A simple multiplayer real time strategy game.
- dual
- Network multiplayer 2D shooter, clone of an Android game with the same name
- 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.
- Fuglos Jeopardy
- Fuglos Jeopardy is a free implementation of a game resembling the popular quiz show 'Jeopardy'. It is written using Gtk2Hs as GUI toolkit. It is quite feature complete and easy to use. It contains support for LaTeX, so you can for example use LaTeX math syntax in your data sheets and thus organize a math jeopoardy event. Licensed under GPL3.
- 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.
- hadoom
- A clone of Doom, using reactive-banana, GTK, and the "diagrams" library.
- haskanoid
- A breakout game with SDL graphics and Kinect and Wiimote support. Written in FRP, there's a fork in Haskell for Android.
- 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.
- Lambda-Heights
- A fast paced 2D arcade game written entirely in Haskell with the SDL2 binding.
- LambdaChess
- GTK chess client
- Lazy Lambda
- Lazy Lambda is a simple Flappy Bird clone in Haskell, implemented with Haskell SpriteKit. It was originally developed for the Compose :: Melbourne 2016 keynote, where it was live coded in the second half of the presentation.
- 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. Modernized repository maintained on GitHub.
- Monadius
- Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on Hackage as Monadius; see also the video)
- Monao
- A Super Mario clone, using an SDL binding different from the one in Hackage: Monao on github, New maintained version on github
- Nikki and the Robots
- A puzzle, platformer game.
- 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.
- SpaceInvaders
- A video game, based on Yampa
- swarm
- 2D programming and resource gathering game.
- stunts
- A revival of the classic racing game Stunts to serve as a non-toy-sized example for LambdaCube.
- TriHs (tar.gz)
- A 1- or 2-player Tetris game using Gtk2Hs and Cairo.
- venzone
- ASCII platform/adventure.
- 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.
Commercial games
- Enpuzzled
- 2D puzzle game for iOS and Android written in Haskell using SDL2 graphics and the FRP implementation Yampa. Created by Keera Studios, available on iTunes and Google Play for Android.
- Magic Cookies!
- A lights-out clone for iOS and Android written in Haskell using SDL2 graphics and the FRP implementation Yampa. Created by Keera Studios, available on iTunes and Google Play for Android.
- Magic Cookies 2!
- Second game in the Magic Cookies saga, for iOS and Android written in Haskell using SDL2 graphics and the FRP implementation Yampa. Created by Keera Studios, available on iTunes and Google Play for Android.
Unfinished/in-progress games
- Bloodknight
- An action RPG for mobile devices
- haskell-game-of-life
- Conway's Game of Life
- hchess
- Incomplete toy chess engine
- HsLife
- A Haskell implementation of hashlife. It uses GLUT.
Game Engines and Libraries
- actionkid
- A video game framework, with a video tutorial and chips, a game based on it.
- Bogre-Banana
- A 3D game-engine for Haskell. It uses Haskell bindings to the OGRE 3D engine and OIS input system and a library called reactive-banana, to create a "Functional Reactive Programming" game-engine.
- Bullet
- A wrapper for the Bullet physics engine.
- free-game
- A GUI/game library based on free monads.
- 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.
- Gloss
- An OpenGL abstraction layer supporting game-style main loops.
- haskell-game
- A project to make game development with Haskell easier to get started with by providing a suite of libraries for covering all sorts of aspects of game development.
- Haskell SpriteKit
- Haskell SpriteKit provides a purely functional interface to the SpriteKit game engine on Apple platforms. SpriteKit is a state-of-the-art engine for 2D games and includes a versatile animation framework and an integrated physics engine. It is easy to use without the need for low-level programming or advanced concepts, such FRP.
- 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.
- Y-Wing flight is a video of a demonstration of the possibilities of HGamer3D.
- 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.
- Hickory
- Hickory is not really a game engine. It's more of a collection of tools and abstractions that can be used to make games. It doesn't have opinions and doesn't force you into a particular paradigm.
- 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.
- LambdaHack
- A game engine library for turn- and grid-based roguelike games, with optional tactical squad combat. Produces both browser and native binary games. You need to specify the content to be procedurally generated and the engine builds the world and runs it. Actively developed, accepting extensions and all kinds of contributions.
- set-cover
- Solver for exact set cover problems. Included examples: Sudoku, Mastermind, Nonogram, Domino tessellation, 8 Queens, Soma Cube, Tetris Cube, Cube of L's, Logika's Baumeister puzzle. Generic algorithm allows to choose between slow but flexible Set from containers package and fast but cumbersome bitvectors.
Unfinished/in-progress game engines/libraries
- 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.
- Hate
- Hate is a small framework for graphical haskell games and applications. It's heavily inspired by Love and aims at similar ease of use, but within the power of Haskell's type and concurrency safety.
- hsgame
- A framework for network games