Expand description
ZENgine is a simple open-source modular game engine built in Rust for didactical purpose
Example
Here is a simple “Hello World” ZENgine app:
use zengine::Engine;
fn main() {
Engine::default()
.add_system(hello_world_system)
.run();
}
fn hello_world_system() {
println!("hello world");
}
This Crate
The zengine
crate is a container crate that makes it easier to consume ZENgine subcrates.
If you prefer, you can also consume the individual ZENgine crates directly.
Each module in the root of this crate, can be found on crates.io
with zengine_
appended to the front, e.g. engine
-> zengine_engine
.
Modules
Load and store Assets for the Engine.
Provides types and module for audio playback.
Core functionalities.
Entity-component-system.
ZENgine interface with
GilRs
- “Game Input Library for Rust” - to handle gamepad inputs.Graphics functionlities. eg: Camera, Texture, Render, Sprite.
Resources and events for inputs
A lightweight logging facade.
Math types.
Collision system and shapes
Creation, configuration and management of the main window.
Structs
A container of engine logic and data.
Enums
List of all engine events
The possible stages in the engine pipeline
Traits
A collection of engine logics and configurations.
Attribute Macros
Generate the required Android boilerplate.
Derive Macros
Generates an impl of the
Asset
trait.Generates an impl of the
Component
trait.Generates an impl of the
InputType
trait.Generates an impl of the
Resource
trait.Generates an impl of the
UnsendableResource
trait.