ConorVernon

joined 1 year ago
[–] ConorVernon@kbin.social 7 points 1 year ago

Thank you, this was a very informative read :)

[–] ConorVernon@kbin.social 22 points 1 year ago (2 children)

On the surface level Unreal has it beat for features. However, Unity is generally considered more lightweight plus being easier and less clunky to code for.

Over the years that's been changing though. With more half-finished bloat being added plus PR disaster's like this, open-source alternatives like Godot are becoming more popular for those who still don't want to use Unreal for whatever reason.

[–] ConorVernon@kbin.social 1 points 1 year ago

Profilers for diagnosing performance issues.

I had an experience where my general basic rendering knowledge (lots of draw calls / polys = bad) got me complacent in solving performance problems. I saw low FPS, I started simplifying meshes. But that's not always the case, there can be runaway code, memory issues, specific render passes etc.

In my case, I was trying to get a Unity game to run on a PS4 devkit but it kept crashing on a certain level. I wasted a lot of time simplifying the meshes used in that scene before jumping on a call with our tester (who had the devkit and was also inexperienced) and remotely profiling the game to determine the root causes.

This turned out to be a memory overload. The amount of functional RAM/VRAM you have on a PS4 is actually pretty limited compared to a desktop PC. In our case, there were several things ramping it up and over the limit:

  • Unity's static batching creating new combined meshes which added to memory cost
  • Like batching, mipmaps also generate new copies of a texture which take up memory
  • Excessively high-resolution textures for simple patterns (we hadn't considered Texel Density at all for that project)
  • Erroneous use of high-memory textures where it was not necessary (e.g. a Visual effect was being driven by a 4k pure white texture, instead of just a vector colour)

So now, while my knowledge has significantly improved from experience, I make use of profiling wherever possible to confirm what a problem is. As the saying goes; you don't want to just mindlessly create solutions, you want to identify and solve problems