MantisBT - Doomseeker
View Issue Details
0003480DoomseekerUIpublic2018-09-01 07:452023-01-25 22:11
Zalewa 
 
nonetweakN/A
confirmedopen 
1.1 
1.5.0 
0003480: Optional simplification of Create Game box
Create Game box is a rather powerful tool that will force everything that's in it upon the game. It cannot help the player in a case where that player just wants to launch the game with selected WADs and drop to the title screen. It should be possible to disable (with checkboxes) certain features of Create Game box so that the game is started with a smaller list of arguments.

1. Each page should have a "(do not) use this page" checkbox.

2. It should be possible to drop into the game's title screen. Unfortunately each game here may be different in that regards. Let's at least ensure that the Doom trio can do that (Chocolate Doom, Odamex, Zandronum). Done as 0003505.

3. Play offline/Create server duality needs some separation. There are some items in the box that only make sense when you host a server - UPNP, broadcasts, port, connect, join and rcon passwords. Moreover, some games (depending on a game and OS it runs on) may use different executables for hosting a server and for an offline game. Possible solution for this duality is to introduce a switch of some kind to the Create Game box that will put it into one of the definite modes: offline or server. As most options will be the same, it should be possible to dynamically switch between the two modes without losing any of the previously input data.
No tags attached.
related to 0003505closed Zalewa Allow to create offline game that starts into the title screen 
parent of 0003636closed Zalewa Create Game box - adjust UI elements to Host, Offline and Remote modes 
related to 0003645closed Zalewa No hotkeys to save/load configuration files in Create Game window 
Issue History
2018-09-01 07:45ZalewaNew Issue
2018-09-01 10:26WubTheCaptainNote Added: 0019464
2018-09-01 10:26WubTheCaptainStatusnew => feedback
2018-09-01 11:19ZalewaNote Added: 0019468
2018-09-01 11:19ZalewaStatusfeedback => new
2018-09-01 11:26WubTheCaptainStatusnew => acknowledged
2018-09-10 05:30ZalewaRelationship addedrelated to 0003483
2018-09-18 12:20WubTheCaptainSeverityfeature => tweak
2018-09-22 10:36ZalewaAssigned To => Zalewa
2018-09-22 10:36ZalewaStatusacknowledged => assigned
2018-09-22 13:12ZalewaRelationship addedrelated to 0003505
2018-09-22 13:12ZalewaNote Added: 0019630
2018-09-22 13:13ZalewaNote Edited: 0019630bug_revision_view_page.php?bugnote_id=19630#r11902
2018-09-22 13:13ZalewaNote Edited: 0019630bug_revision_view_page.php?bugnote_id=19630#r11903
2018-09-22 15:39WubTheCaptainRelationship replacedparent of 0003505
2018-09-22 15:59WubTheCaptainProduct Version => 1.1
2018-09-22 15:59WubTheCaptainTarget Version => 1.2
2018-09-22 16:01WubTheCaptainRelationship replacedrelated to 0003505
2018-09-28 19:21ZalewaDescription Updatedbug_revision_view_page.php?rev_id=12035#r12035
2018-09-28 19:22ZalewaNote Added: 0019795
2018-09-29 04:59Blzut3Note Added: 0019803
2018-09-29 09:45ZalewaNote Added: 0019812
2018-09-29 09:46ZalewaNote Edited: 0019812bug_revision_view_page.php?bugnote_id=19812#r12044
2018-09-29 13:14WubTheCaptainTarget Version1.2 => 1.3
2018-09-30 13:06ZalewaRelationship deletedrelated to 0003483
2019-04-24 14:48ZalewaRelationship addedparent of 0003636
2019-04-24 14:50ZalewaNote Added: 0020543
2019-05-02 19:02WubTheCaptainCategorySuggestion => UI
2019-05-02 19:04WubTheCaptainNote Added: 0020607
2019-05-02 19:06WubTheCaptainNote Edited: 0020607bug_revision_view_page.php?bugnote_id=20607#r12557
2019-05-02 19:16WubTheCaptainRelationship addedrelated to 0003645
2019-05-04 08:59ZalewaPrioritynormal => high
2019-05-04 09:21ZalewaNote Added: 0020633
2019-06-22 10:15ZalewaNote Added: 0020802
2019-06-22 10:15ZalewaAssigned ToZalewa =>
2019-06-22 10:15ZalewaPriorityhigh => none
2019-06-22 10:15ZalewaStatusassigned => confirmed
2019-06-22 10:15ZalewaTarget Version1.3 =>
2020-06-26 01:47WubTheCaptainNote Added: 0021471
2020-06-26 01:49WubTheCaptainNote Edited: 0021471bug_revision_view_page.php?bugnote_id=21471#r13215
2020-06-26 17:40WubTheCaptainNote Added: 0021479
2020-06-26 17:41WubTheCaptainPrioritynone => low
2020-06-26 17:45WubTheCaptainNote Added: 0021480
2020-06-26 17:45WubTheCaptainAssigned To => WubTheCaptain
2020-06-26 17:45WubTheCaptainStatusconfirmed => assigned
2020-06-26 17:49WubTheCaptainNote Edited: 0021479bug_revision_view_page.php?bugnote_id=21479#r13229
2020-06-26 17:51WubTheCaptainNote Edited: 0021480bug_revision_view_page.php?bugnote_id=21480#r13231
2020-06-26 22:06WubTheCaptainPrioritylow => none
2020-06-26 22:06WubTheCaptainStatusassigned => confirmed
2020-06-26 22:06WubTheCaptainAssigned ToWubTheCaptain =>
2023-01-25 22:11ZalewaTarget Version => 1.5.0

Notes
(0019464)
WubTheCaptain   
2018-09-01 10:26   
How about "simple" and "advanced" drop down menus for mode?
(0019468)
Zalewa   
2018-09-01 11:19   
That can be added too.
(0019630)
Zalewa   
2018-09-22 13:12   
(edited on: 2018-09-22 13:13)
Quote from "Zalewa"
2. It should be possible to drop into the game's title screen. Unfortunately each game here may be different in that regards. Let's at least ensure that the Doom trio can do that (Chocolate Doom, Odamex, Zandronum).


During implementation this has proven to require a substantial amount of work. I've split this into a separate, related ticket 0003505.

(0019795)
Zalewa   
2018-09-28 19:22   
I added point 3. to this ticket to resolve the offline game/create server duality.
(0019803)
Blzut3   
2018-09-29 04:59   
Is this something you still looking to target the 1.2 release given that we want to release sooner than later?
(0019812)
Zalewa   
2018-09-29 09:45   
(edited on: 2018-09-29 09:46)
Quote from Blzut3
Is this something you still looking to target the 1.2 release given that we want to release sooner than later?

I give you the answer to that question at the bottom of this post, but allow me to do some ramblings on the issue first.

I've done some investigation to the plugin code a few days ago and reached a conclusion that this may require yet another alteration of the GameHost implementation and more changes to MAIN_EXPORTed stuff. The plugins, basically, expect that the Create Game dialog will provide all the settings for them already filled in and that they should take those settings and pass them to the game.

At the same time, though, it's not entirely clear how a "turned off" setting should behave. Take the MOTD for example.

Solution A) If we turn off the MOTD field, the game should not receive the '+sv_motd' command at all. But what happens when the game has MOTD in the configuration file? The preconfigured MOTD will be displayed. Was this something that the user expected?

Solution B) If we turn off the MOTD field, the game receives '+sv_motd ""', ie. an empty value for MOTD. But what if the user disabled the MOTD field in hope that the game will use the preconfigured value?


What Doomseeker cannot do at the current moment is to not send the '+sv_motd' argument. Why user might want this argument not to be sent? To produce a cleaner command line, perhaps? To let the game use its own default? Regardless of the reason, turning off some of the settings is not what the plugins are ready for.

That said, in many cases setting a setting to an empty value is equivalent in user's mind to turning it off. The empty '+sv_motd ""' can be passed in right now without MAIN_EXPORT modifications by leaving the MOTD field empty. Therefore, if "turn MOTD field off" will mean '+sv_motd ""' then plugins will survive the change unmodified. If the user will want to maintain the preconfigured MOTD, they can copy the MOTD from the config file and paste it into Doomseeker's text box.

Now we reach at the problems with granularity. What if the user wants to disable the MOTD field but keep password fields? They're on the same page, and disabling the whole page will disable all of them.


What I'm getting at with these ramblings is that the "optional simplification" of the Create Game box is not a simple matter at all. This idea might need to linger a bit, evolve a bit through some intermediary changes and then maybe it can be reapproached with a clearer head. Let's agree to postpone it for now.

(0020543)
Zalewa   
2019-04-24 14:50   
Point number 3. is a stand-alone unit of work, so I created a child ticket 0003636 for it.

I'll reconsider point number 1. Adding "simple" and "advanced" modes to the box will probably render it unnecessary.
(0020607)
WubTheCaptain   
2019-05-02 19:04   
(edited on: 2019-05-02 19:06)
(Originally in reply to issue 0003636.)

Other ideas for enhancement (please report as new issues):
  • For purposes of consistency, I'm not sure if the window title should be prefixed with "Create Game – ". We generally prefix many window titles with "Doomseeker – ", however Create Game was always an exception and was always simply "Create Game". What do you think?
  • Give us Ctrl + S / Ctrl + O hotkeys for saving/loading game configuration files.
  • Replace "Close" button with Apply / Cancel / Close? Be aware I'm not convinced what the context for this would be, there's a risk of this becoming more confusing / complex than necessary.
  • One nice future improvement may be adding an appropriate icon (maybe a folder icon) to the left of "Load game configuration" in the new settings dropdown menu.


(0020633)
Zalewa   
2019-05-04 09:21   
Now it's time to finally implement the simple/advanced switch in the Create Game box. The challenge here is to make a simple mode that will not be useless.

The thing to figure out first is which of the current elements should not be present in the simple mode. Let's try to list them:

* Executable, logging, map list, modifier, entirety of the "Server" tab aside from the connect password, custom parameters, master/LAN broadcast and UPnP checkboxes - these should all be gone.

* LAN/Master broadcast and UPnP should be always enabled. UPnP port should default to 'let the game decide'.

* The executable for given play mode should be chosen as configured in program settings.

* Logging and map list should be off.

* The disabled "Server" tab options should default to empty values.

* Max. Clients and Max. Players spin boxes should be just one widget that sets both values.

* Game limits - keep them as-is? I dunno yet.

* Flags tab - these seem advanced but essential for correct game configuration. I'd opt to keep them as a separate tab.

* Zandronum's tab is very complex but also essential. I'd opt here to leave it as-is in the simple mode and instead provide a way for the user to select flag presets from a selection box. Useful presets can be difficult to figure out, though. Flags that will fit coop WADs (including compat. with Vanilla or Boom) will not fit other game modes. Moreover, should presets enforce all flags or just selected few? This topic is somewhat complex and it seems to me that it should be dealt with separately.
(0020802)
Zalewa   
2019-06-22 10:15   
This change is not that important for the release of 1.3. I also think its overall importance has been lessened with the offline/host separation (0003636). It shouldn't block the release.
(0021471)
WubTheCaptain   
2020-06-26 01:47   
(edited on: 2020-06-26 01:49)
I am looking to mock up an UI overhaul for Create Game in an image editor. My idea in my mind is quite different from my early notes and OP, but perhaps for the better so. My idea is multi-step, with "previous" and "next" buttons, with everything aligned to a grid for visual pleasure.

Maybe hear from me soon. I've also thought about placing a bounty on this bug (~€10 EUR, SEPA bank transfer only), once I have a concrete mockup to implement.

(0021479)
WubTheCaptain   
2020-06-26 17:40   
(edited on: 2020-06-26 17:49)
Stripping out the Create Game dialog entirely from Doomseeker – a server browser – to its own seperate executable is a plausibility I've also considered, because it is useful as standalone tool and the current implementation is buggy at best.

(0021480)
WubTheCaptain   
2020-06-26 17:45   
(edited on: 2020-06-26 17:51)
Self-assigning.
I have started doing mockups in Qt designer, while I evaluate the requirements for a new UI and find bugs in the old one (0003837, 0003838) to avoid past mistakes.
My first mockup uses QWizard, but I may need to re-evaluate my approach later as the requirements become more clear.
An early rough list of current requirements I've gathered is below.
Required by all:
- Game mode

Required by some:
- Difficulty
- IWAD

Supported by all:
- Custom parameters

Supported by some:
- Logging
- Map list (rotation)
- (RCON)
- (Zandronum tab)
- Rules tab
- Server tab
  - also depends on if playing online or offline

Server tab:
- URL (Odamex, Zandronum)
- E-mail (Odamex, Zandronum)
- Connect password (Zandronum)
- Join password (Odamex, Zandronum)
- RCon password (Odamex, Zandronum)
  - Also SRB2, but this is an UI bug