Everyone hears the tems “memory”, “processor”, “storage” and “graphics card”, and they understand that these are somehow parts of a computer, but not everyone has a grasp on what these parts mean and what they do. Nerds tend to get insufferably smug about this. “Psh. My dad got a popup saying his hard drive was full and asked if he needed to buy more memory. What a dummy!”
But the awful thing about computer hardware is that this knowledge isn’t usually taught in schools as part of the general curriculum. (I’m sure this varies by region, but I’ve never met anyone who has taken some kind of mandatory computer literacy class. I imagine this will change in the coming years. But maybe not. We all drive cars but only a fraction of us can open the hood and say what’s what.)
A small number of people study this stuff on purpose because they enjoy it, but everyone else just sort of muddles through by absorbing it from the people around them. It’s folk knowledge. And the thing about this sort of knowledge is that it can be kind of patchy. Maybe you grew up in a circle of friends and relatives who didn’t talk about it. Maybe you grew up with someone that took care of your technology for you without explaining how it works. Maybe you just didn’t care then, but now you’re curious.
In response to last week’s column, someone sent in this question:
I don’t think I ever really understood why the graphics card in a computer was the limiting factor that needed to be replaced – as far as I’m aware, other statistics such as having lower processor speed or memory would result in a slower game, not in a game that wouldn’t function at all. Would you be able to expand on that in one of your columns?
Daniel is right: There are lots of systems in the computer, and depending on the game any one of them can be the reason it runs slowly, or not at all. So I’m going to use his question as an excuse to talk about this folk knowledge. Everything here applies to both consoles and PCs, but I’m going to describe things in terms of PCs because that’s easier.
First, a primer. Skip this if you know what’s what inside a computer case.
A Newbie’s Primer on the Parts of a Computer and How They Apply to Games
Your hard drive is the thing that holds all of your games. When you install a game, you’re putting it on the hard drive. The hard drive is storage media, like VCR tapes, DVDs, or music disks. It does its job even when the power is off. Your CD doesn’t go blank if you turn off the CD player, and your hard drive doesn’t go blank if you turn off the computer. Having a bigger hard drive lets you have more games installed at once, but it generally doesn’t help beyond that. It won’t make the framerate better, or the graphics nicer, and generally doesn’t make load times shorter.
I think everyone has a good idea of what the CPU is. It does all of the non-graphics processing. Network, AI, user input, sounds, game logic, and a hundred other things are done on the CPU.
However, the CPU can’t use stuff directly from the hard drive. In order to run a game, it must be loaded into memory. Repeat after me: The hard drive is not memory. There. Now you will avoid making the single most embarrassing gaffe regarding computer technology.
The time it takes to launch your game? That’s the game being read from the hard drive into memory. Memory, unlike hard drives, goes blank when the power is off. Also, memory is (roughly speaking) a thousand times smaller than your hard drive but a million times faster.
Generally speaking, you can’t fit an entire AAA game into memory at once. And even if you could, nobody would want to launch the game and then wait five or ten minutes to begin playing, which is what would happen if you wanted to load the whole game at once. No, usually only part of the game is loaded into memory. As you play, it will need to read in different bits of the game from the hard drive, based on where you are. This is what loading screens are. The next block of the game is being pulled from the hard drive into memory.
The final part of the PC or console that we’re worried about here is the GPU – the Graphics Processing Unit. Or more informally, the “graphics card”. Making computer graphics requires a ton of intense and specialized kind of processing. the GPU is designed specifically to turn the data in the game into the pixels on the screen.
So those are the four main parts of a gaming machine. A proper computer needs more parts than that (a lot more parts) but these are the ones we usually worry about when someone asks the question, “Why doesn’t this game run?”
I apologize for the above explanation. I know to 90% of you, this all seems obvious. But I know there are always a few people who never picked this up. If I can save just a couple of people from the confusion and embarrassment of not knowing this stuff, it was worth it.
Now, back to…
What Makes Stuff Obsolete?
Computer evolution is generally depicted as a roughly linear thing: The hard drives get a little bigger, the memory gets bigger, the CPU gets faster, and the GPU gets faster. But in reality it’s not nearly this simple, which is what makes Daniel’s question so complicated.
Last week I mentioned that your processor is actually several processors (called cores) all packed together. The game developer needs to divide up their game into several threads to put those extra cores to use. Where it gets tricky is that some processors have a different number of cores and some processors run at different speeds. Is it better to have two really fast cores, or four medium-speed cores? It depends on the game you’re trying to run and how many threads it has.
Consider two games: Shoot Guy is a shooter with static scenery. The walls and decorations don’t move, there’s very little in the way of physics objects flying around, and you’re never facing more than a couple of foes at a time. There’s not a lot of processing to be done, and most of it will be fairly serial. The other game is ShootCraft, an RTS with tons of flying debris, destroyable environments, and dozens or even hundreds of combatants running all over the place.
Shoot Guy might benefit from a processor with only a couple of fast cores. ShootCraft might do better on a machine with lots of cores, with less of a need for raw processor speed. If Shoot Guy runs beautifully on your machine but ShootCraft runs like an asthmatic mule, then some people will claim the ShootCraft programmers are bad at their jobs, but that’s not always the case. Even if two games look visually similar they can have very different needs. They differ not just in how much power they need, but in what form that power takes: Cores or clock speed.
Over the past decade or so, the number of cores and the speed of the processors have climbed gradually, but not always at the same time, so it’s hard to say when a particular CPU will be officially Too Old to play the latest games.
The other thing that might keep a game from running is memory. Usually the programmer will pick a target for their game: “Shoot Guy will have a three gigabyte memory footprint”, meaning the game will require that much memory to run properly. This is more of a hard limit. If your processor isn’t up to the job, the game might be sluggish but playable. But if you don’t have the memory the programmer intended, then the game will either refuse to run outright, or will try to run and crash.
Even more complex is the question of when a graphics card needs to be updated. Graphics cards aren’t just getting faster, they’re becoming more complex and robust.
Let’s say game developers devise this sexy new rendering effect called “bling mapping”. It’s a bit of a strange hack that involves a bunch of crazy math, a few rendering tricks, and some special art, but when it comes together it looks amazing. It catches on. Even though it’s a complex pain in the ass, other developers copy the technique because it looks so good.
Then NVIDIA sees this, and they add a feature for their next round of graphics cards that supports bling mapping directly. Developers don’t have to do this goofy hack and mess around with all of that extra work and CPU-hogging math. With just a couple lines of code they can have bling mapping.
The developers of Shoot Guy 2 are grateful. They remove the complicated old hack they came up with and implement NVIDIA’s new bling mapping.
This is great for the developer, because code complexity is a real problem and simplifying things is a great way to speed up development, make the game run faster, and cut down on the number of bugs. But this sucks for the poor gamer at home. Now you need one of NVIDIA’s new cards for bling mapping to work. Even though bling mapping worked on your old graphics card in Shoot Guy 1, this new game will require an upgrade. Note that this has nothing to do with how fast the graphics cards are.
If you’re lucky, the developer will make bling mapping an optional thing so you can still run the game. If you’re not lucky, you’ll need an upgrade, even if Shoot Guy 1 and 2 look roughly similar and your old graphics card should technically be fast enough to handle the rendering load of Shoot Guy 2.
You could see this in the mid-aughts with things like normal mapping and HDR lighting. You’d see it in system specs of games, where they warned that you’d need a card that “supports 2.0 shader model or later”. Those marked points in graphics evolution where new features were added to the hardware, cutting off the older generations.
As complex as all of this is, remember that this is a super-simplified view of things. Technology isn’t a straight line, but a meandering climbing path with cutbacks, loops, and dead ends. This is one of the reasons consoles are so popular. People that already know this stuff tend to take it for granted, and underestimate how much of a hassle it is for the uninitiated to figure out what they need to buy for their PC and when they need to buy it.
(Have a question for the column? Ask me!.)