A game engine written in Haskell that will provide 2d and 3d physics, a sound framework, and much more.
Latest commit 5ce76d2 May 30, 2011 @adorablepuppy adorablepuppy Add FunctionLeaf datatype, which is a PropertyTree leaf that takes a …
…String and (PropertyTree->PropertyTree) in preparation for all gamestate changes to take place within a PropertyTree passed between functions, recursively, for the life of the program. This will enable the user to pass a labeled function into the game loop, thus eliminating the need for the user to tinker with engine files (unless adding datatypes to the tree in CurryDog.Data)

Add KeyLeaf for SDLKeys. This allows me to change the checkEvent in CurryDog.Input to take and return a PropertyTree instead of [SDLKey], thanks to the tree traversing function.

Fix the gameLoop in CurryDog so that it will actually compile now, (though more work is needed to make it actually useful)

Change type symbol on runGame to Maybe PropertyTree -> IO () from IO (). This facilitates the ability to check for a predefined gamestate user of the engine wants to load in. runGame state also now passes gamestate to gameLoop, instead of creating it inside itself.

Remove qualified from CurryDog imports in ExampleGameBase to make creating PropertyTrees easier. Example compiles, black window flashes by.

Add an example PropertyTree
* Make keys easier accessible.
* Fix gameLoop so window can stay open.
* Create default gamestate if nothing is passed into runGame.
* [Rectangle] generator for Circle shape.
* Run userfunction passed in gamestate from runGame.

Thanks goes to merijn, ion, and doserj of channel #haskell @ irc.freenode.net for helping me with the FunctionLeaf implementation.