What does optimization mean when referring to game size?

195 views

I feel like “optimization” gets thrown around as a buzz word when talking about supposed unnecessarily large game sizes, like the upcoming Mortal Kombat. But what does it actually mean for a game to be optimized? Or how can it be done?

In: 0

6 Answers

Anonymous 0 Comments

Optimization can be everything in general. So, including the size of things, speed, efficiency, etc.

In most cases, like the context you are describing, I believe optimization is considering the client’s average frame rate, stutters, netcode, etc.

Size doesn’t really matter for this if you are not aiming to optimize the size of the game. The size of the game should very rarely, if ever, have an influence on general performance. Optimizing the size of the user end product is sometimes a priority, sometimes not. With games, I don’t see much reason to be concerned with it other than the average global internet speed access or average device storage capacities. (Will vary depending on region and platform)

For example, a game being 50-150GB is acceptable due to its wide range of content capabilities.

A small text editor software being 50GB+ is a no-go. There’s not enough content to warrant spending that much space on such a small program. Plus, my users may not want to download such a large program for such little functionality.

Anonymous 0 Comments

Back in the day, when we wore onions on our belts as was the style at the time, memory and processing speed were extremely limited and you had to do things like load your drivers in a specific order to ensure there was enough left over to run the actual game. This also required developers to keep their codes lean and clean to ensure the average consumer could run it.

As memory, processing power, and hard disk space have increased by orders of magnitude, such optimization has become less necessary and many developers care less about keeping things slim because it’s no longer strictly necessary. Plus things had to fit on floppy disks and later CD-ROMs, now you can download anything without really worrying about how big it is. Bloated software might cause the download to take 2 hours instead of 1, or cause frame rates to drop occasionally, but they won’t generally cause the game to literally not run.

As far as how it’s done, it varies, but at the core is about minimizing lines of code and/or ensuring only the ones necessary in a given situation are actually processed.

Anonymous 0 Comments

The real question is “Optimized for *what*?

Usually in games it means optimized for performance. This can mean any number of things, like figuring out which parts of the models you can cull without impacting graphics too much — simpler models mean faster rendering.

It can also mean simplifying various aspects of the games physics or using clever tricks that are computationally easy to do but give complex results. One of my favorite examples of this is the “fast inverse square root” which is/was used for calculating reflections. Normally finding the inverse of a square root is incredibly computationally expensive because finding the square root of a number is incredibly computationally expensive but the technique instead uses weird bit-level manipulation techniques and a pre-calculated constant (a value that doesn’t change while the game is running) to give a pretty good estimate of what the answer should be but at a bare fraction of the cost of actually calculating the answer.

There are other ways a game could be optimized, such as detecting specific hardware and changing how certain things are done when that hardware is present (or not) because that hardware is really good at some things and not so much at others. It could even mean changing the order of when things are loaded into memory so it’s faster to access or does big things when not much is going on in the game so you don’t notice any slowdowns. For example, a lot of games hide enemies outside of the bounds of the map so when they “spawn in” they’re actually just moved, that way the game doesn’t have to load anything during the spawn in process which might cause a framerate hiccup in the middle of a fight.

So what does it mean for a game to be optimized? Ultimately it means that things have been changed so that the game does whatever it’s trying to do better than it did before, possibly at the cost of other things which are less important or that typical player won’t even notice.

Anonymous 0 Comments

Two main ways of optimizing size are picking a better way to lay out the data and compressing it.

For laying out the data, imagine filling a box with various items. If you throw things in without thinking, you’ll have a lot of empty space in between items. If you carefully plan where each item goes, you can fill the box more tightly and thus use up less of it’s space. This method works well with small data that you want to pack very tightly, but does not do as much once you start dealing with large data such as high-quality textures for video games.

The other main way is to compress what you’re trying to store. The real world analogy is seeing the difference in size between a balloon before and after it is inflated. When you want to use the balloon/data, you need to inflate it first. This means you are trading off some time spent inflating the balloon/data to it’s proper form in exchange for a smaller balloon/data size.

For a game to optimize it’s size, more time can be spent on the compression and layout of the data of the game.

Anonymous 0 Comments

A big obvious one is the question of whether you save a bunch of unique things or save the elements needed to make them and assemble them on the fly.

Consider a huge cookbook with thousands of recipes for cake in it. Most of the cakes are fundamentally the same ingredients (flour, sugar, egg, butter) with a few specialty ingredients that might also get re-used across recipes (chocolate, lemon, etc.)

One way to represent this cookbook in a computer is a set of ingredients (of which the computer can make as many copies as it wants) and recipes. Another way to represent it is with an example of each of the possible cakes you could bake. The first example is optimized for memory – recipes and ingredients take up less space than thousands of finished products. The second example is optimized for performance – whatever cake you might want is always available without having to assemble it.

Games face a similar tradeoff and have currently been favoring the second strategy. Just save gigabytes of unique assets and call them up as you need them. Memory is (relatively) cheap and extensible, but consumers demand top-of-the-line performance. In contrast, older games famously had to pack a lot into a small space, leading to famous hacks like the fact that the clouds and bushes in Super Mario Bros. are just the same blob painted different colors.

Anonymous 0 Comments

Well, you’re right. It gets thrown around as a buzzword. You can optimize space, speed, build time……basically the word is (over-) used to describe any efficiency increase, even partial ones (which, clearly, are not “optimal” if there is room for improvement).