Jump to content
The Dark Mod Forums
Sign in to follow this  
Byrgius

Improved mission menu

Recommended Posts

I know this is a very old topic, but is there still interest in improving the mission menu? I can help out with the scripting and C++ stuff if necessary.

Share this post


Link to post
Share on other sites
15 minutes ago, Springheel said:

The mission list was updated already since this topic.

If that means the mission list has been improved enough and everybody agrees, then I'll stop bringing it up. I do like the improved mission list mock-up you made, though. It's similar to the insightful mission wiki page, except all that information shown conveniently in TDM itself.

post-9-0-60212900-1440681930.jpg

  • Thanks 1

Share this post


Link to post
Share on other sites

The menus and mission list are fine for me.

What i always noticed is that missions download very differently. Some missions are downloaded within a few seconds, while some literally take minutes. Dunno if it is server related.

Share this post


Link to post
Share on other sites

All the menus underwent an update a few versions ago to improve both appearance and usability.   There's a limit to what we can do without a complete redesign from scratch, which I don't think anyone has the stomach for.

Share this post


Link to post
Share on other sites
1 hour ago, Springheel said:

All the menus underwent an update a few versions ago to improve both appearance and usability.   There's a limit to what we can do without a complete redesign from scratch, which I don't think anyone has the stomach for.

I'm not aiming for a complete redesign, instead I'm aiming for a smallest significant improvement if there is one. If I just add these lines to mainmenu_download.gui:516 in tdm_gui01.pk4/guis to show "mission type" in the mission details alongside release date (which has a fairly constant string width), right half of the type value aligned with the "More..." text:
            windowDef SAMDPropertiesType
            {
                rect        125,30,80,16
                text        "#str_04354"    // Type:
                AVAILABLE_MISSION_DETAIL_TITLE
            }

            windowDef SAMDPropertiesTypeValue
            {
                rect        152,30,190,16
                text        "gui::av_mission_type"
                AVAILABLE_MISSION_DETAIL_TEXT
            }
 

That's a subtle change to conveniently show the mission type in TDM without a complete redesign, right? I bet most won't even notice it unless they actively look for it. I know it's not useful yet, since it only shows Single or Multi, but we can probably expand that enum Type in Mission in darkmod_src 2.07 game/Missions/MissionManager.h:82 since only Multi is checked in two other files, unless this also requires changes in the DR repository.

I'm a total TDM and DR architecture newbie, so it's all probably way more complicated than it seems. You're the experienced dev. If you want to shoot this idea down again because you still think it's too complicated or a waste of time, I won't spend any more time trying. All good 🙂

mainmenu_download.gui

Share this post


Link to post
Share on other sites
Quote

If you want to shoot this idea down again

 

That quote was in response to peter_spy's "more up to date layout" comment.  I'm not sure what idea of yours you think I'm shooting down.

 

Share this post


Link to post
Share on other sites
12 hours ago, snowy said:

If you want to shoot this idea down again because you still think it's too complicated or a waste of time, I won't spend any more time trying. All good 🙂

mainmenu_download.gui 27.89 kB · 1 download

If the main TDM team doesn't want to include this, I could try to include it into my Unofficial Patch, which already includes several features that the main team didn't want, like e.g. exstinguishable oil lamps. As the UP also renames a lot of missions to be shown according to their campaign, we could just add a "type" line to the "darkmod.txt" file which has all the other infos that are displayed in the GUI, for your script to get the type info out of there...

Share this post


Link to post
Share on other sites
17 hours ago, Springheel said:

 

That quote was in response to peter_spy's "more up to date layout" comment.  I'm not sure what idea of yours you think I'm shooting down.

 

Then I misunderstood.

5 hours ago, wesp5 said:

If the main TDM team doesn't want to include this, I could try to include it into my Unofficial Patch, which already includes several features that the main team didn't want, like e.g. exstinguishable oil lamps. As the UP also renames a lot of missions to be shown according to their campaign, we could just add a "type" line to the "darkmod.txt" file which has all the other infos that are displayed in the GUI, for your script to get the type info out of there...

Thanks! But maybe if the final result is good enough, it'll get picked up. My goal is simple: the ability to see the specific mission type when selecting missions to download in TDM without changing the current layout.

I see showing specific mission types in TDM is no problem. I propose a fixed set of mission type keywords based on the wiki mission page, which I assume is already agreed upon by the TDM community: single, multi, bank, castle, city, church, experimental, tavern, prison, lostciv, horror, mansion, museum, caves, daylight, pagan, pirate, platforming, sewers, ship, rooftop, tomb, training and warehouse. TDM can automatically translate these keywords into the correct language in readable form by mapping, such as "bank" translating to "Bank Jobs" in TDM. Many translations are already available in the lang files, missing translations can be added. I can handle the coding, scripting and translations unless someone else prefers to do that.

Once that's done, these mission type keywords need to be added as attributes or field values to the missionlist.xml, which I assume is downloaded from the mission mirrors. I don't know if the XML is manually edited or generated from the darkmod.txt in the missions. For backward compatibility with older TDM versions, these mission types will need to be a new attribute or field in the XML. That's as far as I got. Any feedback to approve, disapprove or improve the plan is welcome. What do you think about this plan?

Share this post


Link to post
Share on other sites
Quote

I propose a fixed set of mission type keywords based on the wiki mission page, which I assume is already agreed upon by the TDM community

 

At the moment those keywords are just added by whoever adds the mission to the wiki.  There is no agreed upon system, and there is a lot of overlap and potential for confusion.  What is a "tavern" mission? How much of the mission has to include sewers in order to justify designating it a "sewer" mission? 

On the wiki, you could just add every keyword that applies (this is a city, rooftop, sewer, horror, mission) but that's not going to easily fit on the mission download menu.

 

Quote

we could just add a "type" line to the "darkmod.txt" file

 

Currently the mission download menu reads its data from the mission upload page on the TDM website.  Reading from darkmod.txt means that the data wouldn't be updated until the next TDM version was released, which isn't ideal.

 

I don't think there is any objection to adding more information to the download menu as long as two issues are successfully addressed:

1.  How can the data fit into the existing layout in a reasonable way?

2.  How will the data be input, read and/or updated?

 

Share this post


Link to post
Share on other sites
15 hours ago, Springheel said:

At the moment those keywords are just added by whoever adds the mission to the wiki.  There is no agreed upon system, and there is a lot of overlap and potential for confusion.  What is a "tavern" mission? How much of the mission has to include sewers in order to justify designating it a "sewer" mission? 

On the wiki, you could just add every keyword that applies (this is a city, rooftop, sewer, horror, mission) but that's not going to easily fit on the mission download menu.

From a design perspective, the mission types are a mixed bag consisting of locations (mansion, city), genres (horror) and game play types (platforming). Ideally we'd want to split these 3 groups and allow multiple tags in each group. This would cover both single missions and campaigns. It could possibly facilitate an advanced tag-based search if we'd ever want one. And maybe even something fancy, such as a mission recommendation system based on, for example, highest percentage overlap of type tags from already finished or downloaded missions. I wouldn't do those features in C++. Python has easier access to data science tools to do such things.

To keep it simple, I'd say the wiki mission type list has a high overlap with the TTLG mission type list that has been in use since 2006. So after 13 years of use, maybe it's just a good list. Mission authors can choose a single mission type that most represents their mission. It can be an artistic decision. A campaign simply remains a "campaign" and missions without a type remain a "single mission".

15 hours ago, Springheel said:

I don't think there is any objection to adding more information to the download menu as long as two issues are successfully addressed:

1.  How can the data fit into the existing layout in a reasonable way?

I added a screenshot of the mission download menu with mission type included in the existing layout, marked with red. Because the release date value is fixed in width, there's room for a type value next to it. Since type names are not finalized yet, we can make each type name fit in that type value space. This would always be a single value.

darkmod_mission_type_marked.thumb.jpg.22df0bed4dcec10eb87c22019fbae34b.jpg

15 hours ago, Springheel said:

2.  How will the data be input, read and/or updated?

I don't know how missions are uploaded. If it's a form, the mission author can select a mission type from a drop-down list. If it's a PM, maybe the mission author can simply mention the mission type in the PM. Because it's a fixed type list, I think we should exclude type from darkmod.txt. Otherwise we'd either have to allow a free type text that could deviate from the online types in the mission manager, or guarantee fixed types in the mission manager by matching the type text with the fixed type name list using something like Levenshtein distance.

I'd say the mission type is always read from the online mission mirrors. I think the idea is to help players to more easily select missions to download. Once a mission is downloaded, we can assume players have already made their preferred selection, so mission types in the offline mission manager are less important and more a nice-to-have.

I don't know how missions are updated, can I assume they are updated the same way they are uploaded?

Share this post


Link to post
Share on other sites
49 minutes ago, snowy said:

I added a screenshot of the mission download menu with mission type included in the existing layout, marked with red. Because the release date value is fixed in width, there's room for a type value next to it. Since type names are not finalized yet, we can make each type name fit in that type value space.

This looks good! Also above the "Type" line, we could add another line called "Horror: Yes/No" to warn the weak of heart :)!

@snowy: You seem to know a lot about GUI scripting, could you please look into adding a "Set mission to finished" feature for the downloaded missions page? Several people requested this to mark the training missions that can't be finished or to mark missions they don't want to play, e.g. horror missions...

Share this post


Link to post
Share on other sites
Quote

Because the release date value is fixed in width, there's room for a type value next to it

 

I'm not a fan of that position.  It's already a little squished and makes it harder to see the "More" button, and if the date has a lot of larger numbers, it will become even more squished.  If there is a general desire to add that to the main download page (rather than the extra details page), I would prefer replacing one of the existing fields.  The "Size" field seems like it is the least important at the moment--I doubt anyone is making decisions about which missions to download based on whether a mission is 10mb or 100mb.  Moving it to its own line would also eliminate the need to choose a single descriptor.

Quote

I don't know how missions are uploaded. If it's a form, the mission author can select a mission type from a drop-down list.

At the moment, missions are uploaded by team-members who have access to the online mission download archive.  I don't know what is involved in adding new information to that archive for existing missions.

 

  • Like 1

Share this post


Link to post
Share on other sites

 

22 hours ago, snowy said:

I propose a fixed set of mission type keywords based on the wiki mission page, which I assume is already agreed upon by the TDM community

I think TDM's mission type conventions were inherited from TTLG's, but I remember adding one of Dragofer's missions to the wiki under 'pirate' because that was the nearest existing category then, and he later edited it to 'ship' presumably for greater accuracy. So now of course we have two missions marked both Pirate and Ship (one of which is also Experimental). Yan's Test doesn't even have a category.

 

1 hour ago, Springheel said:

 

If there is a general desire to add that to the main download page (rather than the extra details page), I would prefer replacing one of the existing fields.  The "Size" field seems like it is the least important at the moment--I doubt anyone is making decisions about which missions to download based on whether a mission is 10mb or 100mb. 

 

I was on a slow-ish connection until recently, and while I don't think I was ever put off downloading a mission, larger ones certainly had me downloading them in the background while I did something else. Given that the UI allows multiple queued mission downloads at once, the total download size can also be of interest. (In fact, it would be nice if a calculated total were displayed; I don't notice one.) I'd go for release date as the least interesting field. But I'm inclined to think the only reason we don't have more missions listed with multiple types is that people haven't felt motivated to define missions in detail on the wiki page (why isn't Marsh of Rahenna marked Outdoor, for example?).

3 hours ago, wesp5 said:

Also above the "Type" line, we could add another line called "Horror: Yes/No" to warn the weak of heart :)!

I don't think it's a yes/no thing, even if the 'Horror FMs' category might imply that. The 'spiders and undead' column on the wiki has ended up with entries including 'Horror theme?' and 'Extra-natural entities' (me neither...). Meanwhile Patently Dangerous is simply marked as a city mission. And my own mission gets a listing for undead (non-hostile, seen for only two seconds) but not for implications about live(?) burial.


Some things I'm repeatedly thinking about...

 

- louder scream when you're dying

Share this post


Link to post
Share on other sites
5 hours ago, wesp5 said:

@snowy: You seem to know a lot about GUI scripting, could you please look into adding a "Set mission to finished" feature for the downloaded missions page? Several people requested this to mark the training missions that can't be finished or to mark missions they don't want to play, e.g. horror missions...

Sure, I can help with that. I'd add a new GUI "markMissionCompleted" command to darkmod_src 2.07 game/ModMenu.cpp:134 like this: (I should probably refactor this into its own re-usable function shared by SysCmds.cpp:157)

Quote

    else if (cmd == "markMissionCompleted")
    {
        // Get selected mod
        int modIndex = gui->GetStateInt("missionList_sel_0", "-1");
        CModInfoPtr missionInfo = gameLocal.m_MissionManager->GetModInfo(modIndex);
        
        // Mark mission as completed on all difficulties
        for (int i = 0; i < DIFFICULTY_COUNT; ++i)
        {
            missionInfo->SetKeyValue(va("mission_completed_%d", i), "1");
        }
    }

Then copy the "Refresh list" button from the tdm_gui01.pk4 guis/mainmenu_newgame.gui:151 and add the "completed" command before the "refresh" command. I added the files mainmenu_newgame.gui, mainmenu_defs.gui and ModMenu.cpp as attachment. It's a draft, of course. Feedback for better wording and button arrangement is welcome. Here's a screenshot with the new button marked with red to get this ball rolling:
darkmod_new_mission_finished_marked.thumb.jpg.da8bb35604dd098f8a9a909ef6447bcc.jpg

4 hours ago, Springheel said:

I'm not a fan of that position.  It's already a little squished and makes it harder to see the "More" button, and if the date has a lot of larger numbers, it will become even more squished.  If there is a general desire to add that to the main download page (rather than the extra details page), I would prefer replacing one of the existing fields.  The "Size" field seems like it is the least important at the moment--I doubt anyone is making decisions about which missions to download based on whether a mission is 10mb or 100mb.  Moving it to its own line would also eliminate the need to choose a single descriptor.

Yes, and if the type has multiple descriptors, we can truncate it down to a single line with the triple dots "...". I think mission size is important for people with a slower internet connection, but it shouldn't be a primary factor in choosing a mission. So I'd be fine with replacing size on the download page with multiple type descriptors. Mission size wouldn't be gone, it would still be visible for secondary evaluation on the "More..." page.

1 hour ago, VanishedOne said:

I don't think it's a yes/no thing, even if the 'Horror FMs' category might imply that. The 'spiders and undead' column on the wiki has ended up with entries including 'Horror theme?' and 'Extra-natural entities' (me neither...). Meanwhile Patently Dangerous is simply marked as a city mission. And my own mission gets a listing for undead (non-hostile, seen for only two seconds) but not for implications about live(?) burial.

When I think about it, the way I really use the "spiders and undead" column on the wiki is two-fold:

  1. To evaluate if there will be combat and un-blackjackable enemies in the mission. I really dislike combat and love to blackjack everything.
  2. To avoid missions with possible scare jumps or overly graphic scenery. I am one of the "faint of heart", I try walk the very fine line between good amount of suspense and too scary.

I would like to be able to see if a mission features any monsters. It'd be fine if that were visible on the "More..." page along with all the other mission details.

mainmenu_newgame.gui mainmenu_defs.gui ModMenu.cpp

Share this post


Link to post
Share on other sites
2 hours ago, VanishedOne said:

I don't think it's a yes/no thing, even if the 'Horror FMs' category might imply that.

I worded it that way because Springheel is right in that having too much text there would make it cluttered. I don't have TDM installed on the PC I am on right now, what is behind the more category? Could this be removed? Because I don't see anyone clicking this for every mission anyway.

Edited by wesp5

Share this post


Link to post
Share on other sites
55 minutes ago, snowy said:

Sure, I can help with that. I'd add a new GUI "markMissionCompleted" command to darkmod_src 2.07 game/ModMenu.cpp:134 like this:

Cool! But I would suggest to move the new button down the be on the same hight as "Refresh list" while moving that below "Download Missions" so the new button is right below "Main menu". Maybe rename "Refresh list" to "Refresh mission list" and "Finished" to "Set finish" as well...

Share this post


Link to post
Share on other sites
1 hour ago, wesp5 said:

Cool! But I would suggest to move the new button down the be on the same hight as "Refresh list" while moving that below "Download Missions" so the new button is right below "Main menu". Maybe rename "Refresh list" to "Refresh mission list" and "Finished" to "Set finish" as well...

Let's try that. I did switch buttons "Set Finished" and "Main Menu" around, because I think a back-button should always be on the bottom row. Also I think it would be best to keep button names as brief as possible, so I kept "Refresh List" the same name. See files in attachment and a screenshot:
darkmod_new_mission_finished_marked.thumb.jpg.4839560249cd5131c26ddd4f3a675e9a.jpg

mainmenu_newgame.gui mainmenu_defs.gui

Edited by snowy

Share this post


Link to post
Share on other sites
22 hours ago, wesp5 said:

I don't have TDM installed on the PC I am on right now, what is behind the more category? Could this be removed? Because I don't see anyone clicking this for every mission anyway.

Clicking 'more...' leads to the mission's summary text and preview screenshots, and I do check it before downloading unless I already know from the website what the mission's about.

22 hours ago, snowy said:

When I think about it, the way I really use the "spiders and undead" column on the wiki is two-fold:

  1. To evaluate if there will be combat and un-blackjackable enemies in the mission. I really dislike combat and love to blackjack everything.
  2. To avoid missions with possible scare jumps or overly graphic scenery. I am one of the "faint of heart", I try walk the very fine line between good amount of suspense and too scary.

I would like to be able to see if a mission features any monsters. It'd be fine if that were visible on the "More..." page along with all the other mission details. 

I didn't have the impression the 'spiders and undead' column was ever meant to be strongly indicative of combat/non-blackjackability. Unavoidable combat is rare in TDM (The Transaction is the only example that springs to my mind, unless you count assassinations as combat), and élite guards also can't be blackjacked (ditto for the recently added fire elemental). It's true though that 'monster levels' have been a point of differing tastes ever since TDP.


Some things I'm repeatedly thinking about...

 

- louder scream when you're dying

Share this post


Link to post
Share on other sites
On 8/15/2019 at 9:28 PM, snowy said:

Let's try that. I did switch buttons "Set Finished" and "Main Menu" around, because I think a back-button should always be on the bottom row. Also I think it would be best to keep button names as brief as possible, so I kept "Refresh List" the same name.

Okay, I'm back from holiday now and could finally test it. I disagree about the "Refresh List" part, "Refresh Mission List" fits perfect and explains better what is meant, so I fixed that. But the main problem is that "Set finished" does nothing yet! This button would need to set the mission to finished in the missions.tdminfo file. Also for now it isn't correctly implemented for localisation, you need to assign a string instead of using direct text...

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, wesp5 said:

Okay, I'm back from holiday now and could finally test it. I disagree about the "Refresh List" part, "Refresh Mission List" fits perfect and explains better what is meant, so I fixed that. But the main problem is that "Set finished" does nothing yet! This button would need to set the mission to finished in the missions.tdminfo file. Also for now it isn't correctly implemented for localisation, you need to assign a string instead of using direct text...

Welcome back and thanks for the feedback. I know about the localisation string, but I didn't want to add new words to several lang files without settling on the words first.

Did you add the code changes from my game/ModMenu.cpp code to darkmod_src, recompile and use the new binary from the 2.07hotfix branch? If you see the "Set finished" button and it does nothing, then this code is missing in the darkmod binary.

  • Like 1

Share this post


Link to post
Share on other sites
16 minutes ago, snowy said:

Did you add the code changes from my game/ModMenu.cpp code to darkmod_src, recompile and use the new binary from the 2.07hotfix branch? If you see the "Set finished" button and it does nothing, then this code is missing in the darkmod binary.

No, I didn't because I had hoped for a solution that doesn't require a recompilation. In that case the feature can only be added to the base mod and not my patch! So will this be done in the next TDM release?

Edited by wesp5
  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...