ZDoom / gzdoom

GZDoom is a feature centric port for all Doom engine games, based on ZDoom, adding an OpenGL renderer and powerful scripting capabilities
http://zdoom.org
GNU General Public License v3.0
2.47k stars 539 forks source link

[Feature] Introduce a partial config-override lump #2582

Closed Darkcrafter07 closed 4 months ago

Darkcrafter07 commented 4 months ago

GZDoom version

4.x

Which game are you running with GZDoom?

Doom 2

What Operating System are you using?

Windows 10

If Other OS, please describe

No response

Relevant hardware info

No response

Is your feature request related to a problem? Please describe.

I'd like to get my players to play the mod with settings made accordingly to the asset options it was made and launched with.

Describe the solution you'd like

A partial config override would allow to embed some parts of custom config.ini files as lumps in WAD or PK3 files.

Let's call this lump like "CFGTWEAK".

This would change some game settings to those defined in those partial config lumps every time a mod containing them was launched, it won't affect the user default settings and won't affect the user *.ini

What is it for? It's a nice way to bundle music WADs with music device set to that was used while making them, like:

` Path=$PROGDIR/soundfonts Path=$PROGDIR/fm_banks

snd_mididevice=-5

fluid_chorus=false fluid_chorus_depth=8 fluid_chorus_level=1 fluid_chorus_speed=0.30000001192092896 fluid_chorus_type=0 fluid_chorus_voices=3 fluid_gain=0.5 `

Also a nice way to bundle a mod with different control schemes and shader configurations at launch.

This could also be useful if an author would want to accentuate which texture options they wanted it to be played, as an additional PWAD containing the CFGTWEAK lump:

gl_texture_filter=4 gl_texture_filter_anisotropic=16 gl_texture_hqresize_maxinputsize=512 gl_texture_hqresize_mt_height=4 gl_texture_hqresize_mt_width=16 gl_texture_hqresize_multithread=true gl_texture_hqresize_targets=15 gl_texture_hqresizemode=0 gl_texture_hqresizemult=1

Just like with my mapset having a special launcher written to launch it with a numerous amount of options like what mods to play it with and what kind of graphic quality assets to load on start. Some people won't like how linear filtering looks with low-res assets and thus "low" quality preset would set texture filtering to none, or "high" preset would enable trilinear texture filtering with anisotropy on 16x.

Describe alternatives you've considered

No response

Add any other context or screenshots about the feature request here.

No response

RicardoLuis0 commented 4 months ago

rather than overriding the user's settings globally, wouldn't this be better served by a feature to let you set playback settings per music track?

Darkcrafter07 commented 4 months ago

rather than overriding the user's settings globally, wouldn't this be better served by a feature to let you set playback settings per music track?

I think it needs some consistency so if my user selects an option to have OPL3 music on the start it would have been much easier to implement what I'm asking for?

It won't just alter music device options but also lots of others as a bonus like texture filtering and controls.

It could also lead to launcher's developers implementing features to select presets like HL WASD, classic doom and other by creating a wad with a desired preset.

RicardoLuis0 commented 4 months ago

overriding user cvars settings with an abritrary lump would be a no i'm pretty sure, unfortunately

prof-hastig commented 4 months ago

Allowing a mod to override user settings should be a big 'no' by default. They are called 'user settings' for a reason!

I even find it questionable for the music settings because people's preferences are so different. You can already set the MIDI device through SNDINFO but with things like chorus and reverb - and especially global volume settings - you'd be taking things too far and I wouldn't want you to have any means to force these settings to on my setup.

madame-rachelle commented 4 months ago

I wouldn't want you to have any means to force these settings to on my setup.

This is a perfectly valid concern - however - I think a good counter-point would be "mod-recommended" settings. This would be a feature that would allow a modder to suggest settings - and if you want - then those settings can be overridded by your will (the end-user), rather than the modder's. This could be compartmentalised by feature type, i.e. features, renderer, etc.

For example - if you have a mod that looks better with trilinear filtering (some actually do! especially ones that use high res textures) - then allowing the modder to suggest it to the end-user really wouldn't be a bad thing. The worst that can happen is the user says no, their settings are respected, nothing is changed, and on their way they go as if nothing ever happened.

prof-hastig commented 4 months ago

Sure, but that needs to be a list of specific settings where it makes sense, not everything.

coelckers commented 4 months ago

The feature as proposed gets a clear 'no', if there's things that need some configurability, it should be done through the GAMEINFO section of MAPINFO.