The Answer is Allmap

I've been working on a ZDaemon translation of one of my previously released maps. This is actually my third take on Yavin's Clone. In the original release, there was a texture alignment error. Nobody complained about it so I'm probably the only one who noticed. But my previous two maps each had bug correction version 2s and I just didn't feel like going that route again. I waited until I had another map to be released and issued the corrected Yavin's Clone as a MAP02 in that wad file, also doing a little bit more tweaking than just the one misaligned texture.

Anyhow, in the course of remaking it again into what will become the third release of this map, I began having brainstorms about all the ways the map could be improved, both from a DM perspective as well as my preferred mode of play lately; deathmatch WITH monsters! And I thought to myself, why limit myself to just a ZDaemon port? I mean, doing so still yields a map playable in Zandronum and other ZDoom variants but the map loses quite a bit handicapping it for ZDaemon's reduced capabilities.

When I began going down this path, I couldn't remember if ZDaemon supported any DECORATE code at all; just knew it didn't support the things I really cared about. If it had some DECORATE support, re: incomplete, I was prepared to release an accompanying wad file which contained only the DECORATE lump. That way, when hosting a server in ZDaemon, I would

  zdaemon -file myNewmap.wad

But if I was hosting a server in Zandronum, the commands would expand to

  zandronum -file myNewmap.wad -file myDecorate.wad

That scenario would be an acceptable compromise. It turns out, however, that ZDaemon has absolutely no support for DECORATE whatsoever and that fact is really a better scenario since I can include the lump in the same wad file with the map and ZDaemon will simply ignore it but Zandronum will read the lump and prepare the level accordingly.

I was having a complete and total brainstorm with this one. I mean Category 5 mental hurricane! One of the things I decided I wanted to do was to include my Carcinobus monster as it worked in my original and updated Zandronum wad files but maintain the backup version which is just a stock Doom Mancubus with some (not all) of my custom sprites from the Zandronum wad file. Furthermore, in my late work with my Mo'Tanky Enemeesh wad file, I'd added an ammo drop to the death sequence of the flamy bits of the Carcinobus' explosive demise. I felt this works great in deathmatch with monsters mode but didn't feel the need for that abundance of ammo magically appearing in single-player. I was able to achieve this variety by having one custom Carcinobus loaded in the DECORATE code for Zandronum and then having the other version replace the stock Doom Mancubus. ZDaemon would retain the stock Mancubus.

I use some pedestals in this map to hold the silly fat monster. These pedestals have enough room for the monster to move but not enough room for much else. In fact, for the player to occupy the same location, he/she needs to time out their jump to when the monster is at its furthest distance from the direction the player approaches from. In my second version of this map, one of my tweaks I mentioned was a teleporting resupply of the Carcinobus on the pedestal. The way this works is the teleporter target is in the same location, therefore the resupply monster cannot beam in until the previous pedestal occupying monster has been vanquished by the player (or another monster). It's a crude hack but it works.

Well, I was just having a terrible time wrapping my head around the possibilities. It seemed to me if I replaced the stock mancubus with the energy cell yielding variety, I then messed up the simply fruitless exploding version. Or if I corrected that, then I somehow messed up the count for the ZDaemon implementation. At one point, I'd used some Tall Green Pillar from Doom's collection of obstacles to block the unneeded monster from accessing the teleporter. In deathmatch mode, there's no count for monsters, so what the player never sees doesn't exist. But then when I'd switch to the single-player, I wasn't getting the results I needed, and so on, and so forth...

This got me thinking about how in the past, there were a pair of maps I made where I'd made invisible green pillars to use as a height restricted obstacle to create the illusion of a fence. See, unfortunately, Doom's linedefs have an ability to block player/actor access but it spans the globe like the theoretical globe spanning end zone line in football only vertically instead of horizontally.

A guardrail the player can jump over but blocks the walking player

My dumb hack with the invisible pillars worked out well for that little problem solving tirade I went on. But what I needed to do here, was make it so the right monsters could reach the teleporter linedefs but the wrong monsters for whichever mode I was in could not reach them. That's when I had a Eureka! moment in my mental maelstrom. What I needed in this case was not something to block the monster but a way to make the monster not block another monster. How to flatten a monster to the floor as the flattest pancake you've ever seen?!

What about DECORATE code which says

  ACTOR Invisibus : Allmap replaces Fatso
  {
  }

Because ZDaemon doesn't support DECORATE, I simply replace the Mancubus' which exists in the map with something which an Actor can travel through, or what is referred to in Doom terminology as non-blocking. Then, I assign a pair of numbers to the two different replacement monsters I'm deploying. Both sets of these custom actors would show as that goofy maroon exclamation point diamond in ZDaemon were the player to see them. But the player doesn't see them because the monsters' holding pens are inaccessible to the player and the monsters beam into the main part of the map from these hidden monster closets. ZDaemon doesn't assign any height, width or mass to these actors since that exclamation point sign is saying to us; "I don't know what this is". Zandronum knows what they are but the stock Mancubus isn't blocking the way of these monster because Zandronum read to replace the stock monster with an item which can be passed through by any actor. I have no use for a computer area map in the types of maps I create so it was the most logical choice to beat the hell out of metaphorically.


Robotron INDUSTRIES, (c)2024 Copyright Chap Software,
All Rights Reserved