Bubel ECS - Entity-Component-System architecture implementation

Meta jared771 at gmail.com
Tue Mar 9 14:29:37 UTC 2021


On Monday, 8 March 2021 at 19:45:58 UTC, 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

Awesome! In the demo, I noticed that if there are >3000 entities 
spawned, there will be periodic dips in the FPS. Could this be 
Javascript's GC kicking in?


More information about the Digitalmars-d-announce mailing list