Desktop-only, vulkan-only and mostly Haskell.
- https://gitlab.com/keid — Project umbrella group.
https://gitlab.com/keid/engine — Engine packages (available on hackage).
- keid-core: Core parts of Keid engine.
- keid-geometry: Geometry primitives for Keid engine.
- keid-render-basic: Basic rendering programs for Keid engine.
- keid-resource-gltf: GLTF loader for Keid engine.
- keid-sound-openal: OpenAL sound system for Keid engine.
- keid-ui-dearimgui: DearImGui elements for Keid engine.
- weld: Asset processing tool.
- overview: Literate single-file example 👈
- 2d/texts-and-sprites: CPU particle system demo that can be used as a benchmark.
- 2d/tiles: Texture-packed tilemap rendering.
- headless: Non-interactive rendering to a file.
- shader/external: External shader code with hot reloading.
- sound/positional: Positional sound with OpenAL.
- ui/dearimgui: Widget demo and some GLFW event handling gotchas.
- https://gitlab.com/keid/kb — This site.
- https://gitlab.com/keid/meta — A project-management project for the group.
- Orboros — LD47, playable. Ported from vulkan-setup.
- Time to think — LD48, unfinished. New code upstreamed to engine and reused in Orboros.
- Swerve — LD49, playable.
There are some binary dependencies:
Platform libs (apt install
build-essential libtinfo-devor something).
- Vulkan SDK from LunarG.
GLFW library (
May require extra platform deps like
libxinerama-dev libxxf86vm-dev libxi-dev libxcursor-dev.
- May require extra platform deps like
OpenAL library (
libopenal-dev) and Opus codec (
Most of the packages are published on Hackage, you don’t need to clone all the repositories here.
But you may need to pin all the versions:
- Stack resolvers: https://gitlab.com/keid/meta/-/tree/main/resolvers
- Cabal freeze is generated from most recent resolver: https://gitlab.com/keid/meta/-/blob/main/cabal.project.freeze
Look at game project files for configuration example, those should work with both
Some problems may arise in Nix setups, but I don’t know anything about it. You’d better consult your local Nix guru.