godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
89.17k stars 20.21k forks source link

Advanced Settings option #30866

Closed KoBeWi closed 3 days ago

KoBeWi commented 5 years ago

Godot version: 94aabf5

Issue description: Recurring problem with some feature proposals is that they absolutely can't add any Editor Settings, because settings are bloated and editor becomes complex etc. This is problematic, because more options is sometimes useful. Well, the settings really have some not-so-useful options (probably) and aren't well-organized, but that's for another issue.

Discussion in #30816 spawned an idea for a nice feature that could do something about the problem of editor becoming "too complex" - Advanced Settings option. Basically, upon opening Editor Settings, you'd see only a set of very common options (like editor language or theme) and most of the settings would be hidden (like interface dialogs or file server). To show them, there would be an "Advanced Settings" checkbox.

This way, when you open Editor Settings, you will see stuff that is mostly relevant and you are likely to change. It would keep users from being lost and if someone wants to tweak more things and have option for literally everything, it would be possible. The biggest problem here is determining which options should be considered "advanced".

Also, here's how it looks in VLC, which does it really well: Basic settings image

Advanced settings image

Anyone disagrees? Any proposals for basic and advanced settings?

groud commented 5 years ago

Recurring problem with some feature proposals is that they absolutely can't add any Editor Settings, because settings are bloated and editor becomes complex etc

Please don't exaggerate, that's not what I said ;)

The most important think is likely how to present it. I was thinking about having something like the "about:config" page of Firefox, where you can define a significant amount of different values with a search bar. This is likely what we could go for, where we could store all the cryptic settings people are asking for and all the editor's internal things.

I think this should be kind of an "hidden page", not accessible easily and eventually with a warning, so that we don't have to worry much about how many settings we add or how they are presented and organized (it makes me think that a lot of built-in constants could go there). Consequently, I don't think it should be presented as an "show all" mode, but likely with a button granting you access an "advanced configuration".

lawnjelly commented 5 years ago

Personally I am in agreement with the idea. Of course there are pros and cons with exposing more of Godot's parameters to the user, and some people might not be in favour:

Pro Can be customized to the needs of the game, less need for a 'one size fits all' approach. Easy for developers to expose decisions to the users rather than make decisions for them.

Con Easier for users to break things by setting one of many settings incorrectly. Inevitable that there will be more end users needing help with choosing wrong settings.

So if this is done, it might be worth taking a small effort to help reduce the potential downsides. One method might be that if there is an advanced section for each area (physics etc), have e.g. a checkbox where you can temporarily revert to default behaviour for a whole section, and a checkbox to temporarily revert all advanced settings to default.

That way it might be easier to track down what is causing a problem if a game is not behaving as expected (and easier to remotely debug issues). Users could be instructed to try temporarily reverting all advanced settings before creating an issue on github, for example.

KoBeWi commented 5 years ago

Of course there are pros and cons with exposing more of Godot's parameters to the user

But it's not about exposing more parameters. Consider current Editor Settings as Advanced Settings. The idea is that "Basic Settings" would be a simpler version of what we have now and then when we add new option, it will likely fall into Advanced Settings too, so the base settings aren't cluttered as much and more accessible.

The "temporarily reverting to defaults" thing is not needed here.

lawnjelly commented 5 years ago

But it's not about exposing more parameters.

The original discussion stemmed from exactly that, and given that Godot is adding features all the time it may be wishful thinking to expect the number of settings to stay similar in the longterm.

i.e. The advanced settings may be proposed here as a method to better separate the existing settings, but in the longterm their primary purpose may be to prevent the overchoice problem.

KoBeWi commented 3 years ago

Partially implemented by #46127 We need to do the same for Editor Settings I guess.

(also I still like the VLC basic settings more)

passivestar commented 2 weeks ago

First thing I do when I create a new project is enable advanced project settings because the regular ones don't have the most basic features like graphics quality controls or making the game window stay on top. I don't know if that's simply a problem with categorization or with the very idea of advanced settings in the context of a game engine. I'm concerned that if advanced editor settings are added I'll have to enable those as well. To be honest I'm not really sure it's possible to make good decisions as to what's "advanced" without telemetry and statistics. It's hard to predict the details of how a general-purpose game engine is used. If a handful of contributors make those decisions it's bound to be incorrect, adding friction by requiring users to enable advanced settings, which is probably what happened to the advanced project settings