3D Game Engine written in Rust (development stage)
Dotrix has a flat linear ECS (Entity Component System) in its core, designed for fast querying of entities and their components.
- Entities in Dotrix are virtual abstractions, identified by
EntityId
component containing numerical ID. Each entitiy agregates constant number of components. - Components are regular Rust structures.
- Systems are Rust functions, implementing the core logic of a game.
- Services are Rust objects available through systems, providing some key features or access to global resources, like Assets, Input or Render management.
Editor application is under development in the separate branch
The best place to start is to review examples distributed with the engine. All examples are grouped under examples/ folder. Later when API becomes more or less stable we will prepare a Book for a quick start.
Features: input, skeletal animation, light, terrain, player control
cargo run --release --example demo
Features: Light, UI, camera control
cargo run --release --example light
Features: skeletal animation, light, camera control
cargo run --release --example animation
Features: skybox, camera control
cargo run --release --example skybox
Features: window management
cargo run --release --example window
Features: shader, uniform buffer
cargo run --release --example shader
Features: compute shader, particles, instanced rendering, storage buffer
cargo run --release --example compute
Features: PBR materials (textureless)
cargo run --release --example pbr
Features: PBR materials (Normal mapping)
cargo run --release --example normal_map
Features: Multisample Antialiasing (msaa), PBR materials (fully textured)
cargo run --release --example msaa
- Johan Andersson <@repi>
- Andrew King <@QuantumEntangledAndy>
- Russell Wong <@russellwmy>
Following 3rd party assets are being used in examples