How would you improve Classic Unity?

Then I would treat it as a non-starter until otherwise. Unity have a history of killing things before, after or during release as well as axing entire very-useful-very-requested-by-the-community-teams, so yeah I would absolutely not hold out for it if all you have is “I spoke to some developer”. I am sure the developers mean well, but unless they are top level decision makers none of their work is safe until its fully released, fully working, and fully documented.

1 Like
  • Layers being used for both Physics and Rendering is utter insanity. Separate them!
  • There is alot of data output in Profiler and Frame Debugger that doesn’t mean anything or is mysterious. Expand that info into something useful.
  • Editor-only Heirarchy Folders.
  • Reduce number of core features to ONE. One UI, One Input, One Particle system, One Render Pipeline, etc.
  • Combine Scenes and Prefabs. Godot has got it right and its a dream to work with.

In general; make it fun & a joy to use the editor. Having to deal with random editor slow downs and general workarounds just to author basic content is not fun. We live in this tool for 8 to 10 hours a day atleast 5 days a week so we want it to be a decent experience and not a stressful one. Id take that over any new fandangled ultra-rendering of water or hair or whatever else is the current craze.

19 Likes

I remember seeing people ask for this a decade ago.

7 Likes

They actually seem to introduce something similar with 2023.1!
It’s called “Awaitable”
https://blog.oliverbooth.dev/2022/12/12/unitys-awaitable-api/
https://hackernoon.com/unity-20231-introduces-awaitable-class

1 Like

I’m using this as an opportunity to share a “clean code” related video that I find really really good:

https://www.youtube.com/watch?v=tD5NrevFtbU

6 Likes

Interesting video but…

  1. Only 5-10% of your game code will be performance critical unless you write the engine itself.
  2. Be very careful about applying improvements from C++ to C#.
  3. When you want performance in those 5-10%, use burst-compiled Jobs in Unity
4 Likes

If you only care about hitting a performance target that is within spitting distance. It’s like that quote by Mike Acton: “people who don’t care about long it takes is also the reason why I have to wait 30 seconds for Word to boot”. Code written like that video in its entirety means you could target a far weaker system.

DOTS is the way to achieve all of that with Unity but you can achieve most of it by just not writing “clean code”.

2 Likes

Well, MS earns well with Office and that software still lives after decades. The later may not be possible for maintenance reasons with absolute focus on performance…
It remains a good advice to focus on readablity and clean code for most of your project. You’ll learn that quickly when you gotta work with industry code that didn’t think so.

Part of the problem with performance in games today is that people pick up these concepts when they’re working outside of games and automatically assume that it’s appropriate to apply them to games. Very few games have the longevity that makes it worthwhile and for the ones that do the important part is usually in a server not the client.

Here’s a video by the same author debunking these ideas even for the industry with Facebook as an example as they have gone back and completely reworked massive aspects of their services to improve performance.

https://www.youtube.com/watch?v=x2EOOJg8FkA

5 Likes

Magic! (2023.2.0b3)

9208902--1285038--Capture.PNG 9208902--1285035--Capture01.PNG

12 Likes

I would phrase it a bit differently, the point is not “not writing clean code” but writing code on specific ways so it can take advantage of certain CPU and architectural environmental factors even if those practices aren’t aligned with some evangelizing self-appointed “clean code gurus” opinion. (I always hate when people try to make you feel they are family so they would get more credit with their BS… “Uncle Bob”…)

Hi, guys, can you pass those videos to Unity, because, sure, we can get our own code to run fast with like DOTS, but them you use the animator to animate a camera and you loose all the performance you gained.

Theres clean code, and then theres OCD code :stuck_out_tongue: sure OCD code maybe a thing of beauty, but it can be taken far too far.

Oh, Charles Simonyi he definitely left his s_mark on the “clean code” software world…

really?.. off to go see now… for the miracle is only true once seen with your own eyes…

And 2023.2.0b4 just landed while we were talking here. :smile:

DAMMIT … i havent even finished downloading b3… grrr … cancel.

You guys just destroyed my whole worldview.

Wait for the DOTS Animator replacement. ETA 10 years.

4 Likes

What.

I was talking about the Sirenix devs, not the Unity devs. And they’ve been knocking out feature after feature.

Not sure what you thought I was on about.

Idk why people like this video too much. Telling "every abstraction comes with a cost " should not surprise any programmer.
Sure if you use non virtual functions over virtual functions,
or using struct over classes or using manual SIMD over none or
using unsafe code instead of safe of course will result faster code but all of them have some tradeoffs.
Code just not about execution speed. Which looks like cannot be understand by some performance gurus.
Of course these techniques will result 20x performance benefits now my “buff system” code takes 10 microsecond instead of 200 . yaaay. But with what cost, is it worth it?
Taking 30 second to open a excel proves a point, “a program that dominate industry and probably one of the most selling software takes 30 second to boot” so sometimes performance doesn’t much matter in SOME situations.
Minecraft written in Java and it was periodically lagging due to garbage collection, on capable pcs.
Terraria still laggy when there is a lot of projectiles, mostly middle of boss figths, on capable pcs
Both of the sells millions of copies.
I guess just I want to say is “performance no matter what, if your program is not optimized you are a bad programmer” is a bullshit as “Clean code no matter what, if your code not Clean™ you are a bad programmer”. Priorities change by industry, project and subdomains in that project (UI, Gameplay, Core).
My motto is "Do you exceed frame budget? optimize it, no? then continue. "

3 Likes