Yes, the original DOTS idea had a very strong vision and direction. I don’t know what the current DOTS vision is. But to me the original DOTS vision felt a lot like it is trying to be something else than Unity...
What is DOTS? Yes, the original DOTS idea had a very strong vision and direction. I don’t know what the current DOTS vision is. But to me the original DOTS vision felt a lot like it is trying to be something else than Unity...
What is DOTS?Each of these technologies have their own descriptions, but a very quick (and perhaps over simplified) explanation:
ECS is a framework where you have entities that themselves have one or more components, acted on by systems. The way these components are laid out in memory and acted upon by systems is typically more cache friendly then traditional game engine design with heap allocated GameObjects that are themselves a mess of pointers (Structs of Arrays vs Arrays of Structs)
Burst allows you to annotate functions, jobs and systems written in a subset of unmanaged C# that compiles to highly optimized instructions for better performance.
The job system allows you to schedule jobs with dependencies in a useful way that can help enable parallelism without manually having to deal with thread primitives. The jobs can also be burst’s themselves and used in a non-parallel manner if you don’t have something easily parallelizable.
Really just another in a long list of features that split the community in two.
So it was like having two entirely different ways of building a game in the same game engine. Everything one knew about Unity was now gone and you had to learn an entirely new way of solving the same problems. Sure you can still do OO things like inherit systems or whatnot but it was nothing like the original unity.
Once they realized how big of a change this was they did come out with some hybrid approach where you can have OO objects converted into Entities. But really it was just a Band-Aid to the gaping wound they made of the engine.