This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-10-09
Channels
- # announcements (2)
- # babashka (11)
- # beginners (9)
- # biff (7)
- # calva (20)
- # catalyst (1)
- # cider (8)
- # clerk (46)
- # clj-kondo (18)
- # clj-otel (2)
- # clojure-brasil (22)
- # clojure-europe (18)
- # clojure-gamedev (23)
- # clojure-italy (5)
- # clojure-nl (2)
- # clojure-norway (14)
- # clojure-uk (6)
- # clr (1)
- # datomic (13)
- # emacs (1)
- # hoplon (13)
- # hyperfiddle (53)
- # introduce-yourself (1)
- # java (23)
- # malli (7)
- # obb (35)
- # off-topic (31)
- # polylith (2)
- # portal (9)
- # rdf (15)
- # reitit (12)
- # releases (3)
- # ring (4)
- # shadow-cljs (6)
- # solo-full-stack (3)
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
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/
this looks really cool @U5R6XUARE do you have any example code available?
@U70QFSCG2 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)
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
Repl Driven Development
As Flecs is very dynamic, RDD works pretty well with it
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/
Although I'm quite busy with my game and using plain atoms and maps works fine so far so it's not so urgent
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
What’s interior work?
The one system = one function approach comes from https://bevyengine.org/
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.