What about a general master "graphics setting" (low, medium, high, custom, etc) which would control multiple graphic related settings. For example, the "medium" setting might use bilinear filtering with medium texture sizes and a moderate particle cap, while the "low" setting might use a nearest neighbor interpolation filtering with a more rigid particle cap and capped texture sizes. Why? Because most players don't understand the impact of different settings. A casual player on a low end PC probably understands that they can get a performance boost by "setting the graphics to low", but telling them to "turn off unit particle effects and tileset particles, set filtering to whatever, and so on" is a big step up (we'll assume most people don't even see the forums).
As for options that could balance performance and quality, here's a few that I'd like to see:
Texture filteringAs it stands, we have bilinear and trilinear texture filtering. For those who don't know, texture filtering is a way to smooth out textures, with the best example being if you tilt an object at a 30 degree angle, the texture is going to appear "compressed" into that shape. At any rate, there's a rougher, uglier, but considerably faster method than bilinear: nearest neighbor interpolation. The quality would suffer a bit, but it's considerably faster. And on the other side of the spectrum, we have anisotropic filtering, which drastically improves quality. Take
this example here (left is trilinear, right is anisotropic; it's really a massive difference).
Texture scalingBefore the start of the game (during the loading stage), textures could be scaled down to a "maximum texture size". It might not make much of a difference with most current mods, which rarely go above 512x512, but future mods that could use larger textures may benefit, and there may still be some benefit in reducing the textures of even the 512x512 textures.
Maximum particlesParticles are hard on the computer. There's no doubt about that. I've seen MG go to a serious slowdown on a weak computer during a volley of particles. A particle cap could reduce the particles (preferably evenly from all sources) in the camera's viewpoint when the cap is exceeded.
Vertice capI'm not sure how well such a thing could be done, if at all, but if possible, reducing the number of vertices when there's too many on the screen could be the most influential way to improve performance real time. Perhaps walkable objects (bushes, etc) could be removed, then (as Will mentioned), mesh simplification could be applied.
AntialiasingIf you're not already aware, AA is the "blurring" of jagged lines, to make them appear smoother. The change in quality is fantastic, but it's also pretty hard on resources. MG appears to have AA on text, but not on models (where it would make a huge difference). Take
this image here as an example of the differences AA can make.
On a few other points to ponder,
Tucho made this post a while back about how MG could improve its ground tiling system. I'm not sure if it's performance only or if it would be just an aesthetic. Also, just how does our level of detail work in MG? Do textures get smaller when we zoom out? Are closer objects more detailed than further objects? It doesn't apply as much to the top down camera of MG as it might to a first or third person game, but LoD could still be useful when the camera is at an angle. Finally, how much of a difference does the number of frames in animations make in regards to performance? Does a unit with a twenty frame animation use considerably more resources than a unit with a ten frame animation? If so, could an option to drop, say, odd frames in animations longer than a certain number of frames, be beneficial?