Cheating in Game Design
Posted on 16th Mar 2009 at 11:09 by Cliff Harris with 16 comments
Until that happens, games programmers will do bodges, cheats and sneaky optimisations that you probably don't notice.
I remember a comedy sketch from years ago that ridiculed the kids puppet show Stingray for having a character in a high-tech wheelchair-style device that he slid around on. The joke was that this made him easier to film as a puppet, because it was always the walking that looked rubbish. Game developers do the same thing all the time.
Have you noticed how many game characters have big beefy shoulder-pads, regardless of whether it’s sci-fi and fantasy? Partly it's style, but it also means you don't have to be fussy about how the arm connects at the shoulder, which often has texture-tearing issues when the characters skin stretches.
Cover the whole area with a big shoulder pad though and the arm can be a separate object without any fancy 'skinning' to attach it to the body.
Multiplayer games often use all kinds of approximations and cheats when you aren't looking too. The old question of 'if a tree falls in the forest and nobody is there, does it make a sound?' is easily answered by game programmers; "Not if we optimised correctly, no."
We shouldn't be suspicious or critical of cheats and bodges. They’re what make games look as good as they do. There is no way you can really render an army of 2,000 3D models marching across a battlefield at 60 FPS. The only way to do it is to render the far-off ones as sprites, or render them in groups where you animate one, then copy the geometry to a few others. Most dramatically of all, anything not facing the camera isn't drawn at all. When a soldier turns his back to you in a PC game, his face literally disappears. In the biz we call it backface culling.
I'm currently putting the same kind of optimisations into drawing a 2D game. Even 2D games can have performance issues if your scene is complex enough and if you aim to run OK on low-end intel-powered laptops.
My space game has fleets of ships, hopefully a hundred or more on screen at any time. Some are fighters, some are frigates and some are cruisers. If you’re really observant, you will notice (when it's released) that although ships seem to semi-randomly fly above or below each other when they intersect, the fighters always seem to fly underneath the bigger ships. Why? Because there are a lot of them, and drawing them in one bunch makes rendering the scene much faster.
There are no gameplay implications to this and I doubt anyone would notice, it's just one of the ways in which games coders are sneakily cheating all the time. Don't worry, we will try and ensure you never notice how.