Personal tools

Game Development

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(Articles and blog posts: Added Breakout)
(28 intermediate revisions by 7 users not shown)
Line 5: Line 5:
 
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]''' !
   
== Software ==
+
== Games and game engines ==
   
* [[Applications and libraries/Games]] - a partial list of [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]
+
* [[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]
  +
  +
  +
=== 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]).
   
* Some relevant 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 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]
 
   
 
== Articles and blog posts ==
 
== Articles and blog posts ==
 
<!-- add new ones at the top, probably -->
 
<!-- add new ones at the top, probably -->
  +
  +
* [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://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney
Line 23: Line 28:
   
 
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.
 
* [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.
   
 
== Videos ==
 
== Videos ==
Line 29: Line 42:
 
* [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]
   
== Examples ===
+
* [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 -->
 
<!-- add new ones at the top, probably -->
   
* https://github.com/simonmichael/graphics-drawingcombinators-example - how to make an SDL-using package buildable on mac OSX
+
* [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://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.
  +
  +
* 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 11:58, 27 September 2012


This page and the #haskell-game IRC channel is the starting point 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 !

Contents

1 Games and game engines


1.1 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).


2 Articles and blog posts

  • 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.

3 Videos

  • Games in Haskell - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell

4 Examples

  • GorillaBAS - this was an attempt on defining computer games, and build such a thing.
  • 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

5 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 enet for multiplayer games. (jeffz is working on this).