This week I was doing some physics fiddling. Even early on in a game prototype, when I should be throwing everything at the wall, I tend to hold back. I’m always looking for that one thing that I implement that will push the entire flaming mess over the edge and reduce the framerate to Muybridge reference book. Of course, whatever that one thing was, it would be absolutely integral to the game and I would have to rebuild the entire structure from scratch just to work around it.
That never actually happens. It turns out that even the tiny computers in phones and tablets are ridiculously powerful, and it would take some truly thoughtless design to stop them from running most game prototypes. At one point I had it so that the game would get stuck in a loop and infinitely spawn physics objects that would collide with other physics objects triggering the spawning of even more physics objects. I left this mess running on my phone for several minutes. Eventually the game was drawing one frame every few seconds, but it never crashed. Most of the screen was filled with barely moving spheres, several hundred thousand pixel shaded polygons all told, each object with it’s own calculated physical reaction to the objects around it. I had made little to no attempt to optimise anything in the game, and still it kept on running.
I used to test out new video cards by creating an array of duplicate primitive objects, cubes, spheres, or cones, in Maya. Early GeForce cards and Pentium2 processors could deal with a few hundred. The last time I tried that particular benchmark the fan on my Graphics card spun up, but the screen was filled with a 3D grid of objects that looked like a scifi novel cover. Cones as far as you could see in any direction. I haven’t tried it, but I suspect that my phone would perform pretty well in such a test.
There is a reason why the digital special effects in Jurassic Park and Terminator 2 don’t look like “bad cg”. A lot of people, casual moviegoers and filmmakers alike, tend to say that it is due to the mix of practical, in camera effects, and computer generated effects. The real world puppets, makeup, and motion controlled models cover for the CG, because CG is always bad. This is, of course, completely wrong. These movies were made in the early days of digital effects. No one really knew what would work on film. Could a completely digital T-Rex command the same presence on screen as a real physical object would. Absolutely no one had an answer for that question, so the best course of action was to use the bleeding edge of technology as sparingly as possible. You could always cut around it if it didn’t work out.
These new visual effects technologies were pushed only far enough to achieve the required effect on screen, and no more. Leaning on the liquid metal effect in Terminator 2 would mean that there would be no way to drop scenes that didn’t work. The end goal of the effects in T2 was the visceral feeling of battling an opponent without substance, it was never meant to be a catch all solution for every special effects need. The new film Mad Max Fury Road is applauded for it’s use of practical effects over digital ones. Barely a frame of that movie goes by without some digital manipulation. The color in every shot is bent so hard it could have been filmed in black and white and tones painted in after the fact. The effects never draw that much attention to themselves, because they are only used to achieve a certain feeling, they are not the content of the scene.
With the staggering amount of processing power available to modern video games, it might seem possible to just turn on pretty shaders and dynamic physics and have that be your game. This is where, maybe some restraint is in order. If an processor intensive task is actually creating the feeling you want your players to be feeling it might be worth pursuing. If it’s not, but the technology is letting you get away with extras, it might be better to simply cut that effect and work around it.