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

New world and start game UI improvements #57098

Closed
I-am-Erk opened this issue Apr 24, 2022 · 12 comments
Closed

New world and start game UI improvements #57098

I-am-Erk opened this issue Apr 24, 2022 · 12 comments
Assignees
Labels
Character / World Generation Issues and enhancements concerning stages of creating a character or a world Controls / Input Keyboard, mouse, keybindings, input UI, etc. Info / User Interface Game - player communication, menus, etc. (P3 - Medium) Medium (normal) priority Quality of Life QoL: degree to which players are comfortable, and able to enjoy CDDA

Comments

@I-am-Erk
Copy link
Member

I-am-Erk commented Apr 24, 2022

Is your feature request related to a problem? Please describe.

THIS WHOLE UI EXPERIENCE FEELS LIKE IT WAS SLAPPED TOGETHER BY DOZENS OF TALENTED AMATEURS OVER THE COURSE OF YEARS WITH NO CLEAR DESIGN PLAN.

As is ever the case, the new player experience is opaque and complex from the get-go. The opening splash menu of the game is hard to navigate and the menu options are over-inclusive and set up in no particular order.

Solution you would like.

There are a few spots we could improve this UI, but three major ones stand out.

Keybindings

Navigating the starting menus is a nightmare and I don't know how we've done it like this so long. Particularly on the phone, it just doesn't make sense. Up, down, side to side, < and >, tab, and shift-tab, space, and enter... WHAT?

I mean, friggin' look at this:
image
What's a new user supposed to make of this, when this is the first thing they're greeted with on the first page of their first new game?

Change Keybindings

We need to think about how we work out keybindings here and make them much less of a nightmare. There are a few ways we could go about this, but here is one possible setup.

  1. Standardize all submenus to a vertical layout, so up and down select between submenu options.
    This is insanity:
    imageimage

  2. Submenu options (such as the new world/select a world dialogue above) automatically become visible when you highlight the main option ([World] in this case). You don't press enter or space to open a submenu. This reduces a lot of keypresses and menu navigation confusion at no cost, since because of item 3 below, if this isn't the menu you want, you just keep on scrolling.

  3. Side-to-side arrows switch between main menu headings (world|special|setting etc). Since you don't have to open the submenus, there is no role for having to press "esc" to get out of one of the submenus.

  • As a consequence of the 'some menus are vertical, some horizontal" thing above, sometimes you can press 'down' to get out of a menu and sometimes you can't, sometimes you can press a 'side' arrow to get out, sometimes you can't. The more I write this up the more I wonder how we've been living like this.
  1. Press enter/spacebar or an appropriately highlighted hotkey to select a submenu option. Not a side arrow key, or tab, not ramming your face into the keyboard.
  2. Limit use of tabs to a single set of tabs. For example, worldgen currently has two sets of tabs and so the keybindings are especially hairy, especially since this is how we greet people:
    image
  • This should be fixed as described below, where we no longer have a "world mods" and "world options" tab. Instead, these are separate windows accessed from the "create world" screen, which is based on the current "finalize world" screen with some new options.
  1. If there are tabs, press "tab" to cycle between them. "tab" should always cycle you, and should never be used (as it currently is in worldgen) to signal that you are done. Pressing "tab" on the last tab takes you back to the first tab.
  • We may wish to keep the shift+tab "backtab" option, but it should be described as "shift+tab", not "BACKTAB", which is an unfamiliar term for a large number of users. However this is not a core feature as we should also avoid having so many tabs that you need a way to cycle backwards through them.
  1. On mobile, add "double tap to close menu" to the top of every submenu closed by pressing 'esc'.
  2. Remove most of the prompts about "do you really want to close this window", unless it's a window where significant user input is actually required. Particularly if we simplify world gen options, we don't need to confirm-prompt the user to close a window with a text box and a few words in it.

Extra suggestions:

  • We should remove "default world settings" from the options pane to reduce the number of tabs to cycle. Instead, if you are in the Advanced World Options menu, have a save these settings as default highlightable option.
  • Consider removing Autopickup and Safemode from the start screen options window. They just clutter the view for new players, editing them in-game is more contextually relevant anyway.
  • Consider moving "Tutorial" and "Defense" options into the "start game" menu. It would help people be aware of their existence. The very fact that so many people are not aware of their existence shows how ugly our menu is.
  • Later, we should revisit things like the modloader window, but if it's moved where it should be into an advanced options setting, and is no longer a tab with subtabs inside the world creation screen, then it will both be less complicated, and less of an issue as it is (as I've previously noted) the first friggin thing we show new players for some reason.

Mouse/Touchscreen support

Of all our menus and windows, this one would benefit the most from mouse support. We should be able to click menu options and use the scroll wheel. If we have mouse support then, on Android, we can remove the keybindings part entirely and make this a touchscreen menu.

Make the mod selection and advanced world options into things you must actively select.

When you start a new world, you should be prompted for the name of the world, and it should clarify that this is basically your savegame name. Then, you should have to press "A" or similar to open the current more detailed world settings, and "M" to select mods. Hide these tabs otherwise

Advanced option: Simple slider presets

We could potentially add a set of quick presets to this base screen, each with no more than 3 settings - default, low, or high. This would allow more accessible customization. My suggestions:

Enemy Difficulty:

  • "Easy" makes enemy health 80%, speed 90%, spawn rate 80%.
  • "Normal" - default
  • "Hard" makes enemy health 150%, spawn rate 150%.

Other Survivors

  • Rare: sets NPC spawn interval at 10 days
  • Normal:default
  • More: sets spawn interval to 1 day.

Cities

  • Rural: Sets size to 4, spacing to 8
  • Normal: default
  • Urban: Sets size to 16, spacing to 2

Start settings

First, fix the current bug where selecting "play now" opens the new world screen. Although I suppose if the 'new world' screen just prompts for a savegame name as above, it's not as big a problem.

Second, change the "start game" options into a vertical list, not a horizontal one.

Then, let's order the items thus, renaming and adjusting some options:

  • Play Now! (Recommended)
  • Quick Start
  • Random Game
  • Advanced Character Builder
  • Load and Edit Preset
    (edit: it occurs to me that this is upside-down since our menu starts from the bottom. Play Now! should be the first selection object, so the bottom of the list. I'm sure you can work it out.)

Play Now!

This option works like the current "play now (fixed scenario), but it will randomly choose a character template from the "less hard" default presets. See next section for details. I do think we should prompt the player for their name and gender, both here and in Quick Start... The same dialogue for that could also ask for your world/savegame name.

Quick Start

This is where the most work will go. Quick Start will keep the standard Evac center start, but adds a selection option to choose a difficulty ( I recommend only having "less hard" and "more hard" as options to prevent too much hair splitting over what qualifies as easy) and a "main" playstyle (combat, crafting, survival, and a few more). Less hard presets should always have some combat ability. The game then chooses from a list of preset characters with categorical information to tell us what difficulty and what playstyle they are. We do not let the player choose a specific preset, to prevent this option getting overly clogged.

Random Game

The current "play now" basically, this will choose a scenario and a character as we currently do.

Advanced Character Builder

This is the current character generation screen, no changes. Yet.

Load and Edit Preset

This could work as it presently does, but it would be nice if there were two lists, one for your own saved presets and one for the ones we add to use in Quick Start. Then, once you select a preset, you can edit it in Advanced Builder.

Describe alternatives you have considered.

Just making the advanced world options and mod menu separate,making the start game window vertical, and 1-5 on the keybindings fix would help a ton.

Additional context

I am marking this as a release blocker because several of the components do need urgent fixing before stable. The whole thing doesn't have to be done as I've described, although I don't think it's hard.

I have noticed previoulsy that our menus are hard to navigate but I usually just try to get off the splash screen quickly and not think about it. You may have noticed that, now that I thought about it, I am quite annoyed. Now that esotericist has made me look at this, I expect you will find me posting a few more rants about some of our UI stuff.

@I-am-Erk I-am-Erk added Info / User Interface Game - player communication, menus, etc. (P3 - Medium) Medium (normal) priority Controls / Input Keyboard, mouse, keybindings, input UI, etc. Character / World Generation Issues and enhancements concerning stages of creating a character or a world Quality of Life QoL: degree to which players are comfortable, and able to enjoy CDDA labels Apr 24, 2022
@Termineitor244
Copy link
Contributor

Wow... I never even considered how unfriendly and novice killer are the start menus until now... I do not know how I even started playing this game with all these problems.

@I-am-Erk
Copy link
Member Author

Yes, I was aware they were a problem, but only at the back of my mind until I started writing this up.

@Golfavel
Copy link
Contributor

I'll throw in my two cents: I had a friend try the game recently and the most trouble they seemed to have with navigation was not knowing what "BACKTAB" was, they otherwise got into the game fine.
I'm all for making the menus consistent, "Worldgen" especially still trips me up on occasion.

@Faalagorn
Copy link
Contributor

Faalagorn commented Apr 24, 2022

I'll throw in my two cents: I had a friend try the game recently and the most trouble they seemed to have with navigation was not knowing what "BACKTAB" was, they otherwise got into the game fine. I'm all for making the menus consistent, "Worldgen" especially still trips me up on occasion.

I figured it out, but indeed, I never seen it elsewhere than CDDA. I guess replacing it with Shift-Tab would be enough.

NVM, I'm blind, it's exactly what Erk suggested, either way, I'm 100% for it!

@Faalagorn
Copy link
Contributor

2. Submenu options (such as the new world/select a world dialogue above) automatically become visible when you highlight the main option ([World] in this case). You don't press enter or space to open a submenu. This reduces a lot of keypresses and menu navigation confusion at no cost, since because of item 3 below, if this isn't the menu you want, you just keep on scrolling.

We already have that for credits and MOTD, so I'm totally for it. I mentioned in Discord that previously, but isn't it technically possible to add the MOTD and credits files as jsons? I remember @BrettDong mentioning they need padding, but does it require them to be a *.txt files that have to be manually updated and aren't checked by anywhere else in code? We have padding in other json files already.

Extra suggestions:

* Consider removing Autopickup and Safemode from the start screen options window. They just clutter the view for new players, editing them in-game is more contextually relevant anyway.

I'd even go as far as to just leave the Options in there, the keybindings are best to be adjusted from the game too, especially since they are context specific.

* Consider moving "Tutorial" and "Defense" options into the "start game" menu. It would help people be aware of their existence. The very fact that so many people are _not_ aware of their existence shows how ugly our menu is.

I wholeheartedly agree, I wonder how many players miss tutorial altogether, it's so buried. Project Zomboid had it settled good.

@I-am-Erk
Copy link
Member Author

There is still some material here we could use, but the basics are good for stable I think.

@ZhilkinSerg
Copy link
Contributor

I am moving tutorial to top-level menu in #67678, but maybe we better move it to "New Game" menu instead?

@I-am-Erk
Copy link
Member Author

I'd still like tutorial and defense to be in new game yeah

@ZhilkinSerg
Copy link
Contributor

image

@I-am-Erk
Copy link
Member Author

That's pretty good, I think I'd go with "play defense mode" and "play tutorial" rather than "play now! (Defense mode) just because it gets to be a lot of the same words

Thanks!

@ZhilkinSerg
Copy link
Contributor

Okay, it would look like this (minus tutorial on top level), but I will do that in a separate PR - new game menu is bunch of spaghetti.

image

@I-am-Erk
Copy link
Member Author

I-am-Erk commented Jan 5, 2024

I think enough of this is done to close this now. There are still tweaks that could be made, for sure, but it's way better

@I-am-Erk I-am-Erk closed this as completed Jan 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Character / World Generation Issues and enhancements concerning stages of creating a character or a world Controls / Input Keyboard, mouse, keybindings, input UI, etc. Info / User Interface Game - player communication, menus, etc. (P3 - Medium) Medium (normal) priority Quality of Life QoL: degree to which players are comfortable, and able to enjoy CDDA
Projects
None yet
Development

No branches or pull requests

6 participants