Related link: http://rebelstar.namco.com/
I’ve replayed some of my favorite retro games recently, whether on emulators, new virtual machines, or those n-in-1 devices that hook up to the TV. Some are still classics and others don’t fare as well.
Whether it’s experience, higher level languages, or the steady march of technological progress, games such as Pac-Man don’t seem so complex anymore. A good programmer could probably reimplement most of it in a day (although there are tricks, such as making each ghost move at a slightly different speed). Part of that is also having much better libraries and tools — having to reimplement Inform every time someone wants to write a text adventure or writing low-level double buffering code in assembly is tedious and prone to bugs and gets in the way of the actual goal.
In theory, 3D makes games easier — if you have sufficient hardware or software support to handle the increased requirements to lay out and render a scene efficiently, you don’t have to worry about drawing each sprite from the appropriate angle. Sure, there are ways to cheat on this, but coming up with workable, viewable animations is much easier when you can describe them algorithmically and modify an existing model without having to prerender each possible change beforehand (let alone store, manage, and load all of the appropriate assets).
In practice, the closer 3D games get to the uncanny valley, the more detail the models and textures need and the more power the hardware needs and the more complex the software gets to try to keep up with all of the nice effects and the increased memory and disk requirements.
Maybe there’s a sweet spot where going full 3D really makes development easier. I would hate to program an isometric game that needs a rotatable camera without a 3D engine, for example. Could I write my own tile-based game by myself in a couple of weeks and make it actually fun and playable? In a month or six weeks could I have a release-quality game?
If so, maybe that’s an indictment of the “make things easier by making them more complex” idea that seems to afflict so many software projects — not just games. If a hundred hours of my work give people ten hours of fun apiece, is that better than a hundred thousand hours of a professional game studio’s work giving people twenty hours of fun? Is Half-Life 2 really several millions of dollars more fun than Rebelstar: TC?
(I could argue contrarily that HL 2 is foremost an engine demo, secondarily the test of a new distribution system, and finally a game, but that’s a different discussion altogether.)
So many large, complex projects aren’t successful. Maybe smaller, simpler projects will really capture the essence of the solution in timely, cost-effective ways.
Everything I know about software development I learned from video games. Well, several things anyway.
