Resolution and scaling

Yesterday I implemented sliders for controlling sound volume and decided to have one for resolution scaling too. Before now I used four buttons to set resolution scaling to 100%, 50%, 25% and 12,5% as a quick way to make my game run well on slower computers, but I think a slider will look and feel better.

The value gets passed to the render script, which recreates render targets, takes it into account when setting up viewports and who knows what else. It’s still black magic to me, but I have long since got it working properly. The lower the number, the fewer the pixels. Looks hilarious when set to extremely low and even slightly lower scaling does wonders for FPS, so that’s nice.

And yeah, I’m targetting desktop.

I have a couple of questions, though:

- Is there any reason to limit the options to some values like half, or is resolution scaled to say 87% fine?
- Should get the native resolution into account and set scaling with respect to that? The game is supposed to run fullscreen by default. The resolution set in game.project is 1280x720. Should the default 100% scaling mean that the image is scaled to fit with the monitor’s resolution and go from there?
- Now that I think about it, the scaling is uniform between width and height. Should I separate it to account for difffent aspect ratios?
- Is there some merit to allowing upscaing for a game that’s mostly 2D and sprite-based? And up to what value, 150%? 200%?

I’m kinda not great at judging these things, since a lifetime of gaming on hardware far behind the curve have left me practically blind to most kinds of artifacts, fps drops and aliasing, but I would like to get this right.

Our games have resolution scalimg and we always go in round-ish increments relative to the native window size (100%, 50%, 75%). Upsampling tends to look better when there’s a common denominator between resolutions. And no, I don’t see a reason to mess with the aspect ratio. Just uniformly scale.