Using ECS allows you to strictly separate logic from view. It also helps you to make logic incredibly flexible and customizable due to the lack of strong connections between entities. This way new features can be easily added or removed without fear of breaking existing ones.
An Entity Component System (ECS) architecture separates identity (entities), data (components), and behaviour (systems). The architecture focuses on the data. Systems transform the data from an input state to an output state by reading streams of component data, which are indexed by entities.
The Entity Component System (ECS) is the core of the Unity Data-Oriented Tech Stack.
If you plan to have lots of objects flying around in your scene, then using ECS instead of using a game object for each projectile makes sense. For example, if you plan to have thousands of lasers flying around in your scene, you want to use ECS or something similar to handle those projectiles in a scalable way.
I understand the appeal of using the data-driven Entity-Component System for game development. Naturally I am trying to find other areas to apply this paradigm. As I am about to embark on developing a small business application, I've been wondering how well Entity-Component would fit in with it. However I cannot find any examples or discussions on using Entity-Component in anything besides games. Is there a reason? Would there be any advantages in using Entity-Component in software besides games?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With