Crates.io | keeshond |
lib.rs | keeshond |
version | 0.27.0 |
source | src |
created_at | 2019-03-06 03:37:47.450743 |
updated_at | 2022-04-23 18:29:51.790195 |
description | A fast and fun 2D game engine for Rust |
homepage | |
repository | https://gitlab.com/cosmicchipsocket/keeshond |
max_upload_size | |
id | 119048 |
size | 1,063,801 |
Keeshond is a 2D game engine with a focus on simplicity, flexibility, and performance.
Also check out Keeshond Treats for extra goodies that will help you make your games faster!
Keeshond currently targets Windows, Linux, and the web via Emscripten. It should also work on macOS, but this is largely untested.
Check out The Keeshond Book: https://cosmicchipsocket.com/keeshond_book
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
Gameloop with fixed timestep synchronization
Custom-built ECS system designed for decoupled game/drawing logic
Mouse, keyboard, and gamepad input system
Up to 400k sprites at 60 FPS (dependent on hardware and other factors)
Asset loading from the filesystem and from zip/pk3 files
Audio system via OpenAL
Resolution-independent viewport scaling with maintained aspect ratio
Optional pixel upscaling with non-integral softening for neo-retro games
Optional imgui integration
Sprite animation system
Sprite-based text
Tilemaps
Object-to-object collision with fast broadphase
Level format and level editor
Multiplayer gamepad input
Audio streaming
Tilemap collision
During development, you should build with an opt-level of at least 1 or else the compiler might not generate code that is fast enough to make your game playable:
[profile.dev]
opt-level = 1
[profile.release]
opt-level = 3
lto = true
In order to get the examples to load their resources, run them from within the keeshond
directory.
cd keeshond
cargo run --example doggymark
Licensed under either of
at your option.
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.