Difference between revisions of "Game Development"
(→Articles and blog posts: Added "Experimenting with game engine concepts in Haskell" and "Skeletal animation for games in Haskell") |
m |
||
(13 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | [[Category:Games]] [[Category:Community]] |
+ | [[Category:Games]] [[Category:Community]] [[Category: Pages with broken file links]] |
+ | 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. |
||
− | This page and the #haskell-game [[IRC channel]] are the starting points for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com, or [http://www.reddit.com/r/haskellgamedev the Haskell game development subreddit]. |
||
+ | As of 2021, the following forums seem the most active, so please ask there for up-to-date information: |
||
⚫ | |||
+ | |||
+ | * [irc://irc.libera.chat/#haskell-game #haskell-game] IRC channel mirrored as [https://matrix.to/#/#haskell-game:matrix.org #haskell-game] room in Matrix |
||
+ | |||
+ | * [https://discord.gg/87Ghnws the Discord Haskell GameDev server] |
||
+ | |||
+ | More links below, but some may be defunct or dormant. A slightly edited original old version of the wiki page follows. |
||
+ | |||
+ | ------------------------------------- |
||
+ | |||
⚫ | |||
Line 23: | Line 33: | ||
<!-- add new ones at the top, probably --> |
<!-- add new ones at the top, probably --> |
||
+ | |||
+ | * [http://blog.haskellformac.com/blog/writing-games-in-haskell-with-spritekit Writing Games in Haskell with SpriteKit] |
||
* [http://free-idea-monoid.blogspot.ca/2015/09/skeletal-animation-for-games-in-haskell.html Skeletal animation for games in Haskell] |
* [http://free-idea-monoid.blogspot.ca/2015/09/skeletal-animation-for-games-in-haskell.html Skeletal animation for games in Haskell] |
||
Line 35: | Line 47: | ||
* [http://www.reddit.com/r/haskell/comments/2f9w0p/is_it_practical_to_write_a_strong_chess_engine_in/ Is it practical to write a strong chess engine in Haskell?] |
* [http://www.reddit.com/r/haskell/comments/2f9w0p/is_it_practical_to_write_a_strong_chess_engine_in/ Is it practical to write a strong chess engine in Haskell?] |
||
− | |||
⚫ | |||
− | |||
− | * [https://ocharles.org.uk/blog/posts/2013-08-18-asteroids-in-netwire.html Asteroids & Netwire] |
||
* [https://ocharles.org.uk/blog/posts/2013-08-01-getting-started-with-netwire-and-sdl.html Getting Started with Netwire and SDL] |
* [https://ocharles.org.uk/blog/posts/2013-08-01-getting-started-with-netwire-and-sdl.html Getting Started with Netwire and SDL] |
||
Line 73: | Line 81: | ||
* [http://lambdacube3d.wordpress.com/ LambdaCube 3D] is a domain specific language and library that makes it possible to program GPUs in a purely functional style. |
* [http://lambdacube3d.wordpress.com/ LambdaCube 3D] is a domain specific language and library that makes it possible to program GPUs in a purely functional style. |
||
+ | |||
+ | * [http://morgenthum.dev/articles/write-haskell-game How to write a game in Haskell from scratch] |
||
== Videos == |
== Videos == |
||
+ | |||
+ | * [https://www.youtube.com/watch?v=9dk7_GDNocQ Playing with Graphics and Animations in Haskell] |
||
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell] |
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell] |
||
Line 82: | Line 94: | ||
* [http://www.youtube.com/watch?v=JleoASegUlk LambdaCube 3D - Quake 3 example] |
* [http://www.youtube.com/watch?v=JleoASegUlk LambdaCube 3D - Quake 3 example] |
||
⚫ | |||
== Examples == |
== Examples == |
||
Line 102: | Line 115: | ||
* [https://github.com/sseefried/open-epidemic-game 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 [https://github.com/sseefried/docker-epidemic-build-env.git docker-epidemic-build-env] repo. |
* [https://github.com/sseefried/open-epidemic-game 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 [https://github.com/sseefried/docker-epidemic-build-env.git docker-epidemic-build-env] repo. |
||
+ | |||
+ | * [https://github.com/ivanperez-keera/haskanoid 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 |
* 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 |
||
Line 112: | Line 127: | ||
* This page |
* This page |
||
− | * [irc://irc. |
+ | * [irc://irc.libera.chat/#haskell-game #haskell-game] ([[IRC]]) |
* [http://www.haskellers.com/teams/7 Special Interest Groups » Games] at Haskeller.com |
* [http://www.haskellers.com/teams/7 Special Interest Groups » Games] at Haskeller.com |
||
Line 120: | Line 135: | ||
* [http://www.reddit.com/r/haskellgamedev Haskell Game Development] at reddit |
* [http://www.reddit.com/r/haskellgamedev 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 [https://github.com/Calinou/awesome-gamedev 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 == |
== Wishlist == |
Latest revision as of 05:36, 8 June 2023
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
- Other game-related wiki pages: category:Games
Other supporting software
- 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
- 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
Examples
- 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
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
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).