Developing for new consoles can be hard work. In the last 12 years, we've seen the release of the Nintendo 64, PlayStation, Dreamcast, PlayStation 2, Gamecube, Xbox, Xbox 360, Wii and PlayStation 3 alongside numerous hand-helds and constantly improving PC hardware - ranging from multi-core processors to graphics cards with over half a gig of RAM.
In order for games to be released on each platform, developers have to learn each system's intricacies, build tools to make the most of their strengths and avoid their weaknesses, optimize code to run blindingly fast and ensure everything works without hiccups.
Games get better as developers become more familiar with the hardware. The PlayStation launch title Ridge Racer paled in comparison to its successor, Ridge Racer Type 4. R4 was much larger in scope than its predecessor; it had 321 cars made of more polygons with more graphical detail, Gouraud shading to improve the texture depth and improved car physics.
The improved performance for each generation of games is a direct result of the programmers' hard work - the code monkeys who are responsible for telling the hardware what to do. But programming is hard, and it's often overlooked and misunderstood by the public. "People don't realize it takes about two years to write a game from start to finish, with about 80-odd people," says Tony Albrecht, Senior Programmer at Pandemic Studios. "People are always shocked by that. It shows a real lack of knowledge as to what goes on [in game development]."
And yes, we should probably learn to understand the programmer a little more. These essential personnel are at the frontlines of every next-generation console war - the first to discover and exploit the strengths and weaknesses of the next great leap in technological advancement.
On request, Albrecht provides an example of how each next-generation console affects the way a programmer does his job, from the perspective of a graphics engine programmer.
"On the PS1, you had the challenge of transforming and rendering simple meshes in 3-D with a single texture [think of Croc's simplicity]. Now, given the power of the hardware at the time (33Mhz CPU), it was a challenge. Then we get the PS2 - we had two vector units that could do insane amounts of vector processing (comparably). But because we could render more things, we had to render more things. Lots more. So the challenge moved from processing individual verts to processing meshes. We had to move from just processing hundreds of verts with hand-coded assembly to processing thousands of meshes, each with hundreds of verts. We had to move from a single CPU to a main processor and two vector units and a GPU. Note that both of those vector units were rarely used to their full potential. Then, just as programmers were making the most of the PS2, the PS3 comes out and we have another half a dozen processors to manage."
Programmers at the base level constantly have to deal with exponential increases in computing power and new, more complex architectures. They must adapt to make the best of the new, which can be a long process, considering it took seven years after the release of the PlayStation 2 before games like God of War II and Okami were able to really push the PS2 hardware to its full potential.
It might come as a shock, however, to discover that programmers are generally stubborn when it comes to learning how best to handle new technologies. "Programmers are very resistant to change," says Albrecht. "They're generally very intelligent people - game developers in general are very smart - but programmers just don't like change. They like their standard environment. They like their standard compiler. They like what they're used to, and they have a lot of momentum behind their beliefs."