Dotrix 0.6 Announcement
Following the ECS concept we’ve implemented the engine in a way that whole logic was concentrated in systems. Even rendering was ECS-driven. The concept paid off, but it had several downsides. First of all, it was not well optimised and performant. Secondly, it was not pure ECS, because it was mixed with shared global data. The upcoming release will solve both issues.
New tasks will replace current systems implementation. Tasks will require implementation of a simple trait providing parallelised execution of complex graphs. Customizable contexts of tasks, can be dependent on shared data, application states or data provided by other tasks. Built-in scheduler will do the rest of optimizations and safety controls.
New systems will follow a pure ECS pattern. In Rust terms each system will be a closure executed for a query to one or several entities.
GPU Driven Rendering
Another big update that is scheduled to be a part of 0.6 release, is a GPU driven rendering using huge GPU buffers and indirect draw calls. The goal of this change is to decrease the number of round trips between CPU and GPU. In other words, Dotrix 0.6 will be able to render lots of entities in a couple of draw calls.