Microsoft understands reverse compatibility better than just about anyone else (Xbox 360 nonwithstanding). Windows developer Raymond Chen has documented on his blog the heculean efforts Microsoft makes to make games compatibile with their new operating systems, even and especially if the developer doesn’t care anymore.

It makes sense that the developer doesn’t care anymore. In the first few years of a game’s release it makes 90% of the sales it is ever going to make. It doesn’t make financial sense to go back and make your Windows 95 or DOS game work in Windows XP if it doesn’t already. This is assuming it’s more than a couple of lines of code and a recompile. And this is also assuming the developer still exists, still has the source code, still has some rights over the IP, etc.

This is the other talon of the DirectX approach. In addition to the notion that it makes games and hardware get along better, it also in theory assures that your games will continue to run on future versions of the operating system. Or at least that’s what Microsoft will tell you. And Microsoft Evangelists will also tell you that. And to their credit, they’re right 90-95% of the time. And the 5-10% of the time that they are wrong, it usually just takes a little nudge to get the thing working correctly. For Master of Orion II there’s a trick you have to pull with dxdiag.exe to be able to see the cursor. Kinda annoying, but whatever. With System Shock 2 a quick Google search will turn up a file which will get the thing running in XP somehow (on a side note, I’d love to know how these patches exist without source code). Reasonably simple. And for the majority of older EGA/CGA/VGA DOS games, there’s DOSBox, which is actually more impressive than it sounds.

But if your game used protected mode access to the operating system and XP and DOSBox can’t handle it and the developer never released the source code and/or it wasn’t popular enough a game to denote a fanatical following through the transition to XP, then you’re just out of luck. Granted, we’re talking considerably fewer than 1% of the games ever made here but it does make me wonder – how many games just get lost?

At QuakeCon 2005 the big game being hyped was Quake 4 (which, like DOOM 3, has apparently traded roman numerals for arabic ones). Quake 4 does something unique in the Quake series – it’s actually a sequel to a previous game, in so far as story is concerned. Specifically, it’s a sequel to the plot line contained in Quake II, wherein the plot centers around the Strogg race and invading their home planet. Part of the promotion was a Quake II tournament.

One of the luxuries of having a giant hard drive is the ability to basically take every game you’ve ever owned and keep them installed at the same time. Consequently, I came to QuakeCon with all three Quake games installed, patched, and complete with mission packs. When I fired up Quake III: Arena there were hundreds of games going, ready to play. Same with Unreal Tournament 2004 and various other games I wanted to play.

For fun, I fired up Quake II. Not so many games available there and many of the ones that were required things I didn’t have on my hard drive. Plus the integrated server browser is weak. It’s funny, back when games started shipping with server browsers I thought it was pointless since I used GameSpy or All-Seeing Eye. Not so at a LAN party where Internet server browsers are not really useful – I don’t know how we got by before server browsers were standard. Still, I did find a game to play.

I found myself amazed at how primitive Quake II seemed next to Quake III: Arena. Not bad, mind you, but just so many things about the experience have changed over the years. Like footsteps that match the action of the character on the ground. Or models that match what the player is doing. Plus Quake II went a little nutsy with the colored lighting. Still, like I said not a bad game and still a lot of fun.

Then I fired up the original Quake. Or tried to, anyway. Quake is not only a victim of the 9x to XP changeover, it’s also a victim of the DOS to 9x changeover. It’s still initially a DOS game. I wasn’t about to fire up “quake.exe” and see if it would take XP down with it. And even if I did, it’s a software renderer. I could fire up WinQuake, the Windows-based software renderer. Then there was QuakeWorld, the multiplayer Windows client that introduced client prediction for faster Internet play. I assume it wouldn’t apply here. And then there’s the OpenGL variants of the above two. And this is assuming I have current proper builds of any of them.

I decided to fire up “glquake.exe” – the OpenGL Windows Quake client. Well that didn’t work, something about a color mode. A slow-assed Google search (Internet access at QuakeCon this year not so swift) indicated it wasn’t liking the 3dfx-based “opengl32.dll” that it came with. I renamed that file and then the thing ran. In 640×480 mode. To run it in a higher resolution you have to specify command-line arguments. Whatever, let’s look for a game. When I go to find an “IPX” game…. it doesn’t find one. Bummer.

I think I’m on to something here – part of the reason gaming’s become so popular is because it’s so much easier now. I mean, now you fire up Quake III: Arena and find a server. Or any other modern game. They figure everything out for you. Half-Life 2 even figures out when you’ve done a hardware update and upgrades your graphic performance. And by that logic we know now why the best-selling PC games sell a million copies or two but a game like Grand Theft Auto: San Andreas sells 9 million copies, 2 million in the first weekend alone – anyone in the entire world can take the disc, pop it into their $150 PS2 that never needs an upgrade (Final Fantasy XI nonwithstanding) and start playing. And it also makes sense why multiplayer games involving people sitting in the same room on a console do much better than having to play over the Internet – it’s just easier. The fact that Halo deathmatch sold scrillions of copies of that game while a scant 8% of Xbox owners ever bothered with Xbox Live says it’s easier to actually hunt down physical people and have them over to play then futz with a server browser with a game controller. Plus you’re less likely to have a 13-year-old scream obscenities at you that he just learned off of a Chris Rock routine.

When Valve made Half-Life, they wound up making a number of decisions in the design process which made the Half-Life platform very attractive to mod makers. This, coupled with the millions of copies the game sold, made it one of the most popular games of all time. The most popular mod in history, Counter-Strike, has at any one point in time, 60,000 players. That’s more people than reside in my hometown of Texarkana. The mod was so successful they bought the developers and made them Valve employees, and released commercial versions of the game for the PC and Xbox. Valve realized that if Half-Life 2 ever had a chance of succeeding, they needed to make sure the mods could come along as well, so they made a number of design decisions to ensure that mods could be ported over to the Source engine relatively easy and then upgraded later. The ultimate test for this was the ports of the Counter-Strike mod as Counter-Strike: Source and a port of the original Half-Life game as Half-Life: Source.

So Valve essentially made their new game engine “reverse compatible” with their old game. While this isn’t completely unprecedented, it is unusual. The traditional logic from AAA developers has always been “start over from scratch”. When id Software did the original Wolfenstein 3-D they did it with a real-mode 16-bit renderer. DOOM, their next title, was done with a protected-mode 32-bit renderer. Quake did the same, but it had a “true” 3-D engine – you could have rooms on top of other rooms, for one thing. These games were done in the time when everything in computing was changing – not the least of which is who owned computers and what they did with them.

But when Epic Games released Unreal Tournament, someone discovered that with a little tweaking, it could run levels from Unreal – the game which proceeded it a few years earlier. And Unreal Tournament 2004 is reverse compatible with mods and maps created for Unreal Tournament 2003. Epic has always had an attitude of not rewriting from scratch.

Now, I don’t think developers neccessarily set out to make their games not reverse-compatible per se – for example, id didn’t start over when they modified the Quake engine into the Quake II engine – mostly they just make changes to the engine which break the ability to run levels and mods from the old game, or they do rewrite from scratch. When they release the source code to older games, the fans do the work to make the game reverse compatible – for example, the ports of DOOM to modern versions of Windows, and the ports of the Z-Machine architecture, allowing games like Zork to run on everything from mainframes to the Game Boy.

But now Ritual is hinting at the idea of porting their 1998 Quake engine title SiN to the Source engine, perhaps as a preorder bonus for people who get the first episode of the Source-only sequel SiN: Episodes. This is a step in the right direction, I think. Sure, it will be a long time before the engines behind SiN and Half-Life become so antiquated that they won’t run anymore, but now it will be even longer before they become impossible to run. For example, if for some reason the GeForce 9900 board decides to do something to completely break all OpenGL titles written before 1999, the Source engine’s updates will take care of the old games.

id’s practice of releasing the source is cool, but what would be really cool is if someone were to take the source to Quake III and make it be able to run the levels and mods for Quake and Quake II. Of course part of the problem there is access to assets. For example, Valve can port Half-Life to the Source engine in part because they have access to and own all the original map files and source code for the original game. They can author a converter to take the levels of the old game, create compilable maps for the new engine, hit compile, and they’re there. Similar affair for the source code – especially since they could just apply wrappers and modern processing power will take up the slack.

Of course, I’m not saying that when a game designer writes a new game they have to drag every game they’ve ever done along with them. But I do like it when they take extra effort to make their games “forward compatible” with the standards and engines of the day. What keeps coming to my mind is the fact that I have old movies to watch on DVD. DVD didn’t hit the market until 1997 but I have movies dating back to the 1930’s (Wizard of Oz, Gone with the Wind, some Disney titles) that I can watch on the format. What happened here is that the movie studios realized there was money to be made by making their old movies compatible with the newer hardware. More to the point, they realized that they could sell them again. And when the DVD successor comes around, I’m sure they’ll try to sell them again.

Of course “porting” old movies is easier than porting games. It’s not like our eyes and ears have changed. So long as the negatives still exist they can hire a firm to restore them and another to transfer them to DVD. They don’t have to worry about the operating system to a computer not allowing access. I guess a good analogy would be a DVD player which refused to play discs that featured black and white movies or that didn’t have at least 5.1 sound.

And yet there are companies out there like MacPlay and Aspyr whose entire goal in life is apparently to take existing titles and port them to the Macintosh. Perhaps a firm could exist to make older games work on modern engines.

Granted, whereas people will pay $30 for a 4-disc restoration of Gone with the Wind they’re probably not going to want to pay much for Quake in 2005. If you can still find the original disc in a store it likey sells for $5-$10. This is when the iTunes Music Store model would need to kick in – heck, it sort of already does in the form of Steam. Perhaps porting old games to new engines and then charging a reduced price for them (even cheaper, perhaps, if you can produce the original media) for download could prove lucrative for someone.

But then again, which games get the treatment? Today there’s a push to get pretty much every movie ever made on DVD, even bad ones. I have a DVD of Plan 9 from Outer Space, more or less as a textbook on bad movies. Will enough people want to play Daikatana ten years from now to make it worthwhile for someone? Watching a bad movie is two hours or so of entertainment, even if it’s just to make fun of how bad it is. Playing a bad game is an exercise in pain, especially if it has bugs and it never really worked well to begin with,

Plus there’s something to the experience of an old game. If you ported Quake to the Quake III engine would it look better? Would you go out of your way to make the game look the same? Little things like how it handles input and resource management in Windows are the main things I’m interested in improving, but what kinds of decisions would you make in the way of aesthetics? I mean, the game can very easily look prettier in the Quake III engine, but do you leave it the same to “preserve” the old game? What about that handling – how many things were the way they were in Quake or Quake II because of the way the engine handled? If you leave the game unchanged then what was the point of putting it in the new engine again? And if you change the game do you wind up with a Star Wars situation on your hands where a certian group of people want the enhancements that come with a new format or medium (in this case, the engine) but then want nothing else changed? And when a paradigm changes (like going from sprites to polygons) then what do you do?

I don’t know, but I do tend to think the way this can be avoided in the future for current titles is the emerging trend of not throwing everything away and starting over. Engine resuse is nothing new (DOOM and DOOM II, for example) but I think more retroactive thinking is a good trend. Make your engine with the intent of bringing the previous games over. If you keep doing this then it should be a minimum amount of effort to bring the old games along (and vicariously the games before that if you keep it up). And perhaps the grunt work of translating it can be out-tasked to another company who will keep a portion of the sales of the old game on the new engine via digital distribution.

Just a thought.