Expand description
§🐶 KEESHOND Game Engine 🐶
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
§How to use this documentation
The document you see here serves as an API reference. It is not intended as a starting point for new users. If you’re looking to get started, it is suggested that you look at other material instead, such as the included examples.
§Points of interest
You might be interested in API documentation for the following:
- gameloop::GameControl - For accessing various functionality about the game while it’s running
- input::Input - For player input bindings and detecting key/button presses and axes.
- scene::Component, scene::ThinkerSystem, and scene::DrawerSystem - For defining components and systems
- scene::SceneType - For defining information about a scene such as spawnable objects
- scene::SceneControl - For adding and removing Entities and Components while the scene is running
- scene::ComponentControl - For accessing Components while the scene is running
- renderer::Renderer - For functionality regarding the window and global rendering state
- renderer::DrawControl - For basic rendering functionality including sprite drawing (this might not be relevant if you’re using keeshond_treats)
- audio::Audio - For playing audio
And for Keeshond Datapack:
- datapack::DataHandle - For keeping track of data resources in use
- datapack::DataMultistore and datapack::DataStore - For loading and retrieving data resources
- datapack::source::Source and datapack::source::SourceManager - For defining where resources are loaded from
See the documentation for keeshond_treats for the higher level APIs included in that package.
Re-exports§
pub extern crate keeshond_audio as audio;
pub extern crate keeshond_datapack as datapack;
Modules§
- crate_
reexport - doglog
- (Advanced) Keeshond’s default logger implementation
- gameloop
- Gameloop and GameControl context, which is used to control the game globally
- input
- Input module, for handling control bindings
- renderer
- Rendering functionality
- scene
- Keeshond’s very own ECS framework, and where all the action in your game takes place
- util
Macros§
- darg
- darg_
named - spawnables
- Helper macro to define an enum of different spawnable objects. Basic format: