Game Development
In recent years this page has not been updated often enough to remain informative, so it probably has only a historical value at this point.
As of 2021, the following forums seem the most active, so please ask there for up-to-date information:
- #haskell-game IRC channel mirrored as #haskell-game room in Matrix
More links below, but some may be defunct or dormant. A slightly edited original old version of the wiki page follows.
There are quite a lot of games, unfinished libraries, and interested people out there - please enjoy the links here and join us on IRC, Matrix, Discord, Reddit and elsewhere for news!
Games and game engines[edit]
- Other game-related wiki pages: category:Games
Other supporting software[edit]
- grid provides tools for working with regular arrangements of tiles, such as might be used in a board game or self-organising map (SOM). Grid currently supports triangular, square, and hexagonal tiles, with various 2D and toroidal layouts (description).
Articles and blog posts[edit]
- The Quest for Programming Nirvana: On Programming Game Systems in Haskell; a Master Thesis on programming game systems in Haskell
- Functional Programming and 3D Games (thesis, PDF)
- Computer Games' - trying to implement the game flow of a computer game
- The Next Mainstream Programming Languages: A Game Developer's Perspective (PPT, PDF) presentation by Tim Sweeney
- wxHaskell - A Portable and Concise GUI Library for Haskell (PDF) - describes an implementation of an asteroids game, wxAsteroids
- Haskell for Games! Blog post, with PDF slides from AngloHaskell talk.
- Postmortem: Naughty Dog's Jak and Daxter: the Precursor Legacy; an article about a game developed with a DSL compiler written in Lisp
- Lambdor blog mostly about Yampa FRP and game development in Haskell with some tutorials
- LambdaCube 3D is a domain specific language and library that makes it possible to program GPUs in a purely functional style.
Videos[edit]
Examples[edit]
- GorillaBAS - this was an attempt on defining computer games, and build such a thing.
- https://github.com/mlesniak/game - Haskell/OpenGL/Chipmunk game prototypes
- wxAsteroids, a well-documented game, based on wxHaskell
- hssdl-mac-example - how to make an SDL-using package buildable on mac OSX
- http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff
- http://hackage.haskell.org/package/stunts - A revival of the classic racing game Stunts to serve as a non-toy-sized example for LambdaCube.
- http://hackage.haskell.org/package/dow - Dungeons of Wor is an homage to the classic arcade game, Wizard of Wor. This game is also an experiment in functional reactive programming, so it might be a useful resource to anyone interested in this topic.
- Epidemic: a small game for Android devices. As an added bonus a complete development environment for the game can be built with Docker using the docker-epidemic-build-env repo.
- haskanoid: a well-documented breakout clone with SDL graphics and Kinect and Wiimote support. Written in FRP, there's a fork in Haskell for Android.
- Possible Hackage categorisation guidelines: upload games to Game, engines and libs to Game Engine, or at least to some category beginning with Game, and check latest categories before uploading
Forums[edit]
There are several forums in the Haskell world where game development can be discussed:
- The Haskell Café mailing list
- This page
- Special Interest Groups » Games at Haskeller.com
- haskell-game at GitHub
- Haskell Game Development at reddit
As of 2021, the most up-to-date collection of Haskell gaming links seems to be at https://haskell-game.dev/. Searching Hackage, Stackage, github, gitlab, etc., is bound to return many up-to-date results as well.
The GitHub page awesome-gamedev contains a list of general forums for game development, as well as lists of tools, utilities, libraries (some in Haskell) and learning resources.
Wishlist[edit]
Is Hackage missing a useful data structure or library for some functionality that would benefit game programming? Suggestions for useful things can be added here as potential projects to hack on.
- Binding to fmod
- Binding to enet for multiplayer games. (jeffz is working on this).