is a process, not a stat, not even a progress bar
please can the Gamers stop saying things have "bad optimization" or whatever. i don't know how to kindly explain to you that the way it sounds lands squarely on a spectrum between clueless and jackass. consider the following:
-
it is a MIRACLE that video games work. like, at all. i make video games and i can hardly believe they exist. and that's before you even get to the graphics!
here, i'll give you all the vertex coordinates of ten thousand objects in 3D space. tell me which ones are touching. you have: 0.005 seconds. good luck
-
making something faster while behaving the same is hard. it is really hard. it is really really fucking hard. it is one of the hardest things. if you're lucky there's some obvious low-hanging fruit that gets you far enough. beyond that it is a niche so specialized that it has no name, performed by 1 witch at your studio that no one's sure they've actually met in person, who disappears for three weeks only to reveal they've improved load times by 9% by forking ext4 to store entries in alphabetical order, whatever the fuck that even means, while the rest of you are desperately scouring stackoverflow for something bozotic like whether double-quotes are "faster than" single-quotes
-
there is no such thing as "fast". there is only "faster", and "fast enough". you don't just keep going until you have Fully Optimized The Code because that is not a real thing. you plunk away at one thing at a time and watch your update and render times drop by microseconds, sometimes unsure whether you've even made a difference because it's drowned out by noise. maybe you made things slightly worse, even. maybe better on one platform but worse on another. cross your fingers i guess. how long until we're supposed to ship, again?
this just really grates at me because like
"it's slow for me" is a factual observation. even "it's slow for everyone" is a factual observation. "it has poor performance" is still a factual observation. "it's fucking unplayable", "runs like ass", sure
but "it's badly optimized" is a value judgement of skilled work that someone did (or lacked time/expertise to do) on code you have never read. it seems to have come out of the same vortex that produces insights like "[game] was made with the unity engine, which is why [non sequitur]" from people who are inexplicably compelled to talk about the nuts and bolts despite having never seen either a nut or bolt themselves
you can just, have opinions on video games. you don't need to try to fake sounding like maybe a programmer
And that's not an exaggeration.
For my current AAA client company, I've built an in-game map screen for their open-world game from the ground up. I first built a system to procedurally generate map textures at five levels of detail (LOD) that scale from 1024 x 1024 pixels at the lowest resolution to 32,768 x 32,768 pixels at the highest resolution.
Next, I built them a screen navigable with either a gamepad or by clicking and dragging on the map with your mouse. Then I made them a custom widget system and filled the screen with icons for the different activities, etc.
I did all this in JavaScript, and it was slow as balls. So I spent around three weeks optimizing how the map textures are loaded and using the camera frustum to load only the map textures needed for the current, previous, and next LOD. When I got that working for the first time, it was like a magic trick. You could infinitely scroll from the lowest level of detail to the highest, and it was seamless. But it was still slow as balls.
The answer to the slowness, it turned out to be, was a single flag in the engine called force_redraw. Enabling that made all the performance issues evaporate.
Witchcraft is exactly right.

