On 3/8/21 10:45 PM, Mergul wrote:
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
Nice package! I'm glad you publish it