Difference between revisions of "Game Development"
Jump to navigation
Jump to search
SimonMichael (talk | contribs) |
(Added "Asteroids & Netwire") |
||
(45 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Games]] [[Category:Community]] |
[[Category:Games]] [[Category:Community]] |
||
− | This page and the #haskell-game [[IRC channel]] |
+ | 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. |
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' ! |
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' ! |
||
+ | == Games and game engines == |
||
− | [[Applications and libraries/Games]] |
+ | * [[Applications and libraries/Games]] lists [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]] |
+ | * See also Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game%20engine Game Engine], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics] |
||
− | Some Hackage categories to explore: |
||
− | [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] |
||
− | - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine] |
||
− | - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics] |
||
− | - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound] |
||
− | - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics] |
||
+ | === Other supporting software === |
||
⚫ | |||
+ | * [http://hackage.haskell.org/package/grid 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 ([https://github.com/mhwombat/grid/wiki description]). |
||
− | I am interested in learning how to program games. I created this wiki page for a discussion on game programming. I am interested in how to construct a game program. How does the the general game behave, which abstractions could be done in games, how is the gameplay, and what primitives could be used to construct such a game program? I suggest to consider simple, concrete games; here an attempt on a "five-in-a-row"-program: [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz] |
||
+ | |||
⚫ | |||
+ | == Articles and blog posts == |
||
+ | <!-- add new ones at the top, probably --> |
||
+ | |||
+ | * [http://ocharles.org.uk/blog/posts/2013-08-18-asteroids-in-netwire.html Asteroids & Netwire] |
||
+ | |||
+ | * [http://jshaskell.blogspot.nl/2012/09/breakout.html Writing JavaScript games in Haskell - Breakout] |
||
+ | |||
+ | * [https://github.com/leonidas/codeblog/blob/master/2012/2012-01-17-declarative-game-logic-afrp.md Purely Functional, Declarative Game Logic Using Reactive Programming] |
||
+ | |||
+ | * [http://folk.uio.no/carljsv/computergames/computergames.pdf Computer Games'] - trying to implement the game flow of a computer game |
||
+ | |||
+ | * [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney |
||
+ | |||
+ | * [http://prog21.dadgum.com/23.html Purely Functional Retrogames] |
||
+ | |||
+ | * [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code] |
||
+ | |||
⚫ | |||
+ | |||
+ | * [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk. |
||
+ | |||
+ | * [http://www.gamasutra.com/view/feature/2985/postmortem_naughty_dogs_jak_and_.php Postmortem: Naughty Dog's Jak and Daxter: the Precursor Legacy]; an article about a game developed with a [http://en.wikipedia.org/wiki/Domain-specific_language DSL] compiler written in Lisp |
||
+ | |||
+ | * [http://lambdor.net/ Lambdor] blog mostly about Yampa FRP and game development in Haskell with some tutorials |
||
+ | |||
+ | * [http://jshaskell.blogspot.de/ Writing JavaScript games in Haskell] |
||
+ | |||
+ | * [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://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell |
||
+ | |||
+ | * [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell] |
||
+ | |||
+ | * [http://www.youtube.com/watch?v=XoE5CKLLnaM LambdaCube 3D - Stunts example] |
||
+ | |||
+ | * [http://www.youtube.com/watch?v=JleoASegUlk LambdaCube 3D - Quake 3 example] |
||
+ | |||
+ | == Examples == |
||
+ | <!-- add new ones at the top, probably --> |
||
+ | |||
+ | * [http://folk.uio.no/carljsv/gorillabas/ 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]] |
||
+ | |||
+ | * [https://github.com/simonmichael/hssdl-mac-example 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. |
||
+ | |||
+ | * 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 |
||
+ | |||
+ | == 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. |
||
+ | |||
+ | * Octtree, kd-tree, various space partitioning techniques (maybe start with [http://hackage.haskell.org/package/spacepart spacepart]). |
||
+ | |||
+ | * Binding to [http://www.fmod.org fmod] |
||
+ | |||
+ | * Binding to [http://enet.bespin.org/Features.html enet] for multiplayer games. (jeffz is working on this). |
Revision as of 09:31, 29 August 2013
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 Games group on haskellers.com.
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on #haskell-game !
Games and game engines
- See also Hackage categories: Game, Game Engine, Graphics, Sound, Physics
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
- 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
- Games in Haskell - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell
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.
- 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
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.
- Octtree, kd-tree, various space partitioning techniques (maybe start with spacepart).
- Binding to fmod
- Binding to enet for multiplayer games. (jeffz is working on this).