bradharding / doomretro

The classic, refined DOOM source port. For Windows PC.
https://www.doomretro.com
GNU General Public License v3.0
698 stars 88 forks source link

[Feature Request] Automation considerations #816

Open Kroc opened 1 year ago

Kroc commented 1 year ago

Thank you for the excellent, well-behaving port -- I include it as part of PortaDOOM to fill the gap between Crispy Doom and PrBoom+ for "retro" aesthetics but support for Boom/MBF maps, i.e.

image

PortaDOOM includes its own launcher that wrangles a combination of over 40 engines/versions via command line to all behave the same and launch any of the WADs included with a single keypress. Part of normalising controls across all those engines is a batch script that launches every engine, creating the config files, and then modifying all the config files to match. In this one regard, DOOM Retro is troublesome -- it injects values that I don't want to persist in the default config passed on to the user, including full-paths and the stats.

bradharding commented 1 year ago

Please provide a command-line switch to disable stats collection so that these values are not written out to the config file, or at least don't increment during runs using this new command-line switch

Should be easy enough to implement -nostats, which will just disable any stats being written to doomretro.cfg.

Please consider supporting +quit (or -quit) to automate quitting DOOM Retro after loading is complete. Thankfully GZDoom supports this so I don't have to manually quit GZDoom 30 times in a row whilst the script does its work

Looking at GZDoom's source + documentation, I see -norun? I'll call it that as well.

Please provide a -nointro switch to disable the DOOM Retro splash screen to speed up this process

There's already -nosplash. It's undocumented because I kinda like my splash screen. :P

Please use relative paths in the config file where possible! Using full paths is not good for portability (how PortaDOOM works) and presents a potential, if minor, privacy issue by leaking a system's username if the config file is shared or put on removable storage that can be lost

I'll see what I can do.

Kroc commented 1 year ago

I can't read the code, but does Chocolate/Crispy Doom have a quit parameter? PortaDOOM groups engines by genealogy since these tend to share the same command-line switches so *ZDoom-specific switches would not be applied to Chocolate-derived ports; not that I couldn't change that, but it helps that ports that come from the same family use the same switches.

bradharding commented 1 year ago

No, I don't think these ports do.

Kroc commented 11 months ago

Pinging @fragglet (Chocolate Doom) & @fabiangreffrath (Crispy Doom); I'd like to see the chocolate-doom based engines support the same switches to auto-quit

fragglet commented 11 months ago

What's the purpose of quitting automatically after loading is complete?

Kroc commented 11 months ago

Generating the default config file / testing that loading a WAD (with a set of parameters) succeeds