Crate dotrix[][src]

Dotrix is a 3D game engine following ECS programming pattern with a goal to be simple and feature rich. There is a Löwenware team behind the project and we are working on Dotrix to power up our own game projects.

The best place to see what can be done with Dotrix is our YouTube channel.

We are also working on the editor application](https://github.com/lowenware/dotrix-editor).

Getting Started

If you are more into a practice and looking for an example code, we’ve prepared a good demo application for you to get started.

If you prefer to work with the documentation, then the best place to start is where your game should start - the Dotrix application builder.

use dotrix::Dotrix;

fn main() {
    Dotrix::application("My Game")
        .run();
}

It is also a tool to say the engine where should be rendered the output and what services and systems has to be enabled.

Re-exports

pub use dotrix_math as math;
pub use dotrix_egui as egui;
pub use dotrix_terrain as terrain;

Modules

animation

Animation components and systems

assets

Assets and management service

components

Component usually is just a data structure with or without associated methods. In ECS pattern components represent properties of entities: velocity, weight, model, rigid body, color etc.

ecs

Entity Component System

input

Input service, ray casting service and utils

renderer

Rendering service and system, pipelines, abstractions for models, transformation, skybox, lights and overlay

services

Services are very important part of Dotrix. Technicaly the service is a standard Rust structure with methods. Logically, services are providers of interfaces to various features.

systems

Systems implement logic of your game. A system take a set of crate::services as parameters and implements a feature. For example, here is a system that moves camera by X axis if Right mouse button is pressed:

Macros

count

Count parameters

impl_tuples

Macros implementing all necessary archetyoes, patterns, querries and iterators for different types of tuples

recursive

Recursive macro treating arguments as a progression

Structs

Application

Application data to maintain the process

Display

Rendering output configuration

Dotrix

Application Builder

Traits

Service

Service abstraction