Matt Jernigan's profile

Wolfenstein Deathmatch Trilogy for Atari Lynx

Wolfenstein Deathmatch Trilogy
Concept for game, and tech research for porting to Atari Lynx

Even though the Atari Lynx was already a long dead system by the time I wrote the following concept (in April of 1999), I couldn't help but wonder what kind of multiplayer game could have brought success to the system.  As primarily a social gamer, I felt that the multiplayer "ComLynx" capability of the system was always undersold.  Therefore, I set myself to imagining the ultimate multiplayer draw to the system and came up with Wolfenstein Deathmatch Trilogy.  This hybrid approach would draw players in for a slightly new version of Wolfenstein 3D (called Wolfenstein Escape) that has also been expanded for multiplayer gaming.  Thus, drawing in players with something familiar while also trying to hook them on something new.  Then, if that worked, continue the trilogy with Wolfenstein Reprisal (essentially the same as Wolfenstein Escape with the roles reversed and new maps) and, finally (after buying time for more tech development), finish it with Wolfenstein Deathmatch which features cutthroat style game play (read the pitch below).

Even though this was all just wild thought (official Lynx development boxes were far outside of my budget at the time -- I checked) I am still intensely curious as to whether or not I can adapt W3D to the Lynx.  If nothing else, I would love to do it someday as a hobby (even if just with Lynx emulators).  But, alas, life priorities and whatnot.  I will always give my time to my family before such things.  Besides, I have a hundred other non-geeky things to do before this (because I get enough of geeky things at work and need to unplug).

Yet, with the release of Zaku for the Lynx in 2009, there may still be hope in classic gaming for the Lynx.

I also recently got the bug to take 4-player gaming to a new level on the Atari 2600 (remember Warlords?) so I developed a game in my head I call Bumper Ducks and then read many of the 2600 programming documents to make sure my ideas were feasible.  I knew I didn't really have time to start a project like this, but it is still fun to imagine writing assembler while trying to fit game code into a television's vertical blank time and between the scanlines and such.  If nothing else, writing a game for the 2600 always gets noticed and then perhaps generates enough interest to then bring the game up through the modern systems.

Anyhow, on to Wolfenstein Deathmatch Trilogy...
November 1998.  Simulated screenshot showing what Wolfenstein Escape might look like on the Atari Lynx in the Lynx's resolution (160 x 102) and color palette (16 colors).  The blue hair indicates this is the American character, Willy C., and not the original Russian, B.J. Blazkowicz, who has orange hair.  Additional color depth could be obtained for the avatar and status bar by switching color palettes between scanlines.
Actually, due the quality of the backlit LCD screen found in the Lynx, this is a much better simulation of what the game might look like on the Lynx.  (I made this filter myself, by the way.)
Wolfenstein Deathmatch Trilogy
(the pitch)
April 1999.  Updated in 2012 with grammar corrections and some notes as indicated.

Episode 1: Wolfenstein Escape
(An adaption of the original Wolfenstein 3D.)

Allied players:
Axis players:

Each character should have his own status bar with the background color matching his country’s infantryman uniform color, and the text (“health”, “floor”, and “ammo”) in his own native language in a black or white stencil font.

When in multiplayer mode, the Axis player(s) replace (or partly replace) the level bosses and have free reign (all keys already awarded) of the level to hunt the Allies down.  Be careful: any player might look like any other computer-controlled enemy.  Especially, the new AI ones.  Also, don’t shoot your teammate!

Sam Tramiel, the president of Atari during the Jag version development, had requested that the flame thrower have the ability to burn the Hitler pictures (see the images included below for the fax memo to id Software regarding the Jaguar version).  I am therefore considering changing the Hitler picture graphic—upon being hit by a flame—not to a graphic of a burnt picture frame but, rather, to a graphic of a picture of a crispy Hitler (weird, huh?).  That is, a picture of Hitler’s toasted skeleton in Hitler’s toasted uniform (the frame may also look somewhat toasted to add to the weirdness of the juxtaposition).  Then again, being a request from the man who saved Atari from a broken leg only to shoot it in the head, maybe the picture should change to that of… no, never mind… that would simply be going way too far.

Episode 2: Wolfenstein Reprisal
The roles are now reversed.  You are a German or Japanese POW confined inWolfenstein which is now under the control of the Allies.  The allies have bricked up some passageways and made others, but it is still the same castle.

Episode 3: Wolfenstein Deathmatch
(Perhaps release this one first.  Nah.)

Features randomly generated levels with as many players as possible (goal is eight players or more).  If you think the levels in this game are too small or uninteresting, just try winning on the Allied side against six Axis players.  For that is the goal: to be the two that can topple six.  This is not meant to be a single-player episode.

You, B.J. Blazkowicz, have been captured by the Germans (again! annoyingly embarrassing) in the last episode.  They just can’t seem to kill you and this tough stubbornness intrigues them. The German scientists and doctors have created hyper-maturing clones of you in attempt to create their own force of supermen but failed to realize that your hot-bloodedness runs more than in just your veins—it’sin your genes (or maybe it’s just the orange hair).  The Germans, having failed to control any of the clones, have locked them up in the same cellblock as you, the original (it will be the German’s last mistake!).  Having fashioned a knife with your teeth out of a bedpost, you break free from your cell.  Strangely enough, your clones have simultaneously done exactly the same thing (weird).  Each one of you, however, is convinced that he, himself, is the original, and believes that you other clones are evil German creatures not nearly as capable as yourself and should be merely “expired” as soon as possible before you betray yourself.  You set out immediately to deal with this “minor” situation by breaking into a German weapons locker and chasing the clones out into the German-controlled Black Forest Training Grounds just outside.  The Germans are amused by this development and watch the event from atop the wall and even contribute by throwing small weapons and gear into the training grounds (“silly Germans” you think, “I will visit with them later”).  As the sole survivor of “The Great B.J. Clone Tournament” you have proven you are the real, red-blooded Blazkowicz.  But what’s this?…

Meanwhile, your Allied buddy, Willy C., has also survived the last episode (gotta admire his toughness, well… “pretty-toughness”) and the Germans have cloned him as well.  (Secretly, you are sure he was just used as a “guinea pig” to perfect the process before for cloning the great B.J.)  [Story note: the players who were proven to be a B.J. clone by getting themselves killed in the last round each have a second chance to prove himself as a real full-blooded Allied warrior,Willy C., in this next round.]


… back to the story … after killing the last B.J. clone, you kill a German guard who has just entered the training ground and steal his key to escape into the neighboring training ground.  Déjà vu!  Much to your chagrin, you discover William Cook and his clones just now escaping into that training ground (you smell a setup).  You notice that the Germans made one less clone of Willy C. than they did of yours truly (“obviously because he was an inferior prototype” you think).  Anyhow, you set out to assist Willy C. in “The ‘Pretty-good’ Willy C. Clone Tournament.” While Willy C. may be “pretty-good”enough to dodge a bullet from the “great” B.J. (or two bullets if he is also “pretty-lucky”), he is certainly “not great enough” to survive the onslaught of his evil, made-in-Germany clones, and he needs your help.  You have no fear of being shot because you know you can dodge “pretty-good-Willy-C-clone” bullets, and the real “pretty-good” Willy C. would never shoot you (although he may graze you just for the hell of pissing off a Russian—you just can’t trust Americans too much).  Besides, the chance to kill an American clone is almost as good as the real thing.  When there is only one “pretty-good” Willy C. survivor, then you know, without even a slight doubt, that the “great” B.J. and the real “pretty-good” Willy C. have eliminated all the “pretty-good” Willy C. impostors.

The two of you “real” Allies then escape on to other missions such as killing those other wussy Axis players off in the nearby German warehouse.  Somehow those Axis player keep resurrecting themselves and you eventually end up killing them off as evil samurai in Japan.  And, finally, as Aspects of the Japanese god himself [one of which looks suspiciously like Hitler-Incarnate].

The game ends when one or both of the Allied players either succeed in killing all Axis players in all missions, or are both killed by the Axis players.  Axis player resurrect between missions, Allied players do not.  When one Allied player is killed, he becomes “The Invisible Recon Man” traversing about the terrain to inform his survivor of enemy locations and whatnot, but without any other interaction abilities (except maybe tripping players on either side).

Single-player gaming may not be very interesting as you must progress as one of the Allied characters against eight or so AI opponents (including one clone round).  Two- and three-player gaming will be a little more interesting with one clone round and the other one or two players turning to the Axis side with no AI assistance.  Four and more players will proceed as described above with two Allied players and no AI’s.

The theme music from the 1970’s movie Zeppelin (about the German attack on the Magna Carta during WWI) would be great for these titles (or other titles I have in my head).

[[2012 notes: I had forgotten that this game design of all players turning against the first had started here with Wolfenstein Deathmatch.  I used this later in my (still-in-development) board game, bushijima.  Surely, this idea was at least partly stolen from Cutthroat Canasta.  I had also forgotten the double-elimination feature (essentially) that is employed with four or more players.]]
(technology notes)
April 1999.  Updated in 2012 with grammar corrections and some notes as indicated.

To ensure that WDT runs fast enough on the Lynx’s cooperative pair of 16-bit processors at 16Mhz, W3D’s ray casting refresh architecture will have to be replaced by the latest technology such as DOOM’s BSP-tree (binary space partitioning) texture mapper.  The primary performance advantage we have on the Lynx is that the sprite processor, Suzy, is also the math coprocessor including hardware multiply and divide, leaving the other processor, Mikey, to simultaneously handle nearly all other processing.  Also, Suzy cannot work in both modes (sprite and math) simultaneously; this concludes that because a BSP-tree engine requires heavy math and no sprites, we have no wasted processor power and we don’t need to concern ourselves with inventing techniques to recover the sprite power.

On the other hand, it still may be worthwhile to invent a technique to take advantage of the sprite processor's capabilities.  One such idea I just came up with (Matt Jernigan, 24JUL2000) would be (because Suzy can handle an unlimited number of sprites at any size) to declare ALL the objects (including walls) as sprites and let Suzy scale, distort, clip and render them in hardware.  This could very likely be faster than the fastest BSP-tree engine we can develop...or not...only trial and error will tell.  One thing is almost certain, WDT levels contain so many rooms and walls that it would almost certainly bog down Suzy to have to clip them all herself; thus, you may be able to combine the two powers by perhaps using the BSP-tree to first determine which objects are visible (with Suzy in math mode) and then using Suzy to render just the visible sprites (with Suzy in sprite mode).  Rendering just the visible sprites may be done by either a sprite-skip command or unloading non-visible sprites (depending on speed and memory resources).

After reviewing Suzy’s capabilities of horizontally stretching and tilting sprites, I’ve realized that the previously idea may only work with the Lynx held in portrait orientation (like Gauntlet, as opposed to its normal landscape orientation).  This will not likely be desirable because it will result in a tall but square viewport--not allowing for much (usually-more-desirable) peripheral vision.  This limitation has to do with the rendering of sprites to a simulated vanishing point.  Because you can only change a sprite’s stretch and tilt between scan lines, a horizontal modifier, you can only create vanishing points along a vertical axis.  (The documentation has not explicitly stated what type of polygons can be created, it’s just all that I can figure out at this time.)  With a square sprite [_], for example, you can do /_\, \_\, >_>, or <_> but not this <] or [>.  Well, I just realized that it may be possible to achieve the <] shape but the texture would be wildly distorted and there probably is no way to compensate for it--a vertical line in a square sprite [|] would probably look more like <(].

[[ 2012 note: the perspective wall shapes could also be made by pre-rendering them at various, pre-set angles (perhaps only 6 angles for low-res like Lynx) and then using Suzy to size and flip the closest match to the exact width.  Regardless, the sprite engine may not help performance much because the BSP tree and ray casting will still be needed to determine what to draw where.  The sprite engine could only help in rendering, perhaps, which may not be the majority of the work. ]]

Albeit, in WDT the perspective limitation only applies to walls, doors, and other bulkheads, and the sprite engine should probably still be used to render everything else (ie: enemies, artillery, and artifacts).  Collision detection may also be a hybrid technique, possibly even creating invisible wall sprites to take full advantage of the hardware or writing wall collisions to the hardware buffer manually.  On one hand, I don’t yet know how the Lynx hardware handles sprite depth collisions in 3D games such as the bullets in Warbirds (depth probably has to be double-checked by the software when a collision occurs); and, on the other hand, I don’t know how collisions are detected in W3D either (it may not be a pixel thing at all making the Lynx’s hardware useless).

It would also be very cool to add Doom-style lighting (probably even more important than texturing the floors and ceiling...as long as the lighting can also shade the untextured floors and ceiling).  If it happens that we cannot use Suzy’s sprite collision hardware and buffer (SCB) for 3D collisions, perhaps we can use these features for lighting collisions and buffer.  Good luck figuring out how to adapt Doom’s lighting buffer to the SCB (not to mention Doom’s light collision algorithms to Suzy’s hardware).  Probably not possible, but still stuff to keeep in mind.

Experimental PVS support
-------------------------------
Doom3D v1.16 (for Win32 and DirectX) contains some experimental code for performing PVS calculations.  This generates information on which parts of the level are visible from different locations, allowing the renderer to skip drawing those which are not visible, resulting in an overall increase in game speed.  As the code is still not fully tested, and generation of this information can take some time every time a level is loaded (a few seconds on a p3-550!) it is disabled by default.  To enable PVS generation add -genpvs to the command line.  Please don't send me bug reports on this as originaly it wasn't going to be in this release at all.
Note the last line of item 5 above.  "Sam Tramiel has requested that you can toast the pictures of Hitler with the flamethrower :-)"  I address this in my pitch.
Wolfenstein Deathmatch Trilogy for Atari Lynx
Published:

Wolfenstein Deathmatch Trilogy for Atari Lynx

Concept and pitch for Wolfenstein Deathmatch Trilogy. Technology research on feasibility of porting Wolfenstein 3D to the Atari Lynx.

Published:

Creative Fields