UI’s with too many options
Exposing a UI to twiddle all the individual aspects of an object’s state is rarely a good UI design. Figure out how to abstract your system’s workings to simplify the UI. Graphics settings are a good example of this- there may be hundreds of bits to twiddle for your graphics settings, but generally you expose some slider or broad categories, and allow the user to override ‘advanced’ settings.
It is more difficult to apply it to many of the tools we write than it is for the trivial example of a settings menu, but we rarely try. We too often just expose every setting to a UI and call it a tool. It’d be easier to use a config file! Figure out how to simplify things for the user and their common use cases.
You may also think about moving this abstraction out of the UI layer, into an abstraction that sits on top of your lower ‘data’ layers. Then your UI can just bind to this simpler abstraction layer.
Tools can be difficult to use and simple, or easy to use and complex. Best of all is easy to use and simple. We know simplicity is a goal with systems design. It should also be a goal in tools design, and tools that end up just exposing widgets for the underlying data should be considered as poor as systems that are too complex.
I completely agree with you. I was recently working with a game engine that used 3 different model formats. Instead of letting the artists pick which type to export, I used the objects in the export set to figure it out. Several other options like vertex colors, tangents, binormals, and shader propeties were all determined by the export set. This let the artists concentrate on the art, and just press a single button to update the game asset.