Handling different resolutions changing gameplay

Started by
2 comments, last by BLiTZWiNG 13 years, 7 months ago
This is bothering me at the moment, and I'd just like to know how other people solve it, if they even do.

I made a 2D game where the size of the screen is the game area. The game was intended for the xbox, with a plan to work on a PC version straight after. The 360 auto scales content if you set your back buffer to 720p, so I didn't have to deal with differing screen resolutions, until I bought myself a 1080p monitor.

If you make a 1080p game you must also support at least 720p. So now I have 2 massively different resolutions to account for. It takes longer to get to the edge of the screen to collect items and the enemies no longer fill the screen they way they did at 720p. This directly affects the way the enemies hamper your efforts to collect items and ultimately, the score you can achieve for a level. You main goal of the level is to get the highest score you can.

It gets worse when I think about putting this on PC. People will obviously not all have widescreen monitors. My first thought to solve this was to scale the output (reasonably easy in XNA), but I'm either scaling up to 1080p which there is no real point then, not gaining anything from the extra pixels, or scaling down from 1080p, fonts will probably get too small. I could put a border around a certain number of pixels on the minimum screen size, but thats going to be really small on a 1080p screen. I could change the speed of everything relative to the scale between 720p and 1080p, but then the space also changes, not just the speeds, so it wouldn't be a 100% accurate compensation.

The scores are local (ie there will be no central server at this time), so I'm wondering if anyone here has dealt with it before that might have some pointers for me?
Advertisement
Why not do it the same way the X-box does?

By that I mean the game logic and such are aligned to some predeturmined screen size...location of objects in the game world, thier size, how fast they move, etc.

Then use the rendering side of things to scale to fit the display size. Which would only involve takeing the game logic locations of objects. Multiplying them by the scale factor. Then drawing them to the back buffer. Speed and everything else remain unchanged.

But, instead of loading bitmap sprites and tiles. Store the graphics as vector art, load and render them to thier own buffers at the scale appropriate to the screen display size...You would only be rendering them at load time and useing conventional bitmap processes to draw them onscreen.

So instead of haveing the X-box scale up the 720p screen. You are doing it yourself, with game logic still fixed and functional, plus actualy useing the extra pixels.

Does this make sense?
Switching to vector art now might be a bit late. I was going to say I had designed it for 720p but that's actually not true. The source art is all done at 512x512 then scaled down to 64x64 for the game at 720p, but I can always scale it to say 128x128 for 1080p then downscale accordingly. The fonts might be a problem but I actually think I can render them seperately.

4:3 might still be a problem design wise though.
Well I got a nice scaling system going, but 4:3 ends up squished. I guess this is where I have to work out how to add letterboxing :/

This topic is closed to new replies.

Advertisement