Hickory is a game engine for Haskell. The pieces (vulkan renderer, input systems, resource loading, game state management) are fairly modular, allowing some pieces to be used without committing to others.
- Vulkan Graphics
- 3D Model Loading / Animation
- Camera Projection/Unprojection
- Text Rendering
- Raw Input (Mouse clicks / touches and key pressses)
- Misc. Math Utilities
- Built on the 'Reactive Banana' FRP library
- Game loop
- Separate rendering and physics time steps
- Game state recording and time-travel
- High level UI widget abstraction
- Easy initialization of a Vulkan context and input handling for GLFW (a cross platform desktop library)
- Easy initialization of a Vulkan context and input handling for iOS
- Some additional fiddly work needed to get a working binary, but overall this is a relatively painless way to get into iOS development
The Examples/ directory has a simple action game example.
$ stack run shooter
See CONTRIBUTING.md file for details.
See LICENSE file for details.