Realm667/WolfenDoom

[3.2] Performance menu suggestions from Graf Zahl

Opened this issue ยท 17 comments

[for discussion]

One more thing: I started the second episode, switched on vid_fps and wtf, only 27 fps? Then I went to the menu and disabled most of the eye candy features and suddenly the frame rate doubled!

While I can understand that you want to show off your work, it shouldn't come at the price of performance, especially if it is this steep. My computer is still on the faster side of things but it really had to struggle with the default settings. While there are some options in the launcher, they are all very technical and do not tell the user how they affect performance. The detail preset does not really help as none of its options tell in any way what they do. Are they the general performance setting and if yes, what features get affected in what way?
The in-game options are also far too scattered. It's an overwhelming list of options that will totally overburden a person without detailed technical knowledge.

I also think that there needs to be a simple one-press "performance" button that really disables everything that's not needed to render the game world properly.

We can likely add descriptions for the entries in the menus (I am thinking of @AFADoomer's IconListMenu and related menu classes) if @Ozymandias81, @Talon1024 and @AFADoomer write them, though I wonder how many of the languages will have these explanations, considering that the final release is done, and the translators are now 'free'...
For the second part, that is also a good suggestion, but then there comes the question of what is needed to render the world 'properly', and what is not. It obviously goes without saying that shaders should be axed first ;-) , but what to do with mirrors, particles & droplets, weather options? Some discussion is definitely needed.

Well, the โ€žMaxโ€œ settings is what we imagined the game to be, so axing is not an option in general. The question is simply how we define the rest of the settings for lower rigs.

@Tormentor667 I meant axing for the last paragraph, for the performance button.

Okay regarding performance and improvements to menues, I have an idea but idk how to approach it exactly due to zscript and other things which may need proper brainstorming:

Under options we should have a simplified menu, this was planned some months ago using actual default setup on GZDoom, where you can switch between simple and full menu.
In "our" simple menu (where we should also translate additional entries present on actual GZDoom btw, for example "full options menu" and "save current settings" are not being translated in any language, only a couple of them in german, czech, portuguese and french) we should define what most of players expect from a rapid menu, this means we must have a list like this imho:

  • PERFORMANCE
    Here we must aggregate most significant related options in a couple of choices, my suggestion is to include the ones important to impact significantly on overall performance, and I think we can split them in 5 choices with mostly ONLY on/off entries with the following order (defined on keyconf in a single definition):
  1. SHADERS, which includes - motion blur, vignette, lens flares, film grain, heat and sandstorm, underwater effect (no need to include bloom imho)
  2. ACTORS, which should include - grass, special effects, scenery and models at 8192 ON and 2048 OFF (we could use "default/less" words), then maybe we can include culling related cvars and 2d-3d trees options;
  3. EFFECTS, where we should include the following ones - weather options, smoke (maybe we should completely remove Thick and use only Thin, it really changes performance), splashes, steam, underwater options (underwater effect should be moved on PP shaders), terrain splashes;
  4. PARTICLES, where we should include - torches (on/off will change their appearance), cinders, leaves, stardust, density related options (explosion/flame/spark 5 as on, 0 as off, personally I always set them at 2 and lightning to 5 of 10) , particles/debris amount (we need to think about how, maybe just default and none should be a good pick so in line with eveything else in terms of choices);
  5. ENGINE, which should include - reflections (these impact a lot around portals and snowy maps), mirrors (these used to impact a lot with sneak system, but maybe we can remove it), shadows (which should be adapted to actual GZDoom entries that atm I am not aware) and maybe something else related always to culling system;

What I mean there is, for example, once we enter inside Performance menu, we have SHADERS on/off, ACTORS on/off etc etc, as I did for Predefined Options (which could be added at the end of the list)

  • CONTROLS
    This should contain the following - Customize which has Action/Weapons/Inventory in a single entry and Others which should include map controls/other; then Mouse and Controller

  • GAMEPLAY
    This should be simple to include and it must have some selectable entries, which are FOV, Cheats, Crosshair, HUD and Misc Options

  • AUDIO & VIDEO
    This should include Display related options on top, with the following:

  1. Render API (do not include Softpoly obviously), Fullscreen, Notebook GPU, width/Height, Resolution Presets and Apply Changes (w/f) - maybe we can call it Rendering;
  2. Texture options with resize ones OFF per default (resize tx/sprites/fonts/skins are ON atm)
  3. Dynamic lights WITHOUT h/w choices
  4. Screen size/gamma/bright/contrast
  5. Sound options

Language and commentary options should be added after above ones and "reset to defaults/last saved/save current" applied instead inside each of above mentioned 4 options (go to console removed). Then we have a choice for "full options menu" which will show the actual menues we have with C3 release plus gzdoom internal options, maybe we can rename it as Advanced Options and never use GZDoom title then.
Each of the 5 choices under Performance should have a simple description which tells us what they should improve.

Do we have plans for 3.2 regarding this issue?

This needs zscript code to work I think, and major rework over language. Also I am not fully aware of recent changes and new cvars added, so I wonder if this instead would be feasible for 3.1? To have everything set properly?

Well, I am even open to include this in 3.1 I you can implement it reasonable and bugfree :)

I have just started working on this to implement @Ozymandias81's plan.

Very good!

@Ozymandias81 (just to make sure you don't miss N00bs commit.

I didn't miss it, it is just coding related stuff is not on my chords recently since I'll check these once I am done with sprites fixes and bmaps.

I am sorry but this won't be possible for 3.1, will try take care of it for 3.2

Just out of curiosity, is this the menudef.zsimple thing?

Yes Torm, now I need to prepare aliases for keyconf and build up a proper method which works for new options. --Ozy81

@Ozymandias81 did you have time yet to take care of this?

@Ozymandias81 sorry for pushing this again, but what's the state here?

This won't be an easy task, first I must familiarize with zscriptified menues and see what can be done, surely we must strip down a lot of options and not make them accessible to users since they are just confusing and unnecessarily included. On first place now it is a matter to track down of new variables. What complicate things is also the mutual work with the language.csv file, it surely slow down the commitment necessary to solve this issue.

@Ozymandias81 is this still a thing?