Your GPU thanks you for playing this game back in the day.

In case Quake creator John Carmack wasn’t already your hero, here’s a nice move: when EA wouldn’t green-light an iPhone version of the classic first-person shooter Wolfenstein 3D, Carnack had an answer: fine, just let me do it myself.

In an astonishingly open (though typically Carmackian) post on the subject, one of the world’s great game programmers weighs in on some important issues:

  • How open source game code made the project more feasible – and allows an entire community to get in on the action
  • How the innards of the iPhone compare as a mobile platform (the DS compares more favorably than you might think, but at the end of the day, it’s more about developers properly taking advantage of the device)
  • How the architecture of the game had to be modified to work properly

If you have a passing interest in games or mobile, but especially if you’re getting into OpenGL programming, the article is a must-read. And, in fact, I think it illustrates that focusing on simpler game engines can be a great way to learn about development – the concepts are basic enough that even someone starting out with 3D could pick something up here.

Wolfenstein 3D: iPhone Development

There’s some real history here: Carmack gave us Wolfeinstein 3D, Wolfenstein gave us the first-person shooter, the first-person shooter drove the demand for real-time 3D on game cards, and now we’re using the whole thing to make live visuals as well as games. (And quite a few visualists I know go and hunt zombies in their spare time, thus keeping us sane to write more code / make more visuals…)

It’s especially interesting to me to listen as Carmack works out optimizing the game engine. Even though Wolf3D ran originally on the 286 (I ran it on a 386DX-33, but I was one lucky kid), that does require some thought.

Slick as today’s game engines are, too, the fundamentals are pretty darned close.

And talk about the power of imagery: the iconic health items turned out to be a matter of controversy:

I also had to make one last minute hack change to the original media — the Red Cross organization had asserted their trademark rights over red crosses (sigh) some time after we released the original Wolfenstein 3D game, and all new game releases must not use red crosses on white backgrounds as health symbols.  One single, solitary sprite graphic got modified for this release.

I was a huge fan of the Id games – and rival Epic Megagames – as a DOS-enthusiast youngster. Before the days of draconian DRM and $60 console titles, the business model was appealing, too: you played a few free levels, got hooked, and wound up shelling out (a small amount of) money for the full game. Sound familiar? On the iPhone and other mobile devices, everything old is new again. The difference then was that free levels got passed around on BBSes.

Carmack today even encourages people to make (and even sell) derivative games. And the new game is released under GPL. While even eternal optimist Carmack is skeptical about how that may work, I’m cautiously hopeful. I’d love to see GPL-licensed titles on iPhone, Android, and the like that users purchase partly in good faith – and the idea Carmack suggests, of a community-driven effort with custom alternate games linked to one another – sounds fantastic.

The engineering aspects he’s talking also have implications well beyond the iPhone – and I love the sound of TinyGL.

Needless to say, substitute “live visualist apps” for “games” here, and all the same is true. And I think artists could do wonderful things with a simple engine like Wolf3D. If nothing else, it’s a good place to start learning before jumping into flashier, newer things with physics and sparkly textures and whatnot.

Now, if you’ll excuse me, I have to find out if I can play Wolf 3D with my thumbs and capacitive touch, or if I just wind up going back to QWERTY.

Wolfenstein 3D Redux [The exceptional open source project you can play even on your Mac or Solaris box]