[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 YOUR 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.

[0.3] MOShuffle - Randomize the map order!

Postby Cutmanmike » Sun Jul 11, 2021 4:05 pm



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.3

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 12, 2021 5:52 pm, edited 9 times in total.
User avatar
Cutmanmike
Is it hot in here or is it just ZScript
 
Joined: 06 Oct 2003
Location: United Kingdom
Discord: https://discord.gg/Whts7Bj
Operating System: Windows Vista/7/2008 64-bit

Re: MOShuffle - Randomize the map order!

Postby cubebert » Sun Jul 11, 2021 5:38 pm

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
cubebert
 
Joined: 14 Jun 2020
Operating System: Windows Vista/7/2008 64-bit
Graphics Processor: nVidia (Modern GZDoom)

Re: MOShuffle - Randomize the map order!

Postby MrRumbleRoses » Sun Jul 11, 2021 10:38 pm

does Doom Classic Complete work with this?
User avatar
MrRumbleRoses
 
Joined: 25 Feb 2016

Re: MOShuffle - Randomize the map order!

Postby Cutmanmike » Mon Jul 12, 2021 5:15 am

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
Cutmanmike
Is it hot in here or is it just ZScript
 
Joined: 06 Oct 2003
Location: United Kingdom
Discord: https://discord.gg/Whts7Bj
Operating System: Windows Vista/7/2008 64-bit

Re: MOShuffle - Randomize the map order!

Postby Rexen » Mon Jul 12, 2021 7:04 am

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
Rexen
Has anyone seen my blue card key?
 
Joined: 30 Jun 2016
Location: E1M1: Hangar
Github ID: RealRexen
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: Yes (Using Development/Testing Version)
Graphics Processor: nVidia with Vulkan support

Re: MOShuffle - Randomize the map order!

Postby Cutmanmike » Mon Jul 12, 2021 8:35 am

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
Cutmanmike
Is it hot in here or is it just ZScript
 
Joined: 06 Oct 2003
Location: United Kingdom
Discord: https://discord.gg/Whts7Bj
Operating System: Windows Vista/7/2008 64-bit

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

Postby MrRumbleRoses » Mon Jul 12, 2021 11:18 am

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
MrRumbleRoses
 
Joined: 25 Feb 2016

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

Postby Cutmanmike » Mon Jul 12, 2021 3:08 pm

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
Cutmanmike
Is it hot in here or is it just ZScript
 
Joined: 06 Oct 2003
Location: United Kingdom
Discord: https://discord.gg/Whts7Bj
Operating System: Windows Vista/7/2008 64-bit

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

Postby RiboNucleic Asshat » Mon Jul 12, 2021 5:36 pm

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
RiboNucleic Asshat
annoying
 
Joined: 09 May 2013
Location: Exactly where I am
Discord: Ribonucleic Asshat#7687
Twitch ID: ribonucleicasshat
Operating System: Windows 10/8.1/8/201x 64-bit
Graphics Processor: nVidia with Vulkan support

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

Postby CherubCorps » Tue Jul 13, 2021 6:47 am

Such a great utility mod. It's amazing how much I didn't know I wanted this until it came out.
User avatar
CherubCorps
 
Joined: 11 Sep 2020
Location: United States
Discord: CherubCorp#1153
Twitch ID: www.twitch.tv/cherubcorp

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

Postby namsan » Wed Jul 14, 2021 1:44 am

:) Oh, I was waiting for mods like this. Now I can enjoy a Rogue-lite Doom with some randomizer mods.
User avatar
namsan
piss piss piss piss piss piss piss
 
Joined: 31 Mar 2012
Location: Japan
Discord: Namsan#8146

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

Postby Gez » Wed Jul 14, 2021 2:11 am

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.
Gez
 
 
 
Joined: 06 Jul 2007

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

Postby Cutmanmike » Wed Jul 14, 2021 5:54 am

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.
User avatar
Cutmanmike
Is it hot in here or is it just ZScript
 
Joined: 06 Oct 2003
Location: United Kingdom
Discord: https://discord.gg/Whts7Bj
Operating System: Windows Vista/7/2008 64-bit

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

Postby Soosisya » Wed Jul 14, 2021 9:26 am

Welp, it's just what I need for the mod Risk of doom! I should try it for sure)
Soosisya
 
Joined: 31 Oct 2020

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

Postby Ltmajordude » Thu Jul 15, 2021 2:30 pm

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.
User avatar
Ltmajordude
 
Joined: 23 Sep 2019
Discord: Ltmajordude #9623
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: Intel (Modern GZDoom)

Next

Return to Gameplay Mods

Who is online

Users browsing this forum: CherubCorps, electrodragon554, HLRaven, ThinkSome and 16 guests