Friday, January 18, 2008

Why You Can't Have a Setting

I get a lot of requests for settings...the email is typically something like:
  • Some feature in X-Plane is defaulted to X.
  • I like it better when it's like Y.
  • Can I have a setting to change the feature between X and Y.
Raymond Chen has a great posting that I think is very topical: "In order to demonstrate our superior intellect, we will now ask you a question you cannot answer."

This brings up one of the main reasons why we shy away from more settings: the more complex we make X-Plane's configuration, the less likely it is that the average user will be able to set the sim up correctly. Settings requests usually come from our most advanced users, but we also have users who have never used a computer before. Really! I've been on the tech support calls - they are very nice, but way overextended on the computer side of things. Should we allow them to pick whether scenery geometry is store in AGP memory vs. VRAM?

From our perspective, having a setting that a user doesn't understand is worse than neutral, it's actually harmful. Every one of those settings is something that can go wrong with the sim. I removed the ability to set the level of detail bias to positive (in other words, extend the visibility distance of scenery beyond its original design) after about 500 complaints of "low framerate" from users who had maxed this setting out (causing a 4x increase in 3-d processing load) without knowing (1) what the setting was, (2) what it was good for or (3) what the down-side was.

Could we present all the info to make intelligent decisions on the rendering pages? Honestly, probably not beyond a certain point...we would devolve our sim into a lecture on working sets, bottlenecks, and the OpenGL pipeline long before the user got flying. (Wait, that's my blog! Doh!!!) At some point the sim just has to do its best to do the right thing, or something similar to it. Just as Raymond points out that the default answer to any dialog box is "cancel", the default answer to any rendering setting is "all the way up."

When I tell a user who wants a setting that he or she can't have a setting because some other user will abuse it, the answer is almost always: well why don't you have two settings screens, a simple and advanced mode?

Besides the irony (of trying to solve the problem of too many settings with another settings), Raymond also points out that no location to hide an advanced setting is ever quite good enough. This is something we have struggled with, choosing command-line options more for to pragmatic reasons than because it's a great solution.

This doesn't mean you can't ask for command-line options...I am just trying to point out some of the thinking on the other side of the coin.

2 comments:

Anonymous said...

What about hiding them in the prefs files? Only advanced users dare to mess with the prefs text files...

Anonymous said...

No doubt this is why Firefox doesn't have all available prefs in about:config to start, and makes you add them manually--so if you change them, you have to have at least read about it somewhere and aren't just stumbling around turning random knobs the wrong way.