[0.3] MOShuffle - Randomize the map order!

Projects that alter game functions but do not include new maps belong here.
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
User avatar
Cutmanmike
Posts: 11347
Joined: Mon Oct 06, 2003 3:41 pm
Operating System Version (Optional): Windows 10
Location: United Kingdom

[0.3] MOShuffle - Randomize the map order!

Post by Cutmanmike »



Requires GZDoom 4.4.0 or higher!

Description

MOShuffle (or Map Order Shuffle) shuffles the order of the levels you play. Simple right? You may start on MAP28, and end up fighting your way to MAP06! If you're playing a normal 32 map wad, it will automatically work the moment you start a new game. Non-standard mapsets won't work, unless specified in the compatibility list below. If you would like to add support for a mapset you think would be worth shuffling, let me know in the replies :)

Compatability

By default, any regular map order (MAP01 to MAP32 or beyond) will work in the default Shuffle All Maps mode. The mod will autodetect and work with the following mapsets and iwads:

Ultimate Doom
Heretic
A Wadsmooshed IWAD - All Doom iwads merged into one. Warning: You MUST disable any of your missing iwads from the options menu.
Compendium - Many classic megawads.
Lexicon - Many modern and old megawads.
Consolation Prize - PSX Doom and Final doom combined into one pack (D64 support coming later)

Settings

There are a few options, but are only really relevant when using one of the compatible packs above.

Randomizer Mode - Choose the way the map order is randomized
  • Shuffle All Maps: Use all the maps available and create a random map order.
  • 32 levels (Respect map numbers) - Using all the available level sets, create a 32 level mapset. This respects the level order. For example: AV01, NJZ02, BIO03, MAP04 etc. If there is only a single level set (i.e vanilla Doom2), the mod will do nothing to the map order.
Each compatible wad has their own options menu where you can enable and disable map sets. I've tried to disable problematic/slaughtery/gimmick sets by default.



Download

Version 0.3f (toxicfrog's updated version)

To-do
  • As far as I can tell, the only way to shuffle the map order is to dynamically alter the nextmap and secretmap level locals in zscript. This means hubmaps (Hexen/Strife) and any maps that specify a map to warp the player to will never wok with this.
  • Due to the above, you are forced to endure a single intermission screen. I would like to do away with that but not sure if it's possible.
  • Currently uses a fairly jank system to detect iwads and mods. Could probably be improved.
  • Uses a TON of cvars for customization purposes. Can be optimized later.
Last edited by Cutmanmike on Mon Jul 17, 2023 5:52 am, edited 10 times in total.
User avatar
cubebert
Posts: 103
Joined: Sun Jun 14, 2020 3:37 pm
Graphics Processor: nVidia (Modern GZDoom)

Re: MOShuffle - Randomize the map order!

Post by cubebert »

Nice job, Cutmanmike! :D
I always wanted something like this, but I didn't know if ZScript was capable of touching the level order. Is there any chance of adding Ultimate Doom and Heretic compatibility?

For the mapsets with special mapnames, could The Alfonzone be added into the compatibility list?
User avatar
MrRumbleRoses
Posts: 333
Joined: Thu Feb 25, 2016 2:01 pm

Re: MOShuffle - Randomize the map order!

Post by MrRumbleRoses »

does Doom Classic Complete work with this?
User avatar
Cutmanmike
Posts: 11347
Joined: Mon Oct 06, 2003 3:41 pm
Operating System Version (Optional): Windows 10
Location: United Kingdom

Re: MOShuffle - Randomize the map order!

Post by Cutmanmike »

cubebert wrote:N could The Alfonzone be added into the compatibility list?
I'm going to try making it detect if the map order is simply MAP01-MAP99 so it will work for most wads that use that format. That mod goes up to MAP62 so it should work if I can get it working.
MrRumbleRoses wrote:does Doom Classic Complete work with this?
No but I can make it work. Got a link?

Edit: Oh is this just what steam calls it? It will work with Doom 2 and final doom at the moment but not the ultimate doom or doom 1 yet.
Edit2: Ok you mean the wadsmoosh thing. I'll look into it.
Last edited by Cutmanmike on Mon Jul 12, 2021 8:41 am, edited 1 time in total.
User avatar
Rexen
Posts: 110
Joined: Thu Jun 30, 2016 3:08 pm
Preferred Pronouns: They/Them
Operating System Version (Optional): Windows 11 Home
Graphics Processor: nVidia with Vulkan support
Location: E1M1: Hangar

Re: MOShuffle - Randomize the map order!

Post by Rexen »

Speaking of Classic Complete, it would be nice to see this work with wadsmoosh , the only issue I can see is if someone has a missing mapset because they didn't have the wad, as example lets say I had all the wads that wadsmoosh supports but I'm missing sigil, there would need to be code to detect a missing E5, and then there's the issue of the master levels resetting the players inventory at the start of each map but I guess that could add to the fun.

Edit: You might also want to blacklist TitleMap as this ruins the title screen of gameplay mods if you can
User avatar
Cutmanmike
Posts: 11347
Joined: Mon Oct 06, 2003 3:41 pm
Operating System Version (Optional): Windows 10
Location: United Kingdom

Re: MOShuffle - Randomize the map order!

Post by Cutmanmike »

I will add wadsmoosh support, though detecting what maps actually exist is kinda poopy at the moment (not sure if there's a better way to do it than using Readlump and comparing strings), so you'd have to disable your missing mapsets in the options.

Edit: Added support for a wadsmooshed iwad and fixed some bugs. Check out the first post!
User avatar
MrRumbleRoses
Posts: 333
Joined: Thu Feb 25, 2016 2:01 pm

Re: [0.2] MOShuffle - Randomize the map order!

Post by MrRumbleRoses »

yeah i was referring to wadsmoosh. my bad. i tried out V1 at the time with Doosk. and when i got to the opening thing. it took me to a random ass map. but yeah
User avatar
Cutmanmike
Posts: 11347
Joined: Mon Oct 06, 2003 3:41 pm
Operating System Version (Optional): Windows 10
Location: United Kingdom

Re: [0.2] MOShuffle - Randomize the map order!

Post by Cutmanmike »

Oops I noticed your new map order isn't preserved when loading a save game. Gotta fix that.

Edit: Fixed. Please download the latest version!
User avatar
RiboNucleic Asshat
Posts: 501
Joined: Thu May 09, 2013 8:15 pm
Preferred Pronouns: No Preference
Graphics Processor: nVidia with Vulkan support
Location: Exactly where I am

Re: [0.3] MOShuffle - Randomize the map order!

Post by RiboNucleic Asshat »

This is fascinating, where most randomizers for years have just shuffled enemy and/or weapon types, you've actually jumbled up the map order. It's like the dark souls fog gate randomizer but for doom.

Can't wait to combine this with stuff like DRLA to have the most disorganized doom playthrough possible!
User avatar
CherubCorps
Posts: 198
Joined: Fri Sep 11, 2020 8:09 pm
Location: United States

Re: [0.3] MOShuffle - Randomize the map order!

Post by CherubCorps »

Such a great utility mod. It's amazing how much I didn't know I wanted this until it came out.
User avatar
namsan
Posts: 147
Joined: Sat Mar 31, 2012 4:27 am
Preferred Pronouns: He/Him
Location: Japan

Re: [0.3] MOShuffle - Randomize the map order!

Post by namsan »

:) Oh, I was waiting for mods like this. Now I can enjoy a Rogue-lite Doom with some randomizer mods.
Gez
 
 
Posts: 17934
Joined: Fri Jul 06, 2007 3:22 pm

Re: [0.3] MOShuffle - Randomize the map order!

Post by Gez »

Cutmanmike wrote:
  • As far as I can tell, the only way to shuffle the map order is to dynamically alter the nextmap and secretmap level locals in zscript. This means hubmaps (Hexen/Strife) and any maps that specify a map to warp the player to will never wok with this.
Probably for the better, since hubs should be understood as a single map split into parts: you generally need to do things in a map so that it unlocks stuff in another map, which lets you unlock more stuff in the first map, etc. Just randomizing the maps would run a high-risk of softlocking you. Conceptually, the way to randomize map order in Hexen would be to randomize hub order. Like perhaps you'd start in Heresiarch's seminary, then travel to Seven Portals, then Necropolis, Castle of Grief, and finally Shadow Wood.

And no, I don't see how this would be achieved, technically.
User avatar
Cutmanmike
Posts: 11347
Joined: Mon Oct 06, 2003 3:41 pm
Operating System Version (Optional): Windows 10
Location: United Kingdom

Re: [0.3] MOShuffle - Randomize the map order!

Post by Cutmanmike »

I don't know enough about Hexen to even start thinking about that, but seeing as randomizers exist for games like Super Metroid and Zelda by moving items and stuff around, I could see it.
Soosisya
Posts: 73
Joined: Sat Oct 31, 2020 9:26 am

Re: [0.3] MOShuffle - Randomize the map order!

Post by Soosisya »

Welp, it's just what I need for the mod Risk of doom! I should try it for sure)
User avatar
Ltmajordude
Posts: 26
Joined: Mon Sep 23, 2019 12:29 pm
Graphics Processor: Intel (Modern GZDoom)

Re: [0.3] MOShuffle - Randomize the map order!

Post by Ltmajordude »

Hahaha, you outdid yourself Cutmanmike! Cheers!

Btw, if you don't mind suggestions...
Ever thought of doing another randomizer mode that's a combination of those 2 modes?

I tested out a Wadsmooshed IWAD and found that when I enabled all the levels for that IWAD,

Shuffle All Maps: Shuffles through all 171 the maps. Wowie, that's a lot of maps, lol.
32 levels (Respect map numbers): Unfortunately skips the Doom 1 maps since they're in the E#M# format, not in the MAP## format

Shuffle All Maps seems to be the only one to include the Doom 1 maps but at the price of a map list consisting 171 maps instead of a simple 32 map order.

Just a suggestion though, regardless, great job on this mod!

EDIT: Oops, when I said combination of those 2 modes, I guess I mean a "Shuffle All Maps" option that limits to just 32 maps instead of all the maps in total.

Return to “Gameplay Mods”