Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Youda008

Doom Runner (yet another graphical ZDoom launcher)

Recommended Posts

I wanted to contribute something to this community, but learning Doom modding looks like a long haul. However i can do some C++, so i decided to make a new launcher.



Why the hell another launcher?

The motivation was rather personal. I simply didn't like any of the existing ones.

ZDL is fine, but it's too minimalistic for me, it can't do much, and some tasks become very repetitive and annoying. And it's also becomming pretty dated, and looks like from Win98.

Rocket Launcher is nice, and with its support for all the various Doom engines still has a strong place in Doom community. However the UI feels rather weird and confusing,
especially in that area of saving&loading configurations which is important for me.

I also tried ZDoom Executor. The idea about presets is awesome, but the execution is weird too, to this day i still haven't figured out how to use the tabs properly, not very
intuitive. Plus there is only limited number of them and they are named only by fixed numbers.

And finally i wanted to improve my C++ skills and learn some GUI programming, and this seemed like a perfect opportunity.
First i wanted to keep it only for myself, because everyone else seemed to be satisfied with ZDL, but then i thought: Why not, maybe somebody will find it useful.


Doom Runner

So there goes the Doom Runner - a modern Qt-based preset-oriented launcher, designed around the idea of one-click switching between multi-file modifications (Brutal Doom with mutators, Project Brutality with UDV, Complex Doom Clusterfuck, ...) to minimize any repetitive work.
 

Features:

  • unlimited number of named presets with single-click switching
  • lists of IWADs and Map packs automatically synchronized with the content of a selected directory
  • drag&drop of files from a directory window to the mod list
  • internal drag&drop for reordering the files to load
  • direct map launch and multiplayer options
  • DM flags and Compatibility flags calculator with tooltips from official ZDoom wiki
  • preview of the final launch command with the option to export it to .bat/.sh shell script
  • runs on Windows and Linux
  • native executable - no stupid .NET or JRE required

 

Initial setup

1-InitialSetup.png.19cf25ddd3998296224c140a98e4522d.png

 

Main screen - file selection

2-MainScreen.png.c693e8a8f5357800e6888bf1dff7477f.png

Launch options

3-LaunchOptions.png.9b59e584ca7003084d2e1716b321fad6.png

 

Game options for direct map launch:

4-DMflags.png.a84dec798a7bdb4c2edcb17ff22cc50c.png

 

Status (12.5.2020):

1.3 is released for Windows and Linux. I addressed most of the feedback here and on zdoom forum.

What is planned for next version is more launch options like sound/music checkboxes, dirs for saves and screenshots, demo recording, etc.

 

Project page: https://github.com/Youda008/DoomRunner

 

Download: https://github.com/Youda008/DoomRunner/releases

Edited by Youda008

Share this post


Link to post

 Looks good, sadly it's non-functional. Now where's the config hidden? Hope settings are not stored in the registry.

 Edit: i selected auto update iwads and everything was added to the list but now i've cleaned up the mess.

 But still doesn't work, seems engine names are hardcoded. Why? It let me choose LZDoom.

Edited by drfrag

Share this post


Link to post

What is non-functional?

Config is not hidden, it's saved right next to the executable, in the same directory.

obrazek.png.5f4599052490e96a4f209d8d5f5c90af.png

Of course you need to have write permissions to that directory, i.e. if you put it into Program Files, it will not work, unless you change the permissions yourself.

 

And engine names are not hardcoded, everytime you add one, it let's you write own name.

obrazek.png.a162734959b90f6415e08b38088153c8.png

 

Not sure, what strange things you are doing with it. It works perfectly for me.

Share this post


Link to post

 Found it perhaps you should rename it to DoomRunner.json. There's alot of stuff in that folder.

 Sorry but for me it doesn't work, i've added LZDoom as engine and then everything is grayed out and i can't select any engine. Launch says doom engine not selected.

Share this post


Link to post
1 hour ago, Hitscanning_scumbag said:

So this appears to be only for x64 bit systems, for those of us still stuck in the stone age, that's an issue. But maybe there is a version and I didn't see it? 

I did not think that in 2020 someone would still have a 32-bit computer. My one is ~15 years old and it's 64-bit already. But i can provide 32-bit version too, it's just that i found it unnecessary.

 

3 hours ago, drfrag said:

 Found it perhaps you should rename it to DoomRunner.json. There's alot of stuff in that folder.

 Sorry but for me it doesn't work, i've added LZDoom as engine and then everything is grayed out and i can't select any engine. Launch says doom engine not selected.

You are supposed to create a named preset first, as hinted by the numbers. The presets work like tabs in a browser, no tabs - no content. The workflow in general goes from left to right and from top to bottom, not sure what more i can do to make it more intuitive.

obrazek.png.7f40f2cb9f4afe61a2ffedd74677a0b7.png

Edited by Youda008

Share this post


Link to post

Oh shit, i won't make 32-bit version, because i don't have enough space on disk to install yet another version of static Qt. Fail.

.... maybe later.

Share this post


Link to post

 Now it works, but why do i need to create a preset? Why not allowing a default preset?

 Also all wads are detected as iwads if you update them automatically, mods are detected as map packs too. And finally mods are loaded after the map packs, what if you need to load the mods first?

Share this post


Link to post
8 minutes ago, drfrag said:

 Now it works, but why do i need to create a preset? Why not allowing a default preset?

 Also all wads are detected as iwads if you update them automatically, mods are detected as map packs too. And finally mods are loaded after the map packs, what if you need to load the mods first?

So, you think it would be better if there was always one automatic preset called for example "Default" ?

 

8 minutes ago, drfrag said:

 Also all wads are detected as iwads if you update them automatically, mods are detected as map packs too. And finally mods are loaded after the map packs, what if you need to load the mods first?

I don't know of any way to recognize iwad from normal patch wad, they use the same file extension .wad, and mods sometimes use .wad too. Anyway, why would you have everything mixed together in a single directory? That sounds like some serious mess. Doesn't it make sense to split them into separate directories (even if you don't use any launcher)?

Share this post


Link to post

 I do.

 Yeah it's a mess but i guess that's not uncommon. ZDL mixed all external files, you can't distinguish between them and sometimes you need to reverse the load order.

Share this post


Link to post

I can tell you're serious since you used a drop down menu for level select (the second best thing next to automatically warping me to the map). But I think level select should be on the same screen as wad select, that is to say, the default tab, the left one. 

Share this post


Link to post

Is there a specific reason for the map pack list to have some space before the entries? It looks like there were supposed to be checkboxes or something, but they don't show.

Share this post


Link to post

I don't know if it's possible, but I have one suggestion that would make me use this over ZDL.

 

I make tool assisted demos using the -recordfromto command in prboom+, it would be nice if I had a "Next" button to change the demo being recorded from and into easily.  Currently it goes something like:

 

-skipsec 4:06 -recordfromto 3 4

 

With 3 and 4 being the demos being recorded from and into respectively.

 

When I make good progress into demo 4 but then need to start going into demo 5 I need to change the command line:

 

-skipsec 6:00 -recordfromto 4 5

 

Having to change both the -skipsec time and the demo numbers.

 

It would be slightly more convenient if all I had to do was change the time and hit a next button that would automatically change the "3 4" to "4 5" that slight convenience would up my production quite a bit I believe.  I am not versed in programming languages at all so I have no idea how hard something like that would be to implement, and I'm sure there isn't much demand for it since there doesn't seem to be a lot of people making demos in this fashion.  But if your launcher had it, I'd grab it in a heartbeat.

Share this post


Link to post

Loving it so far, running on Arch Linux. One small thing, I can't select optional configs. It seems it doesn't know the path to where config files are stored. Probably since the G/L/ZDoom executables are stored in /usr/bin/ and configs are stored in /home/<user>/.config/gzdoom/gzdoom.ini for example. I also can't find a way to setup that path. Going to test some more and leave some more feedback.

 

Another small thing is the engine path being displayed as ../../../../../usr/bin/gzdoom

Not sure where all the ../../../../ are coming from, but it shouldn't be needed.

 

Edited by spinvis : typo

Share this post


Link to post

Thank you all guys for feedback and sorry for late response, got distracted by getting a new computer ... finally i can play Doom on full details :)))))))))

 

 

On 2/17/2020 at 10:18 PM, drfrag said:

 I do.

Then i guess i'll revert the last change. I'll think about it little more, maybe there is some better solution.

 

On 2/18/2020 at 2:25 AM, kaleb. said:

i like it so far but, folders in the Select map pack view just won't stay collapsed. they keep opening themselves back up making my WADs folder with 2000+ files and 50 folders a real pain to scroll thru

Yea, that is the side-effect of automatically re-freshing the the list from directory. I know of only one solution but that's rather difficult. But i'll add this to my TODO list.

 

On 2/18/2020 at 2:42 AM, Asking4Id said:

I can tell you're serious since you used a drop down menu for level select (the second best thing next to automatically warping me to the map). But I think level select should be on the same screen as wad select, that is to say, the default tab, the left one. 

That would just break consistency with a lot of other things imho. When you select a map, you usually want to select also difficulty (or fast monsters or other flags). That would all have to go to the first tab, and it would become bloated.

Also I believed that most people will just launch the game and then start or load from game's menu, but the truth is i don't really know how people use the launchers, i just have to guess. I would love if more of you could tell me what's your thoughts on this.

 

On 2/18/2020 at 7:48 PM, NightFright said:

Is there a specific reason for the map pack list to have some space before the entries? It looks like there were supposed to be checkboxes or something, but they don't show.

It's because if you have multiple nested directories, there are expand/collapse buttons.

 

On 2/19/2020 at 12:01 AM, guitardz said:

I don't know if it's possible, but I have one suggestion that would make me use this over ZDL.

 

I make tool assisted demos using the -recordfromto command in prboom+, it would be nice if I had a "Next" button to change the demo being recorded from and into easily.  Currently it goes something like:

 

-skipsec 4:06 -recordfromto 3 4

 

With 3 and 4 being the demos being recorded from and into respectively.

 

When I make good progress into demo 4 but then need to start going into demo 5 I need to change the command line:

 

-skipsec 6:00 -recordfromto 4 5

 

Having to change both the -skipsec time and the demo numbers.

 

It would be slightly more convenient if all I had to do was change the time and hit a next button that would automatically change the "3 4" to "4 5" that slight convenience would up my production quite a bit I believe.  I am not versed in programming languages at all so I have no idea how hard something like that would be to implement, and I'm sure there isn't much demand for it since there doesn't seem to be a lot of people making demos in this fashion.  But if your launcher had it, I'd grab it in a heartbeat.

@guitardz That's an interesting use-case, i have never recorded a demo so i will have to take a deeper look at how it works.

Is all what you're asking just changing "3 4" to "4 5" ? Or you want some more comprehensive support for demos?

 

On 2/21/2020 at 9:22 PM, Xeriphas1994 said:

Ah, that's awesome, it's just first 4 bytes of a file. That'll be easy.

 

34 minutes ago, spinvis said:

Loving it so far, running on Arch Linux. One small thing, I can't select optional configs. It seems it doesn't know the path to where config files are stored. Probably since the G/L/ZDoom executables are stored in /use/bin/ and configs are stored in /home/<user>/.config/gzdoom/gzdoom.ini for example. I also can't find a way to setup that path. Going to test some more and leave some more feedback.

@spinvis Oops, good point, thank you. I tested only very briefly on Linux. I will have to think about a best solution. Either i can add an option into the Initial Setup screen that sets the path of configs, or i can generalize the config selection on the main tab to be possible to select any config anywhere. I don't know which one will be better.

 

Share this post


Link to post
1 hour ago, Youda008 said:

 

@guitardz That's an interesting use-case, i have never recorded a demo so i will have to take a deeper look at how it works.

Is all what you're asking just changing "3 4" to "4 5" ? Or you want some more comprehensive support for demos?

A "Next Demo" button for changing the "to" and "from" demo numbers would be all I am really asking for, yes.  But if you were to look into demorecording commands and do something more comprehensive to make recording a more convenient experience overall, that would be awesome as well.  The main issue with that would be in the researching how the things all work, since speedrunners would prefer that less people knew how to use those tools (for good reason, admittedly) so there aren't a lot of folks around who are willing to give that info out.  I only learned about -recordfromto from a very old post made here by @40oz and had to figure out the intricacies of it through trial and error.

Share this post


Link to post
19 hours ago, Youda008 said:

@spinvis Oops, good point, thank you. I tested only very briefly on Linux. I will have to think about a best solution. Either i can add an option into the Initial Setup screen that sets the path of configs, or i can generalize the config selection on the main tab to be possible to select any config anywhere. I don't know which one will be better.

 

 

Since I use usually use L/G/ZDoom, Zandronum, and PrBoomPlus it would be convenient to have the config paths option paired with the engines basic setup. One config path per engine. In the paths there can be multiple configs. Just my two cents.
 

Share this post


Link to post

Some more feedback after some more testing. 

 

Make presets remember/store all the settings 1 until 6 including the additional command line parameters and launch options. At the moment a preset only remembers 1, 2, 3, 6 from what I can see. For example my use case would be setup a new preset with mappack Eviternity launching under PrBoom-plus with command line -complevel 11. And another preset for mappack Scythe, -complevel 2. This is not possible at the moment since it doesn't store the mappacks and command line in presets.

 

Same goes for launch options, for example WAD Eternal Doom IV starts only on map 8. But launch options gets stored globally instead of per preset which means I'll have to remember which WADs contain which levels and manually change every time I want to play that WAD.

 

Another suggestion would be to be able to select multiple WADs in the map selection, for example Back to Saturn Episodes uses multiple WADs. Epic use multiple WADs (one for GL Skies). The Darkening, Alien Vendetta, Memento Mori, Valiant, etc all use multiple WAD files, wether it be for music or GL skies or something else.

 

Unless I misunderstand the functionality and function of mappacks section. Maybe if it's only supposed to be for official expansions? And the MOD section for the rest? I'd suggest a renaming them then, because it is confusing.

 

Hopefully you can get some ideas and inspiration from https://gitlab.com/sdcofer70/enyo-doom

 

Since it also uses C++ and Qt and it has functioning presets and profiles which stores all relevant options.

 

Other than that it's very lightweight, fast, and has a lot of functionality. Great work.

Share this post


Link to post

 

On 3/4/2020 at 12:06 PM, spinvis said:

Another suggestion would be to be able to select multiple WADs in the map selection, for example Back to Saturn Episodes uses multiple WADs. Epic use multiple WADs (one for GL Skies). The Darkening, Alien Vendetta, Memento Mori, Valiant, etc all use multiple WAD files, wether it be for music or GL skies or something else.

I know about this issue, I've been thinking a lot about it. The problem is that the Map pack list is auto-loaded from a directory, which means the files are always going to be in alphabetical order, therefore if you select multiple files, you can't specify the order of loading. Currently i solve this by allowing to drag&drop items from map list to the beginning of mod list, it's not optimal, but i couldn't figure out anything better yet.

Share this post


Link to post
On 2/17/2020 at 9:29 PM, drfrag said:

And finally mods are loaded after the map packs, what if you need to load the mods first?

Forgot to answer this question. I believe that such case, where you need to load a map after a mod, is so rare that it does not deserve its own feature. Those who encounter such problem can always fallback to "ZDL-style" usage - put everything in the Mod list and just ignore the Map list.

My main philosophy when designing UI is always: Optimize for the most common use-case, but allow a solution (even if ugly) for a rare use-cases. In other words, 1 out of 100 people is fine to make ugly workarounds, when it simplifies things for those 99.

But you think such case is more common than i think, please give me some examples, i haven't encountered any yet.

Share this post


Link to post

Hello. Version 1.3 is released.

I believe i addressed most of your requests, except for the demo recording support, that's gonna take some more time.

Changes:

  • For each engine you can now set custom directory of config files (required for using it on Linux).
  • You can now select multiple map files via CTRL, but they will always be loaded in alphabetical order. If you need to change the order, you have to either rename them, or add them to the mod list and reorder them there.
  • Selected map files are now saved to presets instead of globally.
  • Line for additional command line arguments has been split to preset-related and global one.
  • You can now select whether "Launch options" in second tab should be saved globally or to presets.
  • You can now drag&drop also in Setup dialog to IWAD list and Engine list.
  • When using manual IWAD management mode, you can now give each IWAD a custom name by double-clicking on it in Setup dialog.
  • IWADs are now distinguished from PWADs by file header instead of filename suffix.
  • To select a map, a command +map is now used instead of -warp to allow custom map names.
  • Added a basic support for Duke Nukem files (.grp and .rff).
  • Fixed that collapsed directories always expanded again on every update.
  • Fixed that "Allow jump/crouch/aim" checkboxes produced incorrect flags.
  • Error message during parsing options.json file now contains more detailed information and checkbox to ignore them all.
  • Automatic checking if there is a new version available.

Plus one more useful feature. When you download a WAD from doomworld.com, it usually contains a .wad and an equally named .txt (for example D2RELOAD.WAD and D2RELOAD.TXT). When you extract them both to your map directory, you can display the content of the .txt in the launcher by double-clicking the corresponding .wad in the map list. This way when you forget what is that weird hg.wad that you downloaded years ago, you can easily remind yourself :)


Also, a 32-bit version for Windows is now available.

 

What is planned for next version is more launch options like sound/music checkboxes, dirs for saves and screenshots, demo recording, etc.

Edited by Youda008

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×