Hello everyone, I'm glad to announce release of my Bubel ECS
library.
Bubel ECS is Entity-Component-System architectural pattern
implementation in D language.
Library aims to delivery fast and flexible architecture for
developing games. It's @nogc and betterC compatible. WASM is
supported through Emscripten. Library has no external
dependencies and was tested on Linux, Windows, Android and WASM.
Project was developed in data oriented designed fashion and
supports multithreading with automatic job generation. For more
information go to Gitlab repository page.
Its beta version but core is fully functional and finished. I
have planned some bigger features like Worlds support, better
events handling or even C-API which can lead to some changes in
API.
If you want try Bubel ECS I prepared demo which works in browers
through WASM (Emscripten) and even supports multithreading (on
Chromium based browsers, Firefox had some performance issues even
on single threaded version when last tested)
Demo is still WIP and it can be hard to understad how it works
(how to use its features). There is possibility to enable/disable
almost all systems in runtime and changing components and data
for all entities. All components and systems are exact
representation of what they are in code.
I'm using Gitlab CI for automated testing (betterC testing
included)
Note: Library support multithreading but has no code for actual
parallel execution, it only generates jobs and dependencies. In
demos I'm using mmutils.thread_pool (my brother's library) .I
will add simple integration code for it in near future for people
who wants multithreading working out-of-the-box.
Dub: https://code.dlang.org/packages/bubel_ecs
Gitlab: https://gitlab.com/Mergul/bubel-ecs
Documentation: https://mergul.gitlab.io/bubel-ecs/ecs.html
Wiki: https://gitlab.com/Mergul/bubel-ecs/-/wikis/home (WIP I've
started making tutorial there)
Online demo: https://mergul.gitlab.io/bubel-ecs/ecs_demo.html