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
(Advanced) Keeshondâs default logger implementation
Gameloop and GameControl context, which is used to control the game globally
Input module, for handling control bindings
Rendering functionality
Keeshondâs very own ECS framework, and where all the action in your game takes place
Macros
Helper macro to define an enum of different spawnable objects. Basic format: