I have been experimenting with a ECS library called https://www.flecs.dev/flecs/ and I can just say that it has lots of interesting concepts, recommend to take a look. I am working on a very simple UI game with it and it has been fun. Will OSS the lib (using libgdx just for rendering and some other game stuff, but most of it will be focused on Flecs) when I have it in a more functional state (patterns and some questions answered). In the video, you can see it in action (using Portal), I’m also posting some of the actual code (mutation is the king here, so there are some macros to work with Flecs pointers (Flecs is a C lib)), but things will be evolving… slowly, but evolving (I’m not a game dev myself). https://youtu.be/s4ZvwOsqW9Q?si=Ywt4IAMUOIAl0kC5
Why are you using flecs for a simple gui based gameplay instead of plain clojure maps (& atoms)? As I understand flecs is useful when having to update a large amount of entities in real-time
As a non-professional gamedev, I’m more interested in learning the paradigm as Flecs has features that other libs/framework (ECS in Unity or Bevy) don’t have yet. Flecs’s approach is being useful to me in organizing the code so I can use RDD in its fullness. In case I need performance for this or another project, won’t need to learn yet-another-lib-or-framework
Before Flecs, I tried https://github.com/dominion-dev/dominion-ecs-java, which is much much inferior to Flecs
What is RDD?
Repl Driven Development
As Flecs is very dynamic, RDD works pretty well with it
Can you share your github? It might be interesting to see how you integrated flecs.
Yes yes, I can, I was changing jobs, so didn’t have much time to do it until now, guess I can have some mess pubic until tomorrow if you want to check out o/
cool 🙂 It does not matter if mess
Although I'm quite busy with my game and using plain atoms and maps works fine so far so it's not so urgent
this looks really cool @pfeodrippe do you have any example code available?
@ramblurr Guess I can clean up some stuff in the next weeks to OSS it in a WIP form, not ideal, but then people could also experiment with and do whatever they want (MIT-licensed)
Just reading through https://bevy-cheatbook.github.io/. It's really neat! It's the kind of thing I wish was available for doing regular UI programming.
Thanks for sharing!
Would be very cool if the ECS code could be completely separate from the rendering code. That way one could bring one’s own rendering library.
They are! Things related to ECS are in their own namespaces, the game helper namespaces (for rendering and additional systems) may depend on it, but they could be in a totally different clojar artifact o/
You can see the chaos at https://github.com/pfeodrippe/vybe-wip \o HNY!
Let me know if you are unable to run it, after running my own README instructions, I have been able to run it on another Mac
The "game" (and main file of interest as you can see the Vybe API (name inspired by Bevy) being used) is at https://github.com/pfeodrippe/vybe-wip/blob/master/src/pfeodrippe/healthcare.clj
Wow that looks really crazy did you do a lot of interior work?
What’s interior work?
The one system = one function approach comes from https://bevyengine.org/