3 ms·
ECS is a one of the possible designs of what we usually call "the gamestate" that is the dynamic structure that holds the game world simulation. But the origin
by stephc_int13 4y ago
ECS is a one of the possible designs of what we usually call "the gamestate" that is the dynamic structure that holds the game world simulation.
But the origin of ECS is Data Oriented Design, also known as DOD, that emerged as a reaction to the bad properties of OOP.
DOD is more general and IMHO more interesting than ECS.
I have not yet seen a satisfying implementation of ECS, it can be extremely fast compared to OOP approach, but also cumbersome when dealing with dependencies between systems and the ways to handle structural changes.
My take would be : learn the principles, do some benchmark, but do not consider any ECS implementation as gospel, this is not mature yet.
Use the ideas and principles to build a fast simulation in your own way.
- drittich 4y agoI agree - I have looked into a 2 or ECS implementations, and they either seemed awkward, or brought in a bunch of other concerns I did not care about, and in the end decided to roll my own for some games I was building. It was pretty simple in the end. Dependencies definitely became a bit lengthy in some cases, but I didn't hate that, in that it makes the coupling explicit.
- stephc_int13 4y agoI think that systems should be updated in a very explicit order, so that dependencies are easier to manage. And for the multithreaded usage, a parallel_for can be used to update systems.
- hackarimoo 4y agoDo you have good resources on DOD?