
How many times did you want to have a closer look at the beautiful
animation sequence for the archvile, only to find that the bastard
was rather more interested in terminating you immediately with
his deadly flaming spell than
in running the catwalk?
The good guys at id spent so
much of their time painting faithful renditions of the DOOM monsters,
each from eight different angles, that it's a real shame to only be
able to see the front view!
So the DOOM Zoo was born. I captured most of the wild beasts and caged them
in neat Netscape frames. You can approach them without fear of being
attacked and, thanks to a little bit of Java magic, you can have a look
at each monster from every angle.
See the back of that firing cyberdemon at last!
Monster and sequence index
Tech stuff
For each monster, or rather for each sequence, the corresponding applet
must load eight frames. Loading the frames in itself is no big deal, since
they're tiny. The real killer is repeating the dreaded "host contacted, waiting
for reply" handshake for every one of them. That's where all of the time goes.
If you've got a fast link to here and a good dose of optimism, you may try
viewing the "summary" pages for the monsters, each of which list all the available
sequences for that monster. If on the other hand you want to play it safe, you
may instead just look at one animation sequence at the time.
I might improve this matter if I repackage each set of 8 frames into one
single file and then ask the applet to load just that and unpick it internally.
But I haven't done that yet, so for the moment
you'll have to live with what we've got.
More tech stuff, i.e. how it was done
Where do these pictures come from? From the wad file, of course. Each monster
is identified by a 4-char sprite name, like BOSS for the Baron of Hell. (It's
interesting to note that some of the sprite names are WRONG! For example
the demon is called SARG. Check the WAD file yourself with your favourite
editor if you can't believe this...) Each
sequence of 8 views, representing one position of the monster (walking, firing
etc) is identified
by a single character appended to the sprite name, like BOSSA, BOSSB and so on.
Each frame in the sequence (representing the e.g. firing monster as seen
from N, NE, E, SE etc) is identified by a digit from 1 to 8 appended
to the sequence name, like BOSSA1, BOSSA2 and so on. Some frames are obtained
by flipping other frames; in that case a single file holds two frames and
has a combined name like SARGA2A8. (NB: for simplicity,
sequences requiring flipping for some
of their frames have not been captured into the DOOM Zoo as yet; neither
have sequences with funny names like "\" or "[" instead of the more common
"A" and "B".)
The Rotator applet is rather simple; in fact it was my first Java program,
written at the beginning of September 1995, while Java was still in alpha and Netscape didn't
run applets. You could only view it with hotjava.
Then the beta came out, and the JDK, and my applet stopped working because
of the changes in Java's image handling interface.
So it sat there for several months because I
couldn't be bothered to convert it. I eventually fixed it, but this wasn't
terribly useful because I had only (manually) extracted one single sequence
from the WAD, namely a running demon. At last I sat down and wrote some Python scripts that
extracted all the sprites (well, the easy ones at least) from the WAD
and generated the appropriate web pages to view them (which included
looking at the size of the individual gifs to make the cages the right size).
So there!
Acknowledgements
Thanks to id, of course, for making DOOM in the first place. Then
to the makers of the free tools I used to put the Zoo together:
dmgraph, giftrans, python. And thanks to the Java bunch, too, for a
great programming language.
Page meta-written by a Python script.
mkpages v. 1.9 of 1996/05/29
by Frank Stajano