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

7th anniversary UI meta-issue #570

Open
BenLubar opened this issue Apr 23, 2023 · 10 comments
Open

7th anniversary UI meta-issue #570

BenLubar opened this issue Apr 23, 2023 · 10 comments

Comments

@BenLubar
Copy link
Contributor

Alien Swarm: Reactive Drop's user interface is aging, and some parts are faring worse than others. For the 7th anniversary, we intend to redesign parts of the user interface to solve problems new players face with not knowing how to interact with the game and veteran players with the game giving incomplete, incorrect, or irrelevant information.

This issue is for planning what we need to work on, and then linking to the issue for that specific thing being worked on.

Improvements

  • Translatable disconnect reasons
  • Multiple medal slots
  • Make closed captions not look like they're from 1998

Revamps

  • Main Menu
  • Collections/Inventory
  • Options
  • Server/Lobby Browser
  • Leaderboards/Stats/Achievements
  • Briefing: New briefing layout #520
  • HUD

To consider

  • AS2k4 themed UI option
  • Option to use the UI that existed prior to this change
  • Adjustable layout? (That is, fine-grained settings like Dota 2's "minimap on right")
@WhenTanksFly
Copy link

WhenTanksFly commented Apr 24, 2023

Egg color on minimap

Unless the original intention behind dark blue color is to make them less visible on the usual blue minimaps or to account for some sort of color blindness, I would propose changing it to a different shade of green from parasites. I use asw_blip_color_parasite_egg 170 255 0

Advanced settings

  • I don't see a back button when cycling the categories, that would be a good alternative to having to wrap around the list.
  • Increase the "Always Show" option for asw_marine_labels_cursor_maxDist to 6 9s, as I did have 5 be insufficent somewhere in a Nam Humanum replay a while ago. Unless the thing was fixed since then.
  • Add rd_client_marine_backpacks
  • Add hud_sayText_time

Chat messages take X-3 seconds to start fading out, and X-1 to fade out completely

Mission recordings

The "Recording will cause increased blabla" warning should probably always be shown, as there's space for it and it'd make sense to warn of consequences before user changes settings.

Training

I'm also skeptical on this button in Main Menu taking me right to the non-abortable loading screen after a misclick, though I'm not sure how/whether to rearrange it. Then again, that map never quite looked like training, it's mostly game instructor tips that do the job. If said training at least included all situations that have game instructor tips...

@BenLubar
Copy link
Contributor Author

BenLubar commented Jun 5, 2023

Alright, progress report:

The main menu is designed and mostly implemented. In detail:

  • Button glow should be animated so it looks more natural and less like we're flipping through a set of screenshots. Maybe also look into making the UI screen transitions slower (like 0.25 seconds slower) so they feel more weighty (similar to Dota 2, etc.)
  • Possibly hide main menu UI when no inputs for a while so the background video can be fully seen.
  • Background videos are configurable by mods now, both for main menu and lobbies. Players with the same set of lobby backgrounds installed will see the same background in a lobby, and if you don't have the background the host sees installed there's no issues.
  • I want to add new background movies specifically for the main menu (mfz is working on some)
  • The majority of the main menu itself (workshop showcase, news showcase, latest update, event timers, public lobbies, friends playing, ticker, top buttons, commander mini-profile, hoiaf timer, hoiaf high scores) is ready.
  • Need to implement the commander profile screen. (Similar to the Dota 2 player profile in-game.) API for retrieving the featured medals for players not in the current server is ready. Rest needs to be designed and implemented.
  • Need to fix layout for the public lobbies / friends playing panels. The list is currently too wide and tall and we should probably get rid of the fading.
  • Need to update the lobby browser to act as both a lobby browser and a server browser; also make the text smaller so we can fit more details on the screen.
  • Need to rewrite HoIAF leaderboard buttons so they react to focus properly - right now, it gets stuck if you push up on the timer and you can't hover over them to select them.
  • Need to make most of the buttons on the top of the screen work. Specifically:
    • Controls settings screen needs to be implemented. Controller input will use Steam Input once this launches. You'll be able to edit keyboard binds and settings on the screen and trying to edit a bind with a controller input will put you in the Steam controller config program. Controller binds will still show up on this screen.
    • Need to lay out the options in the options menu, then implement it. View source to see the convars that will be part of it.
    • Need to implement the audio settings screen, and look into merging the suggestions from mfz.
    • Need to implement the video settings screen
    • The about page is mostly implemented, just need to hook it up once the main settings tabs UI is programmed.
    • Loadout management page needs to be designed and implemented. ConCommand versions of the actions are already in beta.
    • (DELAYED) The OCM Contracts need to be designed and implemented. Design doc is here.
    • The recordings screen needs a touch-up, at the very least making it use the new top navigation.
    • The Swarmopedia screen seems like it's good to go. Might make tweaks if anyone has suggestions.
    • Need to implement a new Workshop management screen. Probably very similar to the existing one, but it needs to also support managing installed addons as this will no longer be a separate main menu button.
    • The inventory screen needs support for crafting, self-service item deletion, and changing item styles. Equipping medals on click will be replaced with a dropdown menu with options to go to the loadout screen (where medals will be equipped from now on), as well as options to act on the individual items. Crafting materials will have a dedicated screen where items are shown in a fixed layout to avoid bothering people who like things tidy (because we can't move items around within inventories, unfortunately).
    • Mission chooser works exactly as it does in the current release. Might want to add a tab at the start named "All", as well as some kind of method for the RD team to add high-quality workshop items to the list so they can show up as suggestions when they're not installed. Again, there will be an option to disable this for people who don't want it.
    • The quit button works. Just including this for completeness. It would be really weird if the quit button didn't work.

Groundwork for various systems reworks is in place.

  • We've got a new icon loading method for PNG files like inventory items and Steam Input glyphs. The processing step to make the icons scale nicer takes about a second on my computer, but it only has to run once per icon and we're going to include all of the icons pre-processed with the game download. (about 50 megabytes of icons between all item icons and all Steam Input glyphs in DXT5 format with mipmaps right now. I don't expect it to grow by a huge amount before release, but it will grow slightly because we need crafting item icons.)
  • The new inventory networking is already live, and seems to be much less problematic than the first few attempts.
  • HoIAF servers will have additional diagnostic info available and will load the mission/challenge/addon list from the stats server. The code for this just went live in beta today. This will allow us to update the official campaign/challenge list or push scoring updates without pushing a full build, and shouldn't cause any added instability because ranked servers will remember the config while looking for updates. Will also look into adding a webpage showing the current config, a log of changes, and an explanation for how scores are computed.
  • The loadout system has functioning console commands to interact with it. Loadouts have a defined binary and text format, which should be fairly easy to share. Might look into adding loadout sharing as a form of integrated guide like how Dota 2 has item builds on the workshop.
  • (IF TIME PERMITS) Speaking of integrated guides, might look into adding shareable speedrun ghosts if that's something people are interested in.
  • (DELAYED) The inventory system is set up to handle crafting, item drops, etc. No UI for activating this kind of stuff, but it handles the stuff that happens after it starts talking to the Steam API. Still need to define the recipes and finalize the drop chances before we go into beta with this.
  • (DELAYED) Strange weapons are working, but they need additional UI support. I'll delete the ones I added to my inventory once we're ready to start testing them for real.
    • I also want to add something like the Dota 2 relic level-up UI, where hitting a certain threshold on a stat counter will display the number over the marine's head. (Unless disabled client-side, of course.)
    • (DELAYED) We have a strange device model with a functioning LCD screen. We're going to need to edit every weapon model to add one bone to attach it to, and I need to fix the bug where strange weapons stay visible when you swap weapons. Model edits are Beka's task right now (I also need Beka to update the source files for the weapon models in this repo.)
    • Strange weapon and strange device icons are ready.
  • (DELAYED) Contract system is partially designed. No code yet.
  • (DELAYED) New weapons have been assigned IDs; still need icons and some of the models and most of the sounds. Also need to program most of them.
  • Steam Input binds are ready. Need to figure out if there's a way to enable them on beta branch without destroying controller support on live. Also need to make sure Steam Input works with menus.
  • Just to reiterate, versus mode and the new aliens are NOT part of this anniversary.

Things that will be removed as part of this anniversary and why:

  • The Steam Group Servers UI. Currently, most servers specify the AS:RD official game group as their group, and this feature is mostly just sending a bunch of requests for the server list that don't need to be sent. Will be replaced with the new public lobby / server browser. If people have specific servers for their Steam groups, they can favorite them in the server browser instead of having the game constantly query for them.
  • The current settings screens, including advanced settings. All of the options will be moving to the new settings menu, with some notable exceptions like the "Wipe Chat" setting which is being removed because new players almost universally assume it's a bug and most of the options for cl_interp because it should almost definitely be either 0 or 0.1.
  • The collections screen. It's confusing to have documentation and inventory management under the same heading, so we're splitting them. The Swarmopedia will become a top-level button and include weapon/equipment info, and the medals list is becoming an inventory screen. Medal equipping is moving to Loadout.
  • The HoIAF server list. It's buried three clicks into a menu and we're just going to mark ranked servers on the new lobby/server list instead.

Other things that need to be done:

  • The lobby UI revamp and HUD revamp projects are not yet started. Any suggestions are appreciated, in general.
  • Loading screens are mostly good to go, but would benefit from an abort button if we can add one.

@BenLubar
Copy link
Contributor Author

Visual status report:

Settings

image
Controls tab is mostly laid out. Still needs to be made interactive and I still need to lay out the controller settings.

image
Options, Audio, and Video tabs aren't laid out yet and CRD_VGUI_Option (which is visible in a few places on the controls tab as well) still needs to be implemented.

image
About tab is complete (ignore the non-transparent source engine logo; that's fixed in the material but I haven't published it yet)

Still need to do keyboard/controller navigation for the settings screen.

Main Menu

image
Main menu is fully functional.

Need to design and implement the new lobby browser and the commander profile screen.

Loadout

image
UI for the main loadout screen is partially there. Still need to implement the loadout list and all the interactive functionality.

image
Marine loadout screen is partially implemented. Again, non-interactive so far. Planning to make the 3D view not rotate automatically and instead have player control with momentum.

Here are mock-ups from Ax-Now:

image
image

mfz is working on a background model for the marine loadout screen, going for a similar vibe to the loadout screen in XCOM or the mission end screen in Deep Rock Galactic.

Contracts

image
Nothing here yet.

Recordings

image
Need to tweak the UI to fit the new style better.

Swarmopedia

image
Adapted to new style. Might want to add more global stats for each alien, using our cause_of_death data. Otherwise I'd call it complete.

Workshop

image
Needs to handle published integrated guides differently, needs style update, needs installed addon management screen to be merged.

Inventory

image
Needs to be redesigned as an actual inventory screen rather than a medal selection screen.

Briefing

image
Redesign needs to be planned and implemented.

@BenLubar
Copy link
Contributor Author

Request from Grimowy: make it possible to change settings on the briefing screen (without switching to mission details)
image

@BenLubar
Copy link
Contributor Author

BenLubar commented Jul 11, 2023

Simplified roadmap:

  • UI
    • Main Menu
    • Settings
      • Controls
        • Custom Wheels
      • Options
        • Translation Strings
      • Audio
        • Jukebox
      • Video
      • About
    • Commander Profile
    • Mission Chooser
    • Lobby Browser
    • Loadout Manager
    • Auto-Record
    • Swarmopedia
    • Workshop/Addons
    • Inventory Manager
    • Briefing
    • HUD
  • Other
    • New Weapons
    • Contract Campaigns
    • Strange Weapons
    • Crafting
    • Drops

Crossed out features are still coming, just not yet.

@BenLubar
Copy link
Contributor Author

Hmm, looking at the time I have left, it might be better to just do the UI revamp this year and postpone the other changes to next year.

@WhenTanksFly
Copy link

Recently realized the pause menu buttons have tips... which are displayed on the Surface Map screen.
​>check extra mission info after joining
​>2-digit retreat counter on Normal
​>game itself tells me to leave
temptation
Other than this being pretty random placement that assumes I have Surface Map open in background while browsing the pause menu,

  • Tip text doesn't refresh until pause menu is closed.
  • Text obstructed with pause menu's semi-transparent background.
  • Pause menu options are self-explanatory enough, extra info looks of no use.

Is this some Half-Life leftover? Could probably be removed unless the new interface accounts for those largely pointless explanations.

P.S. Hope all the UI work is worth it. Feels like a lot of effort with unsure results.

@BenLubar BenLubar pinned this issue Sep 18, 2023
@BenLubar
Copy link
Contributor Author

BenLubar commented Sep 24, 2023

I think the only release blocker right now is:

  • Color settings need to be made editable.

We definitely want all the stuff listed above in the release as well, obviously.

@BenLubar
Copy link
Contributor Author

BenLubar commented Oct 12, 2023

For the loadout screen:

  • Update briefing to support multiple copies of marines and/or more than 8 total marine profiles
  • Rework console commands that are used to equip weapons on marines in briefing to work with multiple copies of marines
  • Implement weapon swapping for loadout editor
  • Add a button to create a loadout
  • Add a button to delete a loadout
  • Share loadout screen
  • Ability to add/remove marine from loadout
  • Apply loadout in briefing
  • Handle missing/shared items

@BenLubar
Copy link
Contributor Author

BenLubar commented Jan 20, 2024

From Grimowy:

Some suggestions:

1) game search: adding panels to switch between play with anyone, play with friends (same as swarmopedia section)
2a) addons: adding panels for switching between installed add-ons and publishing addons (as in the swarmopedia section)
2b) addons: installed addons: adding a button in the details section to the website in the steam workshop of the selected add-on
2c) addons: replacing Label with MFRT with a scrollbar in descriptions (now you can't scroll descriptions if they go beyond their area)
3) Adding titles to each full-screen panel or removing the title from header_footer and using titles defined directly in the *.res files of a given panel
4) enabling the buttons to be styled for the focus state via *.res files (now this is done through additional background panels styled in *,res but controlled by code (e.g. hard-coded "tab" in tabbedgriddetials)

233374905 5100004_Bez tytulu
233661828 29500037_Bez tytulu
233929716 84500015_Bez tytulu
234540384 11500025_Bez tytulu

Maybe you can take these suggestions into consideration - they will reduce the number of clicks needed for the user to access the desired UI elements, enable more complete access to data, unify the UI design and make modding easier for modders and developers to modify the UI design in the future.
Regards.

  • tabs to switch between play with anyone and play with friends sound like a good idea
  • defining the titles on the headerfooter via the res file is certainly an idea worth considering. I don't think moving them to the frame would be worth it
  • definitely need to add a way to style buttons better; right now the main menu is a hard-coded mess
  • now that MFRT supports bbcode directly I should definitely just make the addons screen use it
  • I should probably add support for more bbcode tags though (url, h1, h2, h3, etc)

About titles
Currently, the header-footer for most full-screen frames is added in the code without being defined in *.res files. In some frames (in the lobby) the header-footer is defined in *.res but the title is a child of the "header-footer" element and without support for nesting such as:
"header-footer"{
...
"title" {
...
}
}
it is not possible to assign a title via textLabel in the *.res file anyway, so it can be hard-coded imo, but it is worth adding the code with the title for all frames (missing for many frames, e.g. for swarmodedia, colletions, addons, game search) . In my add-on, I added titles directly to the frames, creating an additional label, but I cannot do this for the collection and swarmopedia frames, because all frames there use the same *.res file.

I'm glad you found some of my suggestions worth considering.And I'm even more glad that you notice some mess in the code, which could be sorted out by sticking to the Controller - Style - Content model (something like MVC, separating the control layer from styling and content:
*.h/cpp (controllers)
*.res (styles)
*.txt (content))

I still have many comments and suggestions, but that's for another time, everything takes time. Thanks for your contribution to the development of this game. Good luck!

btw, achievements frame is "broken" - look closely at it and in the background you will see that half of the screen is covered with some black panel not defined in the *.res file. What's more, you can't check what panel it is using vgui_drawtree because the game crashes when you try (the method of triggering this error: in the main menu vgui_drawtree is not displayed for the achievments frame, but achivments can also be displayed from the menu in the lobby, then vgui_drawtree works, yes so after entering the lobby, we run developer 1; vgui_drawtree 1 from the console, go from the menu to achievements and restore the visibility of vgui_drawtree by launching the console - the game crashes, I just tested it, it doesn't always crash, but in the right order of calls it crashes, I don't know what's going on is happening),
Additionally, the achivment frame ignores *.res header-footer styling, you can't turn off the gradient and many other styles via the *.res file. This is the only frame that I cannot modify like the others, *.res styling works very "selectively" there.

263809752 99000043_Bez tytulu
264051739 9050002_Bez tytulu

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

No branches or pull requests

2 participants