🐶 KEESHOND Game Engine 🐶
About
Keeshond is a 2D game engine with a focus on quickly bringing ideas onscreen.
Goals
- Runs reasonably well on hardware from 2010
- Deterministic game logic across systems, important for speedrunners
- Implements features games need, without adding unneeded complexity
- First-class Linux support via SDL2
Current features
- Gameloop with fixed timestep synchronization
- Custom-built ECS system designed for decoupled game/drawing logic
- Basic keyboard input system
- Fast sprite rendering (can draw close to 100k sprites at 60 FPS on a 2010 CPU and capable GPU)
- Optional imgui integration
Features to come
- Asset loading from the filesystem and .pk3 files
- Audio system via OpenAL
- Timeline framework, for choreographing animations, sequences, and more
- Tilemaps
- Collision engine via nphysics
- Scene editor
Running examples
Unfortunately, due to how cargo currently works, applications that rely on
external resources will not run with cargo run
. Instead, you will need to use
cargo build --example doggymark
And then cd
to the example's source directory and run from there:
cd keeshond/examples/doggymark
../../../target/debug/examples/doggymark
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.