Unity launched the first, experimental version of its new Entity Component System (ECS) last week during GDC. This marks the beginning of a new era for the engine, which the company has 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:
- Using object pools in order to reduce their instantiation cost.
- Using manager-like objects in order to reduce their processing cost.
If you think about it, the main issue with the Game Object paradigm is that it forces us to think about independent, isolated objects with their own Update methods. Which may be convenient, in a traditional OOP-ish kind of way, but it is definitely not the most friendly approach to achieving great performance on current hardware.