Are developers just thick, or something?

In my previous post, I was talking about why games aren't "progressing" the way players imagine they would, why games seem to make only modest progress, when there's a clearly obvious "destination" that everyone can see. Why aren't we running full-tilt to that virtual universe, where everyone can do anything?

The first reason is that, well, worlds are expensive: worlds have a lot of stuff, and people need to make that stuff. The next has to do with the technology available to create those worlds. Moore's Law is fine and all, because it means polygons get shinier and bumpier as computers get faster. But why aren't the programmers of these games using this tech to its fullest advantage in the game design? They get most things right, but somehow every coder at every company is somehow too dumb to realize what players have been expecting for years.

Players want, among other things, excellent artificial intelligence out of the non-player characters and creatures of a virtual world, and they continually wonder why monsters tend to either attack with rather suicidal self-regard, or meander in a zig-zag fashion over to a character who they want to attack. They say they want non-player characters who live full and productive lives, going from place to place running errands, going to sleep when they're tired, reacting to players who doth speak most correctly, or who otherwise behave much more believably than most NPCs currently do. And they think game devs are just too lazy to give this to them.

The apparent improvement in computers has been rather less dramatic than players suppose, I think, because much of what they want is AI-complete: that is, the desires require that the central problem of true artificial intelligence be solved first. But even simpler problems can mean much more work than one might first assume, if only because there are a world of them to solve.

In an artificial world, there are thousands of people and characters moving around all at once. Tens of thousands, even. Every player avatar in game has a single biological computer of unsurpassed sophistication dedicated to only that avatar: the player's brain. Every NPC and monster in game has a couple cycles of of the best CPUs that 2007 can offer, CPUs that are shared with 10,000 other guys. These CPUs don't just think for these creatures when they need to talk or fight, they need to think for them to simply move them, to keep them from standing still. They need to think to move them again a second later, and again a second after that. They need to keep track of whether or not the creature has made any progress the past few times it tried to move, because it might be stuck. They need to check a radius surrounding them every now and then, to see if there's something (like a player) nearby that would cause it to do something else (like attack, or run away). Even simple behavior can be expensive to do, if there are enough simple behaviors to think about.

Then there's messaging bandwidth. When players do something with their avatar, the manifestation of that action must get passed to every player within the radius of perception of that avatar. For chat text, that's pretty easy. For complicated polygon transformations or texture changes, it's expensive. Even messaging between NPC characters can get expensive, because it's expensive just to listen for messages: this is why you find games where you can attack the comrade of an enemy in clear view of another enemy, without the other fellow coming to his friend's aid. The larger the radius of perception an NPC has, and the more frequently the NPC "heartbeats" to hear messages, the more expensive their ability to listen gets.

CPUs are fast, and keep getting faster. But game worlds are increasing in size (spanning tens of thousands of virtual square miles), increasing in asset complexity (objects are getting more complicated), increasing in asset number (there are more of them), and increasing in overall functionality (there are more things to do with them). CPUs could show off their growth better if things only grew in one direction, not the several directions that we push things at once.



IEEE Spectrum’s gaming blog was retired in 2010, but it is preserved here for archival reference.