Open Yelnats321 opened 6 years ago
Would you still recommend using EntityPlus in its current form? I'm taking a look at every open-source ECS I can find before deciding on whether to build my own or not, and EntityPlus struck me as very open-ended and simplified - a lot like Flask (python framework) which I also love for that reason. It feels natural and I'm not afraid of being able to modify it to my needs as time goes on.
Side-note: A big point for me is being able to implement concurrency / parallelization, which isn't really possible with a lot of these ECS implementations. Actually, if you implemented built-in concurrency / parallelization I believe that'd be the first open-source CPP ECS to do so - obviously easier said than done though!
I think the general shape would be more or less the same, I have already began working on how these features will come into play but haven't had much time to put everything together. I think that you wouldn't have a very hard time transitioning from the current state to the new one, and if there's really nothing stopping you with the current implementation I say go for it.
With regards to concurrency, I know of another ECS: https://github.com/SuperV1234/ecst. I have not used it in the past but I see the merit of encoding dependencies at compile time. I haven't looked too much into concurrency/parallelization but it is definitely something that I would look into if there's enough demand (I haven't had much need for it as I mostly use ECS as a way to ease implementation and feature expansion).
Awesome to hear. At the very least I'll keep following the project.. and depending on how my tests go I might become a user 👍
Re: concurrency.. agreed, it is most definitely a niche requirement and a tough one to tackle at that. I wouldn't expect many people to be in favor of putting as much effort as is required into it, nor would I expect a developer to want to do so when easier to implement, and arguably more valuable features are waiting to be implemented. Good luck with the rewrite!
An update: I have not forgotten about this project, but have been having a lot of issues with motivation and the large start-up cost of rewriting a lot of code from scratch. On top of this I have been busy with work and school. I will be graduating in the coming year and hopefully will have time to pursue this and some other side projects.
Unfortunately this means that the project is on a hiatus for another 8-10 months. I will come back to it as the uses for an ECS with the specifications I need become more and more obvious (that is, when working on a game) but in the mean time I would like to thank everyone whose supported the development so far.
So I am currently in the process of a pretty large rewrite, meaning a lot of old code will be removed and replaced with (hopefully) better code.
The main key points I am trying to hit are:
I will also be maintaining the current feature set, just possibly in a slightly more cohesive way. Some functions may be renamed and the status quo may change a bit, but I aim to not reduce the feature set (and hopefully add to it in a meaningful way).