Games programming is a bit of a dark art. This is not because it is that terrible secret nobody is willing to share with you. When it comes to secrets it is quite the opposite really – game developers are one of the friendlier mobs out there; half the time they are telling you their secrets regardless of whether you want to hear them or not. No, secrets have nothing to do with it. Making games is a bit of a dark art cause of all the cheating like there is no tomorrow needed to make them. You see, you could do things properly, the same way you would for a scientific simulation, and your game would just about run on a huge mainframe with a couple thousand processors. Alternatively you could lie, deceive, evade and compromise ensuring your game would run fine on much more modest hardware. Hardware like the one your target users are likely to have. Games programming is not about doing things the right way. It is about fraudulently tricking your target audience into thinking things are done properly. In simpler terms it is like doing a David Copperfield using programming instead of mirrors and rotating platforms.
The reason things are the way they are is simply this – in the beginning of the gamming era the hardware was not up to the task. So we started cheating – using scripting instead of AI, pre-calculated values instead of maths, approximations instead of physics and so on. Improvements in the hardware didn’t help either cause when this arrived we wanted to build even better games. In fact at no point in the gamming era did the hardware available has ever been up to the task. For a purist, someone who really is serious about science and who cares about accuracy when it comes to representing the real world, building a modern game with today’s hardware is impossible. For pulling out a trick like that you have to be a cold hearted crook, a compulsive deceiver of the highest degree. Someone willing to sacrifice the accuracy of his collision detection, someone willing to use pre-rendered images for skyboxes, someone who is not afraid to even redefine the laws of physics themselves just for the sake of saving a bit of processing power here and there. What it takes is a special type of liar – a good one. Appropriate when considering that the end result will be a lie itself, for what is a game if not a fantasy given form; a virtual world that no matter how similar it is with our world it might be, it is still a thing that does not exist.
In a way making games is a bit like writing a fiction novel. The main difference is the stories (game scenarios or whatever) told are not the only falsehoods. To make a game one has to also lie about the capabilities of the hardware, the game mechanics and detail of the graphics (textures instead of geometry, phong shading instead of ray tracing, etc). In time the hardware will allow miracles and wonders being done the correct way. However, if there is one thing we learned from the previous few decades of gaming is simply this - it doesn’t really matter. The reader of a fiction novel does not really care if it is based on a true story or not, might be even willing to believe the impossible if told in a skilful way. Furthermore, the reader does not care whether the cover of the book is made of paper or high quality leather either (unless perhaps he happens to be NesCartesius). If the end result is enjoyable and fun then the mission has been accomplished. Rejoice follow dark lords; a good lie is better than an unpleasant truth.