An idea, which maybe would be “good enough” for most people, would be a coarse-grained “global vs. local” setting for each page of settings, along with a “save-as-default” button when a browser is set as local.
For example, the first setting in “Game Preferences” could be something like:
- “Customize Game Preferences for this device/browser (TOGGLE) [save-as-default]”
With these interactions:
- TOGGLE’s value is determined by the local presence of any of this page’s settings in browser cookies
- Defaults to off/global for new users/browsers
- If the TOGGLE is off/global, this page’s settings consult/modify settings on the server.
- If TOGGLE is flipped to on/local, settings are copied from server to browser cookies.
- If the TOGGLE is on/local, this page’s settings consult/modify settings in the browser cookies, and the save-as-default button is available.
- If “save-as-default” is clicked, then this page’s settings are saved to the server.
- If this browser cookies don’t know about the setting in question (new setting, or new browser), the user’s last-saved setting on the server (if any) is used and saved in the cookies
- If TOGGLE is flipped to off/global, settings stored in browser cookies are deleted.
Benefits:
- Only one new setting per page
- IMO, behaviour is predictable
- It’s clear which settings the setting applies to (the ones on the same page)
- Pages like “Email Preferences” and “Vacation” (which are inherently server-side) would not have this setting.
- It’s intuitive what interacting with TOGGLE and save-as-default will do
- It’s clear which settings the setting applies to (the ones on the same page)
- Has enough flexibility that it probably caters to most use cases
- Players that want everything to match across browsers can do so
- Players that want to customize locally can do so
- They also have the ability to save defaults (and to restore defaults, via TOGGLE off+on)
- Players that mostly want to match across browsers, except in one browser (say, on mobile) can do so