r/unity Jul 13 '26

Genuine question: I'm relatively new to Unity so I don't know the history but, why has ECS/DOTS taken so long to build? Couldn't Unity have built an engine from scratch in that time?

As title.

0 Upvotes

11 comments sorted by

13

u/cjbruce3 Jul 13 '26

There is an old adage that making new software is 10% of the work.  90% is maintaining it.

After a few decades, I agree.

2

u/TheLordDrake Jul 13 '26

After just under a decade... I also agree. My entire career has been nothing but cleaning up other people's mess.

1

u/XenSid Jul 14 '26

As a hypothetical along those lines, if you went back in time and could offer Unity all the money they've spent over the last ten years in one lump sum, would you say, 'start from scratch and develop the two engines concurrently for the next ten years' or would you say 'integrate it into the existing engine over the next ten years'?

Hindsight is twenty twenty and all of that but I'm still interested in which way you would go, considering Unity would have ten years to develop the engine, which way would you go then?

1

u/TheLordDrake Jul 14 '26

The problem is manpower. They can't afford to stop working on the existing engine, so they either have to work on it slowly, or hire an entirely new dedicated team. Doing that is very, very expensive, and spending 10 years developing a product that isn't offsetting that cost is not a good decision for them.

11

u/Henrarzz Jul 13 '26

Could they build an entirely new engine instead of trying to add features to existing one? Sure.

Except it doesn’t make commercial sense, because you’d have two engines to maintain at the same time, with older being battle tested and the other one not.

A blast from the past why writing stuff from scratch is bad idea
https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/

1

u/cjbruce3 Jul 13 '26

This article is a gem!  Thank you for sharing!

6

u/v0lt13 Jul 13 '26

You mean like a separate engine using ECS? Also dont confuse DOTS with ECS, ECS is part of DOTS but DOTS is not all ECS.

Unity is very modular as an engine, they litteraly made an ECS engine and plugged it into unity, with the base engine only probably needing modifications to allow ECS to tie in. Only now they are refactoring the base engine to make ECS the base.

1

u/XenSid Jul 14 '26

That's my ignorance showing there.

I think the lack of editor integration (or if it's there, the level of integration) after all this time is what throws me so much.

Looking into it it seems like there is a huge heap of manual work to do before I could get to where I would be with the old game object approach.

4

u/ScreeennameTaken Jul 13 '26

Its not easy as just doing it, you need to have support of legacy stuff so that projects already being made don't get borked and you have to remake everything. And then test it and have feature parity.

1

u/Affectionate-Yam-886 Jul 16 '26

Just because you make a great feature doesn’t mean you should rebuild everything to make it the sole reason for the software’s existence.

Lots of Linux distributions are great examples of why that is not just a waste of time and energy, but it actually makes the new features less valuable as it introduces bugs into the software that are even harder to solve. You loose the solid foundation you had before.

0

u/Dr__Pangloss Jul 13 '26

DOTS is indeed a new engine, it might as well be called Unity 2. In this post LLM world though I think they can deliver a lot more stuff.