Replacing the options menu in user mods

Here, developers communicate stuff that does not go onto the main News section or the front page of the site.
[Dev Blog] [Development Builds] [Git Change Log] [GZDoom Github Repo]

Moderator: GZDoom Developers

Locked
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Replacing the options menu in user mods

Post by Graf Zahl »

It seems to be semi-common practice to replace the engine's main options menu.
As of today this feature is blocked - user mods will not be able to replace the main options menu anymore. Instead a warning will be printed to the console and the menu override be discarded.

The reason this was done is that this menu contains critical settings that must always be accessible. Since the options menu and its submenus expose engine features to the user interface they obviously can change at any time a new feature gets added. This sometimes can result in the addition of a new submenu and the addition or removal of new entries. Any user mod overriding this will be locked to the version of this menu of the time of its making, resulting in false bug reports and usability issues.

As such I deemed it necessary to ensure that the internal menu always gets used. If you absolutely feel you need an option menu for your mod, there's two options:

1. Use 'AddOptionMenu' to add to the end of it.
2. Use a separate 'Game Options' menu accessible from the main menu. This is actually the preferred way to do it because it separates game from engine options more cleanly.
User avatar
Kinsie
Posts: 7399
Joined: Fri Oct 22, 2004 9:22 am
Graphics Processor: nVidia with Vulkan support
Location: MAP33
Contact:

Re: Replacing the options menu in user mods

Post by Kinsie »

Graf Zahl wrote:Any user mod overriding this will be locked to the version of this menu of the time of its making, resulting in false bug reports and usability issues.
Now the authors of every single custom menu-using mod made before March (which includes all mods that try to target both ZDoom and Zandronum) will get bug reports about their mods missing key functionality instead! Aces! Thanks Cooke!
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Replacing the options menu in user mods

Post by Graf Zahl »

Yes, because EVERY SINGLE OPTIONS MENU BEFORE MARCH is essentially broken on the current engine version, omitting some critical options and adding some obsolete ones.
I just checked a somewhat older version of D4D and guess what: Some stuff was missing and there were a few options still in there that no longer even hava an associated string in the string table!

What do you propose? Obviously this is something modders cannot be trusted with to do right without slapping their wrists!
User avatar
Kinsie
Posts: 7399
Joined: Fri Oct 22, 2004 9:22 am
Graphics Processor: nVidia with Vulkan support
Location: MAP33
Contact:

Re: Replacing the options menu in user mods

Post by Kinsie »

Graf Zahl wrote:What do you propose?
I propose adding a [Modder Fucked It, Go Yell At Them Instead] button to the bug tracker, because this is one of those cases where the horse has well and truly bolted for better or worse, and doing otherwise would be somewhat at odds with the team's interest in not breaking mods made for older versions.

Alternatively, you could do some fancy bullshit during MENUDEF load that detects if certain recently-added items are missing from OptionsMenu and AddOptionMenus them back in, but frankly you'd be forgiven for not taking that option. Ain't nobody got time for that.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Replacing the options menu in user mods

Post by Graf Zahl »

Kinsie wrote:[Modder Fucked It, Go Yell At Them Instead]
This solution is my way of expressing just that. Let's be clear again: The options menu will change more. The display options menu in particular is in desperate need of some cleanup and reorganization. It already has seen major changes recently which all those mods that were so 'sophisticated' that they had to replace it, broke. In short: Play those mods, get a broken menu, play those mods with a future version where the menu changed even more - good luck finding anything of value!

I'd rather break the handful of gameplay mods which did not think ahead now than waiting this one out even further.
User avatar
Xaser
 
 
Posts: 10772
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Re: Replacing the options menu in user mods

Post by Xaser »

Bad move. If a mod mucks with the options menu, I can access GZDoom's whole host of options simply by loading the game without the mod. With this change, users are unable to change mod-specific settings because the menu for it no longer exists. This instead shifts the hidden-options problem to a place where users can't work around it.

Obviously, AddOptionMenu is the correct way to do this kind of thing now, but that feature didn't even exist until recently, making this hard-deprecation way too soon. Besides, what were past developers expected to do? Time travel? :P

Actual Suggestion: If you're willing to do something like tie this to the ZScript version declaration (even though that's an odd slant-feature since this crosses wires with MENUDEF), that'd be a valid avenue for enforcing this going forward, but otherwise this is too big a blow to backwards compatibility. If folks are reporting this kind of stuff as engine issues, I'd rather see a big announcement in the Bugs forum explaining the situation so there's an easy place to point to and say "hey read this you dummy" when people inevitably don't. :P

tl;dr: Some way to enforce future use of AddOptionMenu would be fantastic. This is not the way to do it.
User avatar
Kinsie
Posts: 7399
Joined: Fri Oct 22, 2004 9:22 am
Graphics Processor: nVidia with Vulkan support
Location: MAP33
Contact:

Re: Replacing the options menu in user mods

Post by Kinsie »

Graf Zahl wrote:I'd rather break the handful of gameplay mods which did not think ahead now than waiting this one out even further.
I'd say it's more than a handful, and instead suggest it to be pretty much anything that used CVars for customisation since at least 2012, including multiple Cacoward winners. I'd also say that such mods are increasingly likely, whether out of exasperation or spite, to do The Brutal Doom Thing and ship with old versions of the engine included. Which creates a worse problem, in that nobody reports things breaking in new updates (as Friend Mental was expressing frustration about in my link).

Xaser's suggestion of tying this enforcement to ZScript version declaration is much better than my previous ideas, and it seems like a fair solution to the issue that minimises hair loss on both sides.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Replacing the options menu in user mods

Post by Graf Zahl »

This cannot be tied to ZScript version because it's completely unrelated and easily circumvented. Leaving this hole open pretty much prevents changing of the option menu for me in the future because people won't change their bad ways.

The only alternative would be to filter out the newly added things and add them to the existing menu - of course this will also add all obsolete crap from the past.
User avatar
jpalomo
Posts: 771
Joined: Mon May 17, 2010 9:45 am

Re: Replacing the options menu in user mods

Post by jpalomo »

I've already encountered mods released after March that still do this. AddOptionMenu is still fairly new, so many modders probably didn't even know the feature existed yet. With that being said, I should probably check some of my older projects and update them if necessary.
Graf Zahl wrote:If you absolutely feel you need an option menu for your mod, there's two options:

1. Use 'AddOptionMenu' to add to the end of it.
2. Use a separate 'Game Options' menu accessible from the main menu. This is actually the preferred way to do it because it separates game from engine options more cleanly.
I would think AddOptionMenu would be preferred since it is additive and is less likely to conflict with other mods. It's too bad the initial implementation of MENUDEF wasn't additive. Even putting a generic empty 'mod options' menu in the main options menu probably would've curbed some of the bad practices, or at least restrict it to a non-essential menu.
User avatar
Xaser
 
 
Posts: 10772
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Re: Replacing the options menu in user mods

Post by Xaser »

Another idea if feasible: if a mod replaces the main options menu, a "show all options" link is forced at the bottom which will always open up the unmodified GZDoom options menu. Nothing gets hidden, and it reduces the risk of things getting jumbled as in the merge approach suggested above (which, BTW, is still better than nothing).
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Replacing the options menu in user mods

Post by Graf Zahl »

Not that simple. And it again negates the most important thing here: Detract modders from overriding the menus in the first place!
I absolutely want to see this practice gone.
User avatar
Kinsie
Posts: 7399
Joined: Fri Oct 22, 2004 9:22 am
Graphics Processor: nVidia with Vulkan support
Location: MAP33
Contact:

Re: Replacing the options menu in user mods

Post by Kinsie »

Be that as it may, you're still cutting your leg off to treat a stubbed toe.

This is clearly a "heat of the moment" change. You've made or proposed such changes in the past, and you've walked them back into more agreeable solutions shortly afterwards, once cooler heads have prevailed. I feel like giving this change 24-48 hours to percolate, and for people to express their opinions, will result in a better solution for everyone.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Replacing the options menu in user mods

Post by Graf Zahl »

No. This change is just retroactively fixing a design mistake.
User avatar
Nash
 
 
Posts: 17433
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia
Contact:

Re: Replacing the options menu in user mods

Post by Nash »

R.I.P non-Doom mods / standalone TC menu aesthetics
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Replacing the options menu in user mods

Post by Graf Zahl »

I see there's no sense discussing this. Apparently you people simply don't get it: The option menu is not supposed to be replaced by ANYTHING!

Feel free to create a new main menu but the ENGINE options are not a stable set of data. If you replace those your mod will be broken on the next engine update.
Locked

Return to “Developer Blog”