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

Basic/Advanced Settings #2180

Open
tsa96 opened this issue Jul 25, 2024 · 1 comment
Open

Basic/Advanced Settings #2180

tsa96 opened this issue Jul 25, 2024 · 1 comment
Labels
Priority: Medium Something that should be tried to be done in this release, but not as important as High priority. Size: Medium Something that may take a few days or so to implement. Type: Enhancement This can improve a system/thing already in place. Where: UI This is something within the Panorama user interface

Comments

@tsa96
Copy link
Member

tsa96 commented Jul 25, 2024

Our settings page is way, way, way too complicated. Practically everyone I see using it (through Twitch/Discord streams mostly) find it hard to navigate. It's good that the game is so configurable; loads of our player-base are power users and will customize the shit out of everything. But new players shouldn't have to read through settings like "Cubemap Error Texture Appearance" or "Ghost flashlight sounds".

A naive implementation of this is very simple: add a radiobutton on the LHS panel that switches between "Basic" and "Advanced". In JS, have that toggle a class on the outermost settings panel (looks like the one with class settings should work) called settings--advanced. Then add some variants of classes in the settings page like settings-group, SettingsEnumDropDown etc e.g. settings-group--advanced that sets display: none; (or whatever the Pano equivalent is, I forget) of that panel.

The harder way would be creating simplified settings components that groups together a bunch of settings, e.g. for Timer, grouping all sounds under "Timer Sounds". I think it should be possible in pure JS, even if a bit ugly - we'd probably need to do some weird custom attributes to express how one settings picker should affect multiple cvars. Then we'd also need --basic classes so we can hide the simplified basics in advanced mode. Don't have time to spec out the full details of this now, could discuss below. I really want to avoid doing this in C++, this is something like non-licensees should be working on, and we don't need to be perfectionists about UI code.

Example overcomplicated UI (note that a label is wrong, one should be "fail sound". In basic mode, we should just display one "Timer Sounds" setting which toggles all 4 of these.
image

Giving this medium priority for now, but it's something we should try very hard to get done before 1.0.0 IMO.

@tsa96 tsa96 added Type: Enhancement This can improve a system/thing already in place. Priority: Medium Something that should be tried to be done in this release, but not as important as High priority. Size: Medium Something that may take a few days or so to implement. Where: UI This is something within the Panorama user interface labels Jul 25, 2024
@tsa96
Copy link
Member Author

tsa96 commented Jul 25, 2024

FWIW I think you could make a case that the "Timer" section should be hidden in Basic mode entirely. It'll be very common for users to want to specifically hide their timer, and sounds are relatively discrete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: Medium Something that should be tried to be done in this release, but not as important as High priority. Size: Medium Something that may take a few days or so to implement. Type: Enhancement This can improve a system/thing already in place. Where: UI This is something within the Panorama user interface
Projects
Status: Todo
Development

No branches or pull requests

1 participant