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.