Page 1 of 1

Fork in the Road - a UMAPINFO project (Upd. Jul 3: Alpha 3)

PostPosted: Wed Jun 26, 2019 9:17 pm
by Shadow Hog
Well, given UMAPINFO has picked up steam again over in the Source Ports forum on DoomWorld, guess it's time to strike while the iron's hot, and show off what I've been toying with since the lump was initially proposed:


Fork in the Road is a 10-map (+3 extra) Boom-format mapset for Doom II: Hell on Earth made to experiment with the added flexibility the new UMAPINFO lump provides. Instead of only MAP15 and MAP31 having secret exits, now almost all the maps have one! Your progression will vary greatly depending on if you gun straight for the normal exits, or start poking around to find those hidden doors and switches that give way to secret exits instead. Four different boss levels await! Which one will you see first?

Map Progression
All runs start at MAP01 as usual, but while the normal exit will take you to the second map of the first "tier", MAP02, the secret exit will instead take you to the first map of the second "tier", MAP05. With a change in tiers comes a change in scenery and tougher monster variety; boss enemies from lower tiers become regular enemies in higher ones, in an attempt to provide a smooth difficulty curve regardless of the path taken. A single playthrough will take you through four maps, with the fourth map always housing a boss encounter. Boss maps do not have secret exits, but feel free to poke around some of them anyway.

Basically, think of it like a Doom-flavored take on Outrun, and you have the right of it. (A version of Outrun that expects you to find a couple of secret rooms in order to turn right at the relevant time instead of being forced left, but still.)


As a bit of padding, three additional maps are included: one that I could've released at any time but never did, one that was intended for Mayhem 2014 but never submitted, and one that was actually created specifically for Fork in the Road and and will most likely be added to the proper map progression in the next major update. You can access these three maps with the "Extra Levels" listing on the episode selection. Map progression works differently here; while all the maps have secret exits (the two pre-existing maps having their existing exits turned into secret ones as I feared they'd be a bit too difficult to reach normally, with more-basic normal exits added instead), all three maps are in sort of a "cycle" that will never end; a normal exit will take you forward a map and a secret exit will take you backward, wrapping around between MAP11 and MAP13 as needed. Play the three maps until you've had your fill, because a text screen isn't going to stop you.

Miscellaneous Notes & Known Issues
I started work on this mapset almost two years ago, with the intent of making a full 28 maps on my own. Unfortunately, it turns out I don't work nearly fast enough for that number to be realistic; fortunately, the way the level progression is laid out, I had workable cut-off points at 10, 15, and 21 maps, so 10 seems like a good place to at least show off what I'd been doing. I still intend to chip away at further maps and hit those progressively-higher numbers (because only going through four maps before hitting any ending still seems a bit short to me!), but I'm gonna need to get feedback on what was already made at some point to tighten it all up, might as well start now. Given I started in 2017 and have 11 proper maps for the set, I can extrapolate a completion date for 17 more maps and thus look forward to completing the full mapset some time in 2023! Image

This mod was tested against PrBoom+/UMAPINFO and GZDoom. As of writing, both source ports in question have a few shortcomings with their UMAPINFO implementation worth noting:
  • PrBoom+/UMAPINFO is the preferred option, but as of writing it currently fails to display the episode selection when using Doom II as the IWAD, so "New Game" will only take you to MAP01. This will presumably become a moot point in the future, but for now, if you wish to see the three extra maps, you will need to punch in "idclev11" or launch the program with "-warp 11 -skill n" (where 1<=n<=5). I did not really pay any attention to complevel, so whatever the default for a new install of the program tends to be is what was targeted (I assume this was the highest option, but I'm bluntly not sure).
  • For GZDoom, I actually recommend a development build over the current stable release of 4.1.3, as those implement fixes to a few bugs I encountered that would impact a playthrough of Fork in the Road (specifically: 1, 2; a third has been reported but is cosmetic and thus relatively minor). This is moot if version 4.1.4 or 4.2.0 onward exist by the time you're reading this, as those bugfixes should already be rolled into those. As far as advanced features go: jumping and crouching are not disabled (I would have to roll a ZDoom-specific MAPINFO to do that and that defeats the point of UMAPINFO), but they are not intended either.
  • Eternity is apparently getting UMAPINFO support soon. I'll probably test the mod with it once that's more or less finalized.
One quick word of caution: all the traps were very carefully planned around vanilla behavior; you might encounter some traps triggering early due to changes in enemy size or MaxStepHeight (as with Brutal Doom) or being damn near impossible to escape (some exploding barrel gauntlets are timed to be narrowly escapable in vanilla, but Brutal barrels explode way faster and thus such traps are far, far more difficult as a result, if not impossible). There used to also be incompatibilities with BossAction, but I've made an ACS script to circumvent those entirely.

Lastly: I'm the only one who's touched these stages before now, and while I think I've pored over them pretty well on various difficulties, I'm sure somebody's gonna find an issue I didn't, or try to do something I didn't even think was possible. Please do let me know what needs improving, especially if you have any suggestions on how to improve them! Just bear in mind that the setup with monster difficulty progression limits some monster choices. Specifically (progression spoilers):

Click any thumbnail to see a 2560x1440 version:

These are also included in a lump in the WAD:

Revision History
Alpha 3:
  • Redid the ACS script for triggering BossAction when the monsters are modified externally, thus breaking the DeHackEd modifications that let the maps work. Before, the user was expected to manually call it themselves; now it operates automatically if it cannot locate any of the relevant vanilla actors within INT32_MAX of the map's center. Bluntly, this is how it should've been implemented to begin with, and I apologize that it wasn't. (Thanks to Bauul on DoomWorld for the suggestion to use CheckProximity to determine if an actor is vanilla or not.)
  • Edited the MIDI for MAP06, because while it looped perfectly fine in PrBoom+, it broke down horrifically in GZDoom, wherein the tracks would not reset to the correct instruments and instead hold whatever they had been set to upon loop. Turns out I missed some EMIDI controllers; nixed 'em, fixed it right up.
  • Added HELP and CREDIT graphics.
  • Changed sidedefs using SRB2FAL1 back to WFALL1, as I decided I liked that better after all. [shrugs]
  • Added a few sectors to MAP01 to define a wire going from the switch that opens the secret exit hallway to the secret exit hallway itself.
  • Changed the ramp back up from MAP01's Chaingun secret to its starting room to lower both ends at once, instead of clumsily lowering the exit end once the ramp is entered, almost always causing the player to bump into the still-lowering wall if going down the corridor at even a normal running speed.
  • Added some monitors to the opening room of MAP02.
  • Separated the Former Sergeant trap trigger and bridge raise trigger in MAP02 to be two separate linedefs, to make it more apparent the door is where progress is; the bridge now raises as the player approaches the door, while the Former Sergeants raise up exactly when they did before.
  • Toggled the Impassible flag on a few lines in MAP05 so Archviles can't toss you into an inescapable pit of water and render the map unwinnable. (Thanks to PaquoCastor on DoomWorld for pointing this oversight out to me.)
  • Lowered the overlooks on which the Former Humans/Chaingunners sniped at you behind the yellow key door on MAP08, as I thought they were a bit too high to shoot comfortably beforehand.
  • Removed several bars during the elevator ride down to the Archvile reveal in MAP08, so that more of the Archviles would awake on sight during the ride down rather than as soon as the player got down to the ground.
  • Added a new sector joined to the Archvile gauntlet in MAP08 to the sector in which they teleport; in the event the player dies and chooses to resurrect in ZDoom, or in the case of co-op, this will propogate sound to the Archviles still waiting to spawn, coaxing them to entering the play area. Else, they would stay in that sector where the player can't reach them, rendering the map unwinnable.
  • Added some signage to the normal exit in MAP08, indicating which way is the level exit and which way is the way back.
  • Added a rather unsubtle message about the nature of the Spider Mastermind in MAP10 (I mean, it worked for Ancient Aliens, so it stands to reason it should here as well).
  • Put health and ammo in the final gauntlet of MAP10, because wow I seriously forgot to put anything useful in there except that one secret item, smart.
  • Rerecorded the MAP02 and MAP08 demos (DEMO4 and DEMO3, respectively) as the map changes caused desyncs.

Alpha 3


Re: Fork in the Road - a UMAPINFO project (alpha 2)

PostPosted: Sun Jun 30, 2019 8:49 pm
by Gideon020
Interesting concept, should be fun to play through.

Re: Fork in the Road - a UMAPINFO project (Upd. Jul 3: Alpha

PostPosted: Wed Jul 03, 2019 6:52 pm
by Shadow Hog
Pushed an update that should let you use monster-replacing mods without having to manually call a script to tell the engine you've killed all of a given monster; it's all automatic now. A few other map changes are detailed in the changelog in the first post.