this post was submitted on 24 Jun 2023
2 points (100.0% liked)

GameDev

2764 readers
1 users here now

A community about game development.

Rules:

More rules might follow if they become necessary; general rule is don't be a pain in the butt. Have fun! ♥

GameDev Telegram chat.

founded 1 year ago
MODERATORS
 

For me, I recently had to revamp something because I was taught to use PlayerPrefs for saving all game data and had to move everything to a JSON in order to make cloud saves work or even just transfering save files to other devices.

you are viewing a single comment's thread
view the rest of the comments
[–] 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