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]

Moderator: Developers

Replacing the options menu in user mods

Postby Graf Zahl » Sun Jun 11, 2017 2:01 am

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
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Replacing the options menu in user mods

Postby Kinsie » Sun Jun 11, 2017 2:17 am

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
Kinsie
A Concept Utterly Obsolete
 
Joined: 22 Oct 2004
Location: MAP33
Discord: Find Me...
Twitch ID: thekinsie

Re: Replacing the options menu in user mods

Postby Graf Zahl » Sun Jun 11, 2017 2:35 am

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
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Replacing the options menu in user mods

Postby Kinsie » Sun Jun 11, 2017 2:46 am

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
Kinsie
A Concept Utterly Obsolete
 
Joined: 22 Oct 2004
Location: MAP33
Discord: Find Me...
Twitch ID: thekinsie

Re: Replacing the options menu in user mods

Postby Graf Zahl » Sun Jun 11, 2017 2:52 am

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
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Replacing the options menu in user mods

Postby Xaser » Sun Jun 11, 2017 2:59 am

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
Xaser
anarchivist
 
 
 
Joined: 20 Jul 2003

Re: Replacing the options menu in user mods

Postby Kinsie » Sun Jun 11, 2017 3:07 am

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
Kinsie
A Concept Utterly Obsolete
 
Joined: 22 Oct 2004
Location: MAP33
Discord: Find Me...
Twitch ID: thekinsie

Re: Replacing the options menu in user mods

Postby Graf Zahl » Sun Jun 11, 2017 3:23 am

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
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Replacing the options menu in user mods

Postby jpalomo » Sun Jun 11, 2017 3:25 am

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
jpalomo
 
Joined: 17 May 2010

Re: Replacing the options menu in user mods

Postby Xaser » Sun Jun 11, 2017 3:50 am

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
Xaser
anarchivist
 
 
 
Joined: 20 Jul 2003

Re: Replacing the options menu in user mods

Postby Graf Zahl » Sun Jun 11, 2017 3:53 am

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
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Replacing the options menu in user mods

Postby Kinsie » Sun Jun 11, 2017 4:13 am

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
Kinsie
A Concept Utterly Obsolete
 
Joined: 22 Oct 2004
Location: MAP33
Discord: Find Me...
Twitch ID: thekinsie

Re: Replacing the options menu in user mods

Postby Graf Zahl » Sun Jun 11, 2017 4:21 am

No. This change is just retroactively fixing a design mistake.
User avatar
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Replacing the options menu in user mods

Postby Nash » Sun Jun 11, 2017 5:28 am

R.I.P non-Doom mods / standalone TC menu aesthetics
User avatar
Nash
Nash Muhandes
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia

Re: Replacing the options menu in user mods

Postby Graf Zahl » Sun Jun 11, 2017 6:04 am

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.
User avatar
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Next

Return to Developer Blog

Who is online

Users browsing this forum: No registered users and 1 guest