Ever since DOTS (Data-Oriented Technology Stack) was introduced in Unity last year, there has been a lot of talk about how it enables a new level of performance that was previously very hard, or just impossible, to achieve in the engine. This is very true but, after having used it in a few personal projects, I believe data-oriented design is more than that. This paradigm also carries several benefits with it that have more to do with the software engineering side of our craft than with purely performance-related aspects.
It is easy to add new systems and replace existing ones
Unity launched the first, experimental version of its new Entity Component System (ECS) during GDC 2018. This marked the beginning of a new era for the engine, which the company labeled with the motto “performance by default”. What does that mean?
If you are familiar with Unity, you probably know that Game Objects are somewhat heavy and it is usually not a good idea to have too many of them. That is why standard performance guidelines commonly revolve around doing things like: