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