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

Add "Wait" to Next unit button, Next unit cycles #12799

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

sulai
Copy link
Contributor

@sulai sulai commented Jan 12, 2025

When the Giant Button is in the "Next Unit" phase, show a second button, to allow the user to

  • either cycle through the units
  • or give them the wait order

Some Reasoning (details see discussion threads):

A considerable part of the community is not aware the Giant Button currently marks units as "done" (due=false). Some of those who are aware would prefer it not to set units as "done", as there is the risk of accidentally doing so. Generally I agree with the standing that the Giant Button should only help navigating in the UI pointing to the "things to do", but not actually alter game state.

Discussed on Discord and in #12785.

5197487397342932935

@itanasi
Copy link
Contributor

itanasi commented Jan 12, 2025

I would also point out that this is changing the Big Button saying Next Unit so that it now won't mark them as due=false which is a change from current behavior. I'm not sure if we have full consensus on that, but this does make an elegant consistent UI.

@yairm210
Copy link
Owner

Visual changes should be accompanied with a screenshot :)

@sulai sulai marked this pull request as ready for review January 12, 2025 17:08
@sulai
Copy link
Contributor Author

sulai commented Jan 12, 2025

I changed the Wait icon and added a Screenshot 👍

@itanasi
Copy link
Contributor

itanasi commented Jan 12, 2025

I would also like to see updates to the Civilopedia documentation. Idle Units and World Screen are the big points.

@itanasi
Copy link
Contributor

itanasi commented Jan 12, 2025

Oh, and since yairm usually uses the title in the changelog, you should mention the change to the Next Unit behavior in the title

@sulai sulai changed the title Add "Wait" to Next unit button Add "Wait" to Next unit button, Next unit cycles Jan 12, 2025
@najevi
Copy link

najevi commented Jan 13, 2025

It seems to me that you are trying very hard (and for some undisclosed reason) to make that button (20) piece of screen real estate (between Overview and Notifications) become the only place a user should need to tap/click.
I don't understand the motivation behind this when you also spend 7 of the 12 most prominent legend (number, description) pairs of WorldView Screen describing the UI components that are supposed to be used to manage units. viz. items 7-12 highlighted in this screenshot

Screenshot (115)

This prominence makes sense to me. After all, the phase of a turn that can best be described as "managing units" is where a user spends most of their WorldView screen-time, wouldn't you agree?

With reference to what @sulai wrote:

Generally I agree with the standing that the Giant Button should only help navigating in the UI pointing to the "things to do", but not actually alter game state.

If indeed we all agree in principal that button (20) should direct a user's attention to the activities a user ought to be focused on within the current phase of a turn then why not simply direct the user to the relevant already-existing user interface panes/menus/buttons that are dedicated to managing units? viz. "Unit Action Buttons" and "Unit/City Info pane". That's it! No feature creep!! Just a prompt/guide/direction/instruction as to where the user ought to focus their attention.

  • You have not yet put forward any logical argument for adding unit-navigation and unit-action buttons to that piece of screen real estate that is diagonally opposite the already existing UI components specifically designed for the very same two tasks you are proposing herein to redundantly duplicate!!

I would also point out that this is changing the Big Button saying Next Unit so that it now won't mark them as due=false which is a change from current behavior. I'm not sure if we have full consensus on that, but this does make an elegant consistent UI.

I do agree that ceasing the due=false state change is an improvement. I cannot agree that any other aspect of what is being proposed herein makes the UI either elegant or consistent. It perpetuates a UI design flaw for no rational reason.

Room for improvement

I agree that both the Unit/City Info pane and the Unit-action menu need further work however, those two UI components (and the numerous buttons that constitute them) are without question the most appropriate place a user ought to be guided to for the phase of the turn that we are discussing here.

By all means leave an appropriate reminder message in that area of button (20). A message to the effect that "managing units" has not yet been completed. (Promising discussion of informative messaging to that effect is going on at #12785)

It seems irrational to select an arbitrary subset of the unit-actions and unit-queue navigation-buttons and essentially duplicate them on the very same WordlView screen where the already-existing buttons are still visible!

  • Am I really the only person who sees this as foolish?
  • The argument/reason, "because it (whatever 'it' may be) has always been that way" is not a logical argument ... it is tribal dogma.

With regard to the Wait/Skip unit action ... that unit action button has been missing from it's rightful place among all of the other "Unit Action Buttons" since, well, forever. That flaw should be the subject of this report and not the proposed band-aid measure that perpetuates a fundamentally flawed and hysterically historically overlooked UI design mistake.

If a prominent place for this one unit action needs to be found then we ought to be discussing where within the dynamic menu of unit-actions that Wait action should consistently appear even as the user cycles through the unit-queue.

  • I'd very much like to read a well reasoned argument why the misuse of button (20) should continue to be overlooked.

@itanasi
Copy link
Contributor

itanasi commented Jan 13, 2025

Because having a single location to "progress" your turn is a good thing in UI design.

If you want to discuss adding other useful features elsewhere please do it in another thread.

@najevi
Copy link

najevi commented Jan 13, 2025

Understood. The following 3 questions represent me trying even harder than I had thought I had been to be humble, kind and collaborative within the scope of this thread.

  1. Why duplicate the equivalent functions of

    • one button from the Unit/CityInfo pane (viz. Next unit) and
    • another button from the Unit Action Buttons (viz. Wait)
  2. Is there a way to guide the user to those already existing buttons?

  3. Can those already existing buttons be made any more prominent than they presently are?

@sulai
Copy link
Contributor Author

sulai commented Jan 13, 2025

I updated the Tutorial / Civilopedia. The PR seems to be ready, and I think it's a tiny step into the right direction.

By all means leave an appropriate reminder message in that area of button (20). A message to the effect that "managing units" has not yet been completed. (Promising discussion of informative messaging to that effect is going on at #12785)

I'm not opposed to that idea. We could just show a info pane right next to the "End Turn" button, which says "12 units due". We could just remove the "Next Unit" phase. The only downside is, on Android it feels better to hit that big button to cycle units. And I suppose on Desktop, hitting space to cycle idle units is pretty good also 🙂

@najevi I appreciate your input, but I can't currently afford the time and effort required to try a holistic approach as you propose. If you really want to dive into that, maybe creating a click dummy is a way to convey your ideas better and let people try it out interactively. It might also help to manifest your vision and iron out problems your idea might still have.

@sulai
Copy link
Contributor Author

sulai commented Jan 13, 2025

I do agree that ceasing the due=false state change is an improvement. I cannot agree [on] any other aspect

The reason for the "Wait" button is that we need to give the player a choice. Otherwise new players are stuck in an endless loop forever and can't end their turn. We can't expect new players to know what they are supposed to be doing, for example, command units to Wait. That's why we show that "Wait" button right next to the Giant Button.

@itanasi should we still show a one-time dialog in case new players keep cycling their units and don't use the "Wait" button?

@sulai
Copy link
Contributor Author

sulai commented Jan 14, 2025

@najevi I wrote an alternative PR #12814, which covers your use case regarding the NextUnit button. I personally think the new PR works better than the 2-button approach. It's simple and effective 😃

@itanasi
Copy link
Contributor

itanasi commented Jan 14, 2025

1. Why duplicate the equivalent functions of
   
   * one button from the Unit/CityInfo pane (viz. Next unit) and
   * another button from the Unit Action Buttons (viz. Wait)

Because having a Big Button that directs you to progress the game is a Good Thing in UI design. And duplication isn't an issue. Often having multiple ways to do the same thing is helpful. Plus the arrows in the Unit/CityInfo pane DO NOT duplicate behavior. Those arrows cycle through all available units that have no fixed orders (Idle Units). Next Unit should move to any unit with due=true eg no current orders and no Wait command (Due Units).

Plus still having a Wait Unit Action button in case the user unchecks Check for idle units can be handy. Or we remove it if you're still concerned.

@itanasi
Copy link
Contributor

itanasi commented Jan 14, 2025

@itanasi should we still show a one-time dialog in case new players keep cycling their units and don't use the "Wait" button?

Fundamentally it seems a lot of the "problem" is people feeling like the UI isn't explained enough to a new player. This is fixable by a tutorial popup. We unfortunately can't really take advantage of hover text.

UI elements by necessity should change the game state and combining ones that would go together to have click efficiency is a Good Thing in UI.

@sulai
Copy link
Contributor Author

sulai commented Jan 14, 2025

After trying this approach, I came to the conclusion that it does have its drawbacks. One of those problems is that we can't easily switch the behavior of the two buttons by a setting (as being advocated for by @itanasi), because the "Wait" button is oftentimes getting disabled during the NextUnit phase, which in my mind would result in a bad UX if we assigned the "Wait" behavior to the Big Button. #12814 tackles this much better.

@sulai
Copy link
Contributor Author

sulai commented Jan 14, 2025

the UI isn't explained enough to a new player. This is fixable by a tutorial popup.

The new PR #12814 provides clarity, for both behaviors the button could possibly have.

UI elements by necessity should change the game state and combining ones that would go together to have click efficiency is a Good Thing in UI.

I see your point and I had the same opinion only days ago. But after trying it myself, I have to agree that it feels much better if the Big Button doesn't do changes to the game state. However, the new PR supports the idea to have a setting for that.

@yairm210
Copy link
Owner

I'm sorry, there's Too Much Text on this issue for me to follow
If both you and Itanasi agree on this I'll merge it
@itanasi what say you?

@itanasi
Copy link
Contributor

itanasi commented Jan 14, 2025

@yairm210 No, discussion is ongoing and the author wishes to withdraw it right now.

because the "Wait" button is oftentimes getting disabled during the NextUnit phase

When would this happen? I seem to be missing how that would happen if coded how I'm imagining it.

Lastly as I mentioned in the other PR, the Discord poll was pretty overwhelmingly against having just the Big Button around and it doing Cycling only. The implementation here is a bit trickier, but having two prominent choices next to each other makes it much more obvious they're associated and to make one of two choices.

If you wanted, perhaps a merge of both if you think the text feedback is helpful/crucial? Main cost is the screen space.

@sulai
Copy link
Contributor Author

sulai commented Jan 14, 2025

It could very well be that you imagine it different than I do. If we switched the behavior and the big button does "Wait" then how to handle the case when you oftentimes can't give any wait command? This is the case when no unit is selected or the unit has been given a command. I imagine the big button being inactive or changing it's text/meaning, both of which don't feel as consistent as it could/should. That's what makes me shy away from switching the meaning of the buttons in the 2 button solution. It works very well in the new PR though.

having two prominent choices next to each other makes it much more obvious they're associated and to make one of two choices.

I do agree on that point. Still, switching the meaning of the buttons is not going to be very consistent. At least how I see it. Let me know if you had another implementation in mind. Also, feel free to check out the PR and try to switch the meaning of the two buttons. I think it's not feasible to do so while staying consistent with the UI.

@itanasi
Copy link
Contributor

itanasi commented Jan 14, 2025

This is the case when no unit is selected or the unit has been given a command

If no unit is selected, we can still use Next Unit to select one. If the selected unit already has orders and no further actions (doesn't need to Wait), then Wait doesn't do anything anyways and can still be active. Pressing it sets due=false, which it already is, and we select the next Due Unit.

This does mean that the button has to transition from No Unit Selected mode, showing Next Unit like it does now, and then moving Next Unit (or just Next as the text) to the smaller button. But to me that's minor and I'm doubtful a player would mash the button. If we need to distinguish them, we can also use a different verb. Next Unit to select a unit, and when it moves change the verb to Cycle. Wait as a verb is still consistent across all UI.

@sulai
Copy link
Contributor Author

sulai commented Jan 14, 2025

That's what I'm talking about. The big button would need changing text all the time during one phase. Then having the big button let a unit wait when it's already waiting, or even let a unit "wait" when in reality it's already doing another thing... If we wanted to suppress that we'd need to either disable it, but then to progress your turn you'd need to press the small button, while progressing should be done by the big button. Or change text to "next unit", but the we have the buttons next to each other doing the same thing.

Unfortunately it doesn't work out well from the UX perspective.

@itanasi
Copy link
Contributor

itanasi commented Jan 14, 2025

I see what you mean, I just disagree it's as big of an issue. Moving from unselected to unit selected is sorta a phase transition.

How about you mark this as a Draft, we move forward with the other PR idea, and if I have free time I'll take a crack at it and then you can play with it and see how it feels. I don't think we'll solve this with theory.

@sulai
Copy link
Contributor Author

sulai commented Jan 14, 2025

I think that's a good idea. 👍

@sulai sulai marked this pull request as draft January 14, 2025 21:48
@sulai
Copy link
Contributor Author

sulai commented Jan 15, 2025

If you wanted, perhaps a merge of both if you think the text feedback is helpful/crucial? Main cost is the screen space.

Giving this a second thought, I think you made a strong point here. Let's try this out after the other PR got merged.

My train of thought:

  • new players need that button there because they are not aware yet that "Waiting" is an option, and the vicinity makes it very clear that this is an option
  • experienced players could still put this extra Wait-button to good use, because of its fixed screen position! The Wait button within the unit command panel does not have a fixed screen position and trying to make it fixed works against the current use-frequency-based approach.
  • The resolve that struggle with the switched buttons, we could just not show a second button when settings.cycling=false. The button would just be labeled "Next Unit" as it has always been. With the big difference that the "x units due" label now makes it crystal clear when units get skipped. If more experienced players don't like auto-skipping? Time to go to the settings 🙂
  • main cost is screen space (except when settings.cycling=false)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants