Preface - Why Terminal DOOM?

On the "surface", Terminal DOOM is simply a DOOM3 port - of sorts - of the original Linux DOOM source snapshot I had first worked with in 1997. There are only minor changes to DOOM and DOOM3 - in a nutshell, all this mod does it allowing us to play classic DOOM on yet another platform, adding to an already impressive list.

Why bother porting the code of a game more over 10 years old? I choose classic DOOM for convenience and a bit of nostalgia. It is also educational to contrast two game implementations released a decade apart. However, embedding a classic game inside a more recent successor is hardly original: Yu Suzuki's "Shenmue" did it, for one, and there are surely others, and before it was feasible to embed actual games, we probably just faked it - all texture, no interactivity. For similar reasons, DOOM3 features its own arcade game - Super Turbo Turkey Puncher - Three! - and even uses textures and images from the original DOOM.

At the end of the day, this kind of self-reference makes for little more than a footnote on how much game technology has changed - or maybe also as an illustration of the invariants of game design. In reality, Terminal DOOM adds very little to the irony of Super Turbo Turkey Puncher Three.

Figure 1. Terminal DOOM

Terminal DOOM

Why, then, Terminal DOOM? I did this project as a proof-of-concept for fully interactive surfaces, the true potential of which is only hinted at by the DOOM3 GUI. It is not uncommon to change from one frame of reference to another while playing a game, but it is uniquely powerful to do it with all the seamlessness of stepping through the looking glass.

Ironically, Terminal DOOM is actually a bad choice to demonstrate the application of "Fully Interactive Surfaces". In the single most important aspect of interactive surfaces, Terminal DOOM shares the same critical shortcoming as Super Turbo Turkey Puncher Three. Embarrassingly enough, it is quite obvious...

Figure 2. Super Turbo Turkey Puncher - Three!

Super Turbo Turkey Puncher - Three!