Anyone interested in coding a Julia ECS?

If you know me, you know that I often make lots of attempts at trying something, and fail at many of them, many times before I even got to coding because I realized it would be too big or I wouldn’t win or whatever.

Here goes another attempt!

If you believe or wish that Julia will be the best tool for making games, you are not alone. If so, let’s carve out the path to glory together.

Let’s start simple, with a humble thing, Entity Component System.
This ECS would derive its performance from the fused update function and, once it’s done, the LoopModel library.

Unfortunately, I still have some problems with my ideas, for example, how to delete or change the archetype of entities efficiently and so on. If you’re up to the challenge, I invite you.

If a team can be made such that the project has a chance of being viable, I’ll start coding. If it’s not, then I’ll bury this project for maybe a few years and perhaps dig it up when the circumstances have changed. You do not have to start coding right away. Once I get confirmed team member(s), I will start programming what I can as the frame and then you can add more features until we get a rich library. An ECS can be small (a few hundred LOCs) or really large (like flecs). The size of this project will depend on a number of factors like features supported, our capabilities, etc.

I may not be a very smart programmer here, but Julia gives me the best chance of making a game I want come true, so, I will push even with my puny strength.

P.S. I’m sorry for everyone who tries to support me. I may not be able to complete most things I set out to do, or had to cancel them for various reasons, but I have to keep trying.

2 Likes

Did you check GitHub - heyx3/Bplus.jl: A modern OpenGL 4.6 rendering framework, written in Julia.? Seems like they have implemented an ECS here: GitHub - heyx3/BplusTools.jl: Extra add-on systems for the Julia game framework B+, I’m not at all an expert in this field but maybe it could be a good starting point?

1 Like

Actually there are more:

what about contributing to one of the systems? My first impression is that Overseer.jl seems to be in good shape. Or do you see shortcomings in those implementations?

1 Like

They’re good. However, Overseer is a sparse ECS, not archetypal ECS, which is what enables my optimization. The B+ ECS is explicitly (by the developer) not performance-focused. Mine, on the other hand, is so performance-conscious that I’ve yet to figure out many key features because I’ve yet to find a performant way to implement them, which is actually why I’m asking for help, to find ways to efficiently implement various features.