• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Unity to prioritize "performance by default" with new core engine

iconmaster

Banned
Unity often gets dinged -- perhaps unfairly -- for performance problems in games. Making Unity a really performant engine would be great news for game developers, and thus for gamers as well.

Unity takes a principled step into triple-A performance at GDC

They're claiming full or near-full multicore utilization without race conditions:

The demo is utilising an impressive 95 per cent of the multi-core CPU and the team is confident of hitting 100 per cent soon. “With this demo there is absolutely no game code running on the main thread. Zero,” says Ante.

"...we can guarantee there are no race conditions in the code,” Ante says. Which is done through a combination of code analysis and runtime checks. “There is no game engine that has ever done that,” he adds.


It's not all for-free performance, though. Developers will have to adapt somewhat to really get the most benefit.

“Our job is to make it so that the normal way of you working is automatically going to be fast.” And Unity will achieve that by encouraging everyone to use small modular components. “They have to follow this default way of writing code, which means they have to deal in simpler data types. But everything is expressible this way and the thing is, when you code this way you actually start making more modular code.”


Finally, this isn't all happening at once.

Unity has “a multi-year cycle” ahead building on this new foundation. But it’s confident that the principles behind it will last well beyond that.

“We’re at the beginning, but it’s a very powerful beginning,” Ante finishes. And based on the initial evidence and the passion of the team, it’s very hard not to be inspired.


To me, this all sounds extremely promising. I'm only technically savvy enough to be impressed, though; not savvy enough to pick it apart. What do others think? Sound too good to be true?
 

Shifty

Member
Doesn't seem too good to be true to me. Sounds like they're building a framework that's super efficient about packaging code up into small 'jobs' that can be run on their own threads, and using that framework to impose limitations that allow them to make and optimize around certain assumptions engine-side.
Those limitations also have the pleasant side-effect of forcing programmers to write good code to some degree, so it's kind of a double win for non-expert developers. With any luck it'll improve performance across the board and go some way toward solving Unity's image problem.

I wonder if Epic will respond to this with UE4 somehow. Being based on C++ means that performance is already good, and they have a pretty extensive multithreading setup for a lot of the underlying engine stuff like input, rendering, physics and blueprint scripting.
You do have to design with multithreading in mind if you want your C++ code to run outside the main thread though- there's a set of utility stuff available to make it easier, but it's still non-trivial and requires knowledge of multithreading and the implications associated with it.
 
Last edited:
Very interesting, this will definitely help with Unity's image problems.

I've only briefly played around with Unity but it seems like a good engine with a ton of possibilities. I'm back playing with GameMaker at the moment but I would be interested in diving into Unity at some point in the future.

This is definitely good news for performance though, hopefully they continue to iterate on the engine.
 
Top Bottom