Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

    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?


DOTS stands for “Data-Oriented Technology Stack”, which is a collection of Unity technology to include their Entity Component System framework, the Burst Compiler, and their Job system.

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.


It stands for Data Oriented Tech Stack. It's their ECS (Entity Component System) + "high performance c#" (a C# subset with their custom compiler). I used to call it Unity 2, since it was so different and incompatible with Unity itself.


It is their attempt to turn unity into an ECS game engine even though Unity was originally an Object Oriented game engine.

Really just another in a long list of features that split the community in two.


Why can you do both? RealityKit is an ECS, yet its classes and objects are designed w OO principles in mind.


In Unity's ECS they literally had to throw out every single thing from the OO game engine to get ECS working.

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.


Unity's ECS framework


What is ECS?


Entity Component System.


I should have known that last one -- I have been programming using Apple's RealityKit for a year and a half which is an ECS -- I guess I get lost in all the acronyms ...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: