A lot of the complication in games comes from trying to make it more realistic. For example physics engines and real-time, dynamic lighting are extremely CPU intensive and difficult code wise. Sure you could compute the wishes of every NPC in your game real time and carry them out to be more realistic. You could have bullets actually drop the player's character to the ground, since that is reality. Obviously complete reality isnít what people want in their games. After all if you want reality you can simply turn off the box, put on your coat, and walk outside. Granted you couldnít be a criminal mastermind if you did nor the commander of the Roman legions nor the emperor of space. But if you want these things, chances are you arenít looking for reality anyway.
If you do want 100% reality in doing something you wonít find it in a game. Rather you want a simulation. While simulations can be games, nothing in their definition mandates that they must be a game nor does anything in a gameís definition demand that it has to be a simulation. Therefore do not confuse the two when you are programming. You do not need 100% accurate physics, you donít need intelligent NPCís living realistic lives, and you definitely donít need the headache of figuring it out when its only going to lead to the heartache of people not playing it since its not fun.
So now it seems we ought to skip reality completely and replace her with her sister fantasy. Well not quite. After all a world where the player canít die since he was never alive, where people float or exist only as abstract ideas, or the player finds himself in a non-existent void of extreme duplicity will only serve to give your player a headache. In light of this we should evaluate the presence of reality in a game. What purpose does it serve if too much is a bad thing but not enough is equally bad?
The answer to this is that reality is the players hold on your game. Reality defines the playerís ability to grasp, understand, and interact with your world. The keyboard, mouse, gamepad, and joystick are all the physical components the player needs; reality is the game concept of these devices. Reality goes far beyond physics, lighting, and the like. The idea of your player as a physical essence amongst other physical essences in a larger essence of being (as much as it makes your head hurt) is part of reality in its base form. The idea of actions and reactions is a component of reality.
Now before I get so abstract that I lose complete focus how does this apply to games? Reality needs to be balanced with the rest of your game. While not enough reality in your game may lead to your player not being able to grasp the concepts behind your game, too much ruins the content of your game.
What does this mean? It means that you have to put enough reality in your game so that the player understands and feels your world. Use enough reality so that he can interact with the game and understand its reactions without putting so much that the player gets preoccupied with the reality instead of playing the game.
If you have ever read my article on simulating ecosystems please forget what was in that when working on your game. The idea behind it while decent as far as simulating goes would prove horrible for most games. For example in a shooter you donít care that your enemy was taking object A to point B because of boss C who he is working for because of wife D who needs to support children E. The only thing your player sees is an enemy with an object therefore all your game needs to have in place is ó you guessed it ó an enemy with an object. If you are trying to make a totally random and in-depth RPG it might be advantageous to have some complicated AI system like that at work but its entirely unnecessary and in most (99.9% of the time) circumstances will detract from your game. Not only will the heavy equations and such in your game eat the FPS like crazy but your player is likely to find himself in a complicated mess of logic that will only cause him to hit the X and never click on your exe again (nor the shortcut you placed conveniently on his desktop).
To sum it up you need balance. That enemy I just killed didnít need to have a life, purpose, current task, list of friends, wife, children, home, and the like. But my gun did need to fire bullets, he did need to die, we both needed to exist, and he needed at least crude tactics so the player felt like he was in a real world. If your game play supports it, a complicated physics engine may indeed add to your game but be mindful of how complicated it needs to be to serve whatever purpose you are putting it in there for. For the less obvious elements of reality that you are installing in your game you should know why you are putting them in there. This way you can implement them without overdoing - or underdoing - them. You donít need to explain why there is a world, a player, and a goal, but at least a one-word answer as to why you need everything else might save you the trouble of implementing too much reality into your game (or not enough).
That pretty much sums it all up, thanks for reading. Hats off to SJ for his excellent article named below, without it I probably would never have written this. I would also have used a very complicated, pretty realistic, and completely unnecessary AI module for Sub Human Evolution which at its latest version before I abandoned it had taken over 800 lines of code.