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?