Tuesday, September 24, 2013

Secret Platforms of DOOM

I'm back in blogosphere. It's been crazy 2 years - a new job, a new car, move to a new apartment. But the most fascinating news is a newborn baby boy. He is 9 month now and we are trying to eat, to crawl and to bash in UNIX.

But even in these turbulent times there are a lot of thoughts I just need to extract from my brain and put them on paper somewhere. And today I want to talk about platforms.

In computerised society you often hear about platforms. It is an environment you can build your software upon. Intel x86 is a platform, Java is a platform, MS Windows is a platform. But Spring or Ruby on Rails, for example, are just frameworks - they don't provide the ecosystem closed enough to be called a platform.

Recently I've been looking for convenient ways to prototype. And I discovered the hidden world of platforms. It is not, that I found some new products, rather looked at the old ones from a new perspective. I started to evaluate everything as a platform.

Sometimes, it turns out to be surprisingly unexpected. After all, there are a lot of software products you can use as a platform.

DOOM from id Software is one of them.

doom load screen
Just think about it. DOOM keeps the content in a single WAD file. By modifying it you can change the game significantly - add new sounds, weapons, monsters, levels. It provides enclosed ecosystem build on top of that. There are a lot of tools to modify the content. And you can create a DOOM mod comparatively easy.

Maybe the possibilities are strictly limited by the capacity and restrictions of the engine. But it doesn't matter. What matters is that it gives you an enclosed little universe to play with. Now you are a little god capable to shape that universe. And these so called restrictions are actually vectors for creativity. Just look at some of the total conversions.

So DOOM is a platform and not a small one. Shipped in 1993, at the end of 1995 it was installed on more PCs, than the newest platform from Microsoft - Windows 95. That is given a billion $$$ marketing campaign to support Windows 95 release. At the same time all the marketing campaign for DOOM was a shareware version uploaded to ftp (in today's social media terms I think it would be called viral).

To the date, it is more than 16000 WADs available for download - beating the number of titles for the most of gaming consoles and some operating systems (387 titles for Nintendo 64, 312 titles for 3DO). You can say, that WADs are the hobby mods and you probably can't compare these to commercial titles. But that exactly what makes DOOM a viable platform for prototyping.

eureka doom level editor
I need tools to prototype and I find that kind of small platforms are ideal for prototyping. That is why best game engines attract massive modding communities and have produced high-quality titles - look at Dystopia. You don't need a lot of time to start and you can use already created content as a starting point - and that is crucial for prototyping.

As an app developer you need to think about your product in terms of a platform. Wolfenstein 3D wasn't a platform despite the fact, that potential was there. But there was no WAD and content modification was too hard.

With DOOM, John Carmack realized the true value of modding community and created the game as a platform. There was a lot of concern about that approach. Legal and financial ones. Business-minded people reasonably argued, that freely available content from modding community will reduce the sales of the commercial episodes and the upcoming DOOM II. But Carmack was a hacker-minded person first, so he stick to the original idea of modifiable content and even released the source of DOOM level editor (written in Objective-C for NeXT workstation). In retrospective, it was a smart move. It created a strong fun base and in fact prolonged the lifespan of the game.

doom wad editor

I think, the WAD concept was crucial for the born of the legend. You can still get the open sourced version of DOOM with one of freely available WADs, download some level editing tools and start prototyping. It is really a great platform for that.

DOOM long and prosper.