Design Game Resolution - Scaling

D

Dxnxex

Guest
Hello,

I want to ask, with method is best to use to SCALE your game.

1.Method
I´ll make game in resolution of 1200x1920 and set in game 1200x1920 (view), but port will be set besides current device (+borders of aspect ratio). Will this method be bad for FPS, when you will play it on weaker device?

2.Methon (This method can´t be used every time)
Game is created on one map which have resolution of 4K (3840 x 2160), but because of everything is played on 1 place (Clash Royale game type), so will not be better to make game in dynamic resolution?
I mean this: Basic work resolution will be in 4K, but there will be Downscaling, speed calculation (because you can´t move same speed on small "map" as on big "map"), make scaling of sprites etc...just everything calculated on current device.

This cannot be used on RPG type of game, because you have map created a there is solid location, what cannot be scaled down or move speed decrease.

3. Method
It´s similar to first methon. You will make game in 1280x720 a make it without downscale or upscale (but aspect ration yes). Is this method bad for bigger tablet with FULL HD resolution ?

Can you help me what is best method or what method do you use?
How is it done by professional developers ?

Sorry for English.

Thank you <3

;)
 

Hyomoto

Member
So, no matter what game engine you use this is a consideration you have to keep in mind. However, I think GM is a bit more fiddly when it comes to it's implementation. I can't say I know everything about this, but hopefully I can add a little bit: The way I go about this is I always set an 'internal' resolution, and pretty much everything I do engine wise is in relation to that internal resolution. When it comes time to draw it to the screen you can draw it in whatever shape or size you want, so as long as you have a consistent internal size that you are using, that second part is easy.

The reason this is important is because when you are talking resolution you have two options, you can either scale up or scale down, and you should always account for 'overflow'. That last one simply means that some of what you draw may exist outside of the boundaries of the target device's screen. Android, for example, has countless resolutions. So assuming you have a 720p game, you would need to tailor how the screen is drawn to preserve picture quality and maintain your aspect ratio. So, if you have a 1280x720p game and the device is, say, 1024x768, you would want to scale the game up, perhaps to 768, which means ~260 pixels would be lost in the horizontal resolution. However, the game would maintain it's aspect ratio and still look 'right'.

However, that's just resolution and scaling. When it comes to asset resolutions and having HD versions versus "SD", for example phones versus tablets, this is why you often see two versions of the same App. It's just difficult to use the same everything for both of them because not only are you drawing everything relative to the internal resolution, you also need to draw everything relative to the asset size. However, the way I would go about this would be to either gauge what resolution to use from the screen size, (width versus dpi), or have the player be able to select a 'quality'. Then you are basically doing the same thing as above: set the internal resolution, draw everything relative to that resolution and asset quality, then scale it to the screen. You can't target every possible resolution so having a low and high resolution version is probably fine, and generally it's considered better to scale down than scale up though GM's internal scaling can be a bit iffy so I prefer to scale up (not to mention upscaling is faster). But, all this work means you can easily support multiple resolutions of assets and multiple screen resolutions.

The last piece of information here is the GUI. GameMaker has a built in capability for rendering a GUI that is a different resolution from the main game. This is important because unlike scaling the game to the screen, you can target the GUI to the exact resolution of the screen. If you apply the multiple resolutions of assets to this, it's possible to always target the device's resolution and have a GUI that doesn't require any scaling, which generally looks best.

I hope some of this is helpful to you, this is a question I'm surprised isn't asked more frequently around here and it's a very, very good question I've spent a lot of time trying to find a way to solve. This information is just what I've figured out, hopefully someone else will add some more to it. Have fun, can keep coding!
 
Last edited:
K

Kiskara

Guest
I would work with several resolution kits in any case, whatever method you use to "zoom", it will give bad resolutions at a certain point. Nothing over hard resolution sets which are made in Photoshop or something. Only way to have free rescale is using vectorial images.
 
Top