Bubel ECS - Entity-Component-System architecture implementation

Mergul wismerchil at interia.eu
Mon Mar 8 19:45:58 UTC 2021


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



More information about the Digitalmars-d-announce mailing list