ReactiveDrop / reactivedrop_public_src

Alien Swarm: Reactive Drop game source code and issue tracker.
https://reactivedrop.com
114 stars 35 forks source link

7th anniversary UI meta-issue #570

Open BenLubar opened 1 year ago

BenLubar commented 1 year ago

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

Revamps

To consider

WhenTanksFly commented 1 year ago

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

BenLubar commented 1 year ago

Alright, progress report:

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

Groundwork for various systems reworks is in place.

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

Other things that need to be done:

BenLubar commented 1 year ago

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 commented 1 year ago

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

BenLubar commented 1 year ago

Simplified roadmap:

Crossed out features are still coming, just not yet.

BenLubar commented 1 year ago

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 commented 1 year ago

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,

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 commented 11 months ago

I think the only release blocker right now is:

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

BenLubar commented 11 months ago

For the loadout screen:

BenLubar commented 7 months ago

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.

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