Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Campaign Menu GUI design #4543

Open
nemaara opened this issue Nov 3, 2019 · 20 comments
Labels

Comments

@nemaara
Copy link
Contributor

@nemaara nemaara commented Nov 3, 2019

I'm posting this as a separate issue so we can keep track of things in one place, as per our discussion on discord (tagging @Pentarctagon, @stevecotton, @Vultraz). Basically this is for cleaning up the campaign menu a little bit and moving the Tutorial here as well. Items to discuss or take care of are:

  1. Making "save random seed" and "PRNG" modifications in the base screen (and removing the tick box for save random seed)
  2. Making the campaign image a backdrop and embedding the difficulty menu into the campaign menu (#4543 (comment)).
  3. (Partially complete) Putting Tutorial as the first entry on the campaign list (thus doing away with the button in the title screen). See here: #4566. The C++ still needs to be cleaned up.
  4. (Partially complete) Cleaning up the sorting (see a commit here
    903739f, also sorting alphabetically may not be meaningful).
  5. (Done) Moving campaign filtering to a different spot (d53ca60).

Edit: title screen issue is #4531

@Pentarctagon

This comment has been minimized.

Copy link
Member

@Pentarctagon Pentarctagon commented Nov 4, 2019

The filtering may not be a good thing to get rid of, given what @Konrad22 said on Discord about him actually having 100+ campaigns installed.

@shikadiqueen

This comment has been minimized.

Copy link
Member

@shikadiqueen shikadiqueen commented Nov 4, 2019

The Search box (which did briefly go away) is now in the top right corner sharing a row with the dialog caption, since this seems to make more sense as a general design approach across the board and makes it less obtrusive overall (commit d53ca60).

@shikadiqueen

This comment has been minimized.

Copy link
Member

@shikadiqueen shikadiqueen commented Nov 5, 2019

Also worth noting is that I set custom labels for the OK buttons (now "Play") on the Campaigns menu proper and the difficulty selection dialog (commit 46dbbc0). Somehow I was under the impression this already was the case before — or perhaps I intended to implement the same change early in 1.13.x and forgot about it entirely.

The reason I'm mentioning this here is that I feel it would make sense to have as part of a more unified design approach with these major dialogs a larger "primary action" button (in this case Play) like it's currently done in the MP Create Game screens and the Add-ons Manager.

@nemaara

This comment has been minimized.

Copy link
Contributor Author

@nemaara nemaara commented Nov 6, 2019

As discussed on discord, it might be nice to make the campaign image a backdrop and make room to embed the difficulty menu into the campaign menu itself. So as an idea, we could have the red circled area be the difficulty menu, the blue circled area contains the campaign text, and the image is the background behind it.

image

@stevecotton

This comment has been minimized.

Copy link
Contributor

@stevecotton stevecotton commented Nov 6, 2019

@shikadiqueen

This comment has been minimized.

Copy link
Member

@shikadiqueen shikadiqueen commented Nov 6, 2019

What's the controversy, exactly?

Wesnoth is a bit unique with its current approach of having to select from a new set of options after picking a campaign, and not in a good way. UI design as a whole has been moving away from having sequences of dialogs for a single task since the early 2000s. Even just switching to a new page is acceptable, but having this major dialog disappear from the screen to be replaced with a tiny one (that can be dismissed to go back to the major dialog again) is just suboptimal.

@nemaara

This comment has been minimized.

Copy link
Contributor Author

@nemaara nemaara commented Nov 6, 2019

Also it'd be one less click to get into the game, it seems weird to me that you have to go to a new screen just to select the difficulty. Usually that's on the same screen as the campaign selection dialog.

@stevecotton

This comment has been minimized.

Copy link
Contributor

@stevecotton stevecotton commented Nov 6, 2019

When the player is selecting which campaign to play, this suggestion would mean that they choose something on the left hard side, and then have to skip over the difficulty UI in the middle to read the description of the campaign on the right hand side. The information about what type of campaign this is will influence their choice, but I doubt the names of the difficulty levels will.

What is suboptimal about having a separate dialog?

What's the controversy, exactly?

I meant the "I'm kinda trying to find an excuse to make the difficulty menu have more volume I guess", "Before [another dev] decides to replace it all with a set of radio buttons".

@shikadiqueen

This comment has been minimized.

Copy link
Member

@shikadiqueen shikadiqueen commented Nov 6, 2019

What is suboptimal about having a separate dialog?

"UI design as a whole has been moving away from having sequences of dialogs for a single task since the early 2000s."

I meant the "I'm kinda trying to find an excuse to make the difficulty menu have more volume I guess", "Before [another dev] decides to replace it all with a set of radio buttons".

If you had seen the conversation I was alluding to, from the same channel, you'd have noticed that the (very) early proposal in question was shot down, by me, in fact.

@Konrad22

This comment has been minimized.

Copy link
Contributor

@Konrad22 Konrad22 commented Nov 6, 2019

What's the value to the player of moving the difficulty select into the campaign menu?

If you decide not to play this campaign (maybe you doubleclicked the wrong campaign?) you don't have to search anew, you can just keep scrolling instead. Which would be pretty nice.
Right now it's like this:
Search for your campaign, perhaps you are even scrolling there.
Select a campaign and click okay / doubleclick a campaign.
Oh no, it's the wrong campaign! Or maybe you just want to reread what this campaign is about...
Cancel selecting the difficulty.
Look at the fresh campaign selection dialog.
Repeat.

(To be fair, this was even worse before the filter was added.)

Now, I think that makes the value for the play of moving the difficulty select into the campaign menu pretty clear.

@stevecotton

This comment has been minimized.

Copy link
Contributor

@stevecotton stevecotton commented Nov 6, 2019

"UI design as a whole has been moving away from having sequences of dialogs for a single task since the early 2000s."

That's a general trend, but it doesn't say why it's correct in this specific case. In this case it adds more information to a screen that already has a lot of information.

Re the "controversy" - yes I saw that the radio-button suggestion was shot down. It's the radio-button change and a few committed-and-then-reverted changes that I was calling controversial, not this one.

@Konrad22 if you pick the wrong campaign then this change will mean that you're already in the starting dialogue of the campaign's first scenario, so I don't reach your conclusion.

@Konrad22

This comment has been minimized.

Copy link
Contributor

@Konrad22 Konrad22 commented Nov 6, 2019

@stevecotton If I pick the wrong campaign, then this change will mean that I can't accidentally doubleclick a campaign. Tbh I don't even know why I added 'click okay' because I do not ever do that and it's certainly harder to do accidentally than doubleclicking.

@stevecotton

This comment has been minimized.

Copy link
Contributor

@stevecotton stevecotton commented Nov 7, 2019

@Konrad22 that seems a reason to remove that double-click, but I still don't see how it leads to your conclusion.

@nemaara

This comment has been minimized.

Copy link
Contributor Author

@nemaara nemaara commented Nov 9, 2019

I just realized that the campaign difficulty dialog is used for start of scenario saves as well. So for now, why don't we leave that as a later item on the list and focus on the first few points first?

@CelticMinstrel

This comment has been minimized.

Copy link
Member

@CelticMinstrel CelticMinstrel commented Nov 9, 2019

Random suggestion: the magic value rank=tutorial means that it's ranked first if not completed, but last if it is completed. Alternatively, it's ranked first if you've never completed any campaign, otherwise it's ranked last.

@stevecotton

This comment has been minimized.

Copy link
Contributor

@stevecotton stevecotton commented Nov 9, 2019

I'm not going to have time to work further on this this weekend, but the following will put it in the campaign list. Please would someone take over and improve the prose?

[campaign]
    id=Tutorial
    name= _ "Tutorial"
    icon="data/campaigns/tutorial/images/units/quintain.png~RC(magenta>blue)"
    image="data/campaigns/tutorial/images/units/quintain.png~RC(magenta>blue)~XBRZ(4)"
    #po: the abbreviation is longer than the name, this matches the old save-file names
    abbrev= _ "Wesnoth Tutorial"
    rank=1
    # put it first when sorted by date (probably no reason for this)
    year="1000 BW"
    define=TUTORIAL
    first_scenario=tutorial
    # Should this only describe the campaign, could we put some help text
    # about the campaign menu (laurels, etc) in it?
    description= _ "Start a tutorial to familiarize yourself with the game"
    [difficulty]
        # The difficulty-select dialog won’t be shown to the player, as there's
        # only one difficulty. However, if the [campaign] tag doesn't include
        # it then a silver instead of gold laurel will be shown in the
        # campaigns menu. The label and description will be shown in the
        # load-game dialog.
        define=NORMAL
        default=yes
        label= _ "Tutorial"
        description= _ "Medium"
    [/difficulty]
[/campaign]

If you don't have an up-to-date C++ build, when you try to start it the engine won't find the first scenario.

@GregoryLundberg

This comment has been minimized.

Copy link
Contributor

@GregoryLundberg GregoryLundberg commented Nov 9, 2019

I like @CelticMinstrel's suggestion.

rank=tutorial sort to top on all orderings if the tutorial has not been completed and no campaigns won. sort to bottom of all orderings if the tutorial has been completed or any campaign won.

If more than one campaign has rank=tutorial then order among them using the current sort (name, year, whatever) but all appear at the top or bottom.

So: sort as normal then do a post-sort pass to move all rank=tutorial to the top or bottom.

@stevecotton

This comment has been minimized.

Copy link
Contributor

@stevecotton stevecotton commented Nov 11, 2019

If we had more than one tutorial, then we'd probably want to have "Basic Tutorial" before "Advanced Tutorial", and for that to work in every language. And the Advanced Tutorial should still be visible if the Basic Tutorial is complete.

I suggest a new attributed or key, such as unranked_if_have_completed_campaign="rank > 1".
or

# Basic Tutorial wants to be hidden if any campaign (including itself or Advanced Tutorial is complete)
[campaign]
    id=basic_tutorial
    [show_if]
        [filter_campaign]
            completed=yes
        [/filter_campaign]
    [/show_if]
    ....
[/campaign]

# Advanced Tutorial should still be at the top even if Basic Tutorial is complete
[campaign]
    id=advanced_tutorial
    [show_if]
        [filter_campaign]
            completed=yes
            [not]
                id=basic_tutorial
            [/not]
        [/filter_campaign]
    [/show_if]
    ....
[/campaign]
@nemaara

This comment has been minimized.

Copy link
Contributor Author

@nemaara nemaara commented Nov 11, 2019

If we had more than one tutorial, then we'd probably want to have "Basic Tutorial" before "Advanced Tutorial", and for that to work in every language. And the Advanced Tutorial should still be visible if the Basic Tutorial is complete.

This sounds a lot like we could honestly split the campaign menu into two tabs, one for campaigns, and one for tutorials (not sure how feasible this is). I'm not a fan of having two tutorials in the campaign menu itself - instead, we could always leave the tutorial at the top like you initially suggested, then when the first two scenarios are complete, prompt the player to say "you may continue onto advanced tutorial scenarios or go to play campaigns".

@CelticMinstrel

This comment has been minimized.

Copy link
Member

@CelticMinstrel CelticMinstrel commented Nov 12, 2019

I don't like hiding the tutorial when it's completed. What if someone didn't quite get it the first time around and wants to play through it again? Or, they come back after a long time away and want a refresher?

Splitting the menu into two tabs is definitely feasible. If you want multiple tutorials, it would also be possible to use difficulty selection to choose between them - so you select the tutorial, then have a choice of Basic or Advanced (EASY and MEDIUM), for example.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
7 participants
You can’t perform that action at this time.