Design resolution size

Hi !

i have one question…

It seems like, ‘design resolution’ is usually same or smaller than ‘screen resolution’

But it will be ok when design resolution is bigger than screen resolution ?
(aspect of performance as well)

I plan to make iPhone 6 screen size for ‘design resolution’, but it is bigger than iPhone 4,5 screen resolution…
(because my game is targeted to iPhone 6 device firstly.
and as you know, iPhone 6 has different HW scale from other iPhones except iPhone 6 plus)

In this case, it will better to make ‘half’ of iPhone 6 screen size as design resolution so that design resolution is smaller than all iPhones screen size ?

It depends on how detailed and big your assets are but for the most part it should be ok

1 Like

This is totally up to you. In fact it does not really matter how small or big your design resolution is.
It could even be 10x20 or 10kx20k, because you are always calculating a scaling factor based on the difference between your design resolution and the device resolution. A scaling factor does not mean, that your assets have to be scaled, as you can use various asset resolutions. The scaling factor is mostly used to convert/map OpenGL coordinates/points to pixels.

The design resolution is the resolution your assets are designed for. If you design your assets for 4k, so be it. Your design resolution will be 4k.

It would not be better, it would be worse and would not make any sense, as you design your assets around the iPhone6 resolution, not a half one.

Downscaling is most of the time always better than upscaling. It will introduce other artifacts, but the overall asset quality will be unmatched. You will just lose information, not add information, that was never there.

That’s why you always render to a larger resolution when using supersampling.

3 Likes

That is how I designed my project, but now I wonder if this would cause bad performance on smaller devices. Say I have designed the game for the iPhone 6 resolution, but it is compatible with older devices such as the iPhone 3GS or the Samsung Galaxy mini 1 (GT-S5570) which have far lower screen resolutions. Will then the game be rendered for the iPhone 6 resolution and scaled down to fit the smaller screens? If so, wouldn’t that cause bad performance on these older and smaller devices because of fill rate? I’m sorry if this is a dumb question, but I really want to understand this and I don’t manage to find an answer.

We have a Multi Device Tutorial series showing you how to create a game with a single code base and a single set of resources for all iOS and Android devices.

–UPDATE–
Tutorial series link http://www.sonarlearning.co.uk/coursepage.php?topic=game&course=cocos2d-x-multi-device-2

1 Like

Only, if you are not providing exact assets for the smaller resolutions.

Not fill rate per se, because it can only render to the full screen resolution, which is smaller anyway, but memory consumption and shader/pipeline calculations for scaling the assets.
It does not push more pixels to the screen, just because you are using larger assets. It only affects the fill rate if you are effectively using the higher pixel count by implementing super sampling or various other (AA) techniques.

The design resolution is only for mapping the OpenGL coordinates to your device resolution pixels and for calculating the scaling factor of your assets.
It does not matter, if your design resolution is e.g. 16k x 9k and it won’t even make your game running slower or faster. It’s just used for translating the OpenGL coordinates to pixels. There are no pixels in OpenGL, just coordinates(points). That’s why OpenGL is resolution independent. There is only a hardware limit for the viewport resolution e.g. 2k x 2k, 4k x 4k. 8k x 8x, 16k x 16k, which depends on the used GPU.
As long as you provide assets, which have a 1:1 mapping for your device resolution, there will be no asset scaling at all.

E.g.
Design resolution: 16k x 8k
Device resolution: 8k x 4k
Scaling factor will be: 0.5 (8k / 16k).
You have a background image of 8k by 4k

The OpenGL coordinates of 16k x 8x for your background will be scaled down by 0.5 to 8k x 4k and the asset will be loaded in(assuming you have configured, that this asset resolution will be used for a device with 8k x 4x device resolution). The background will fit perfectly, because it has a mapping of 1:1 and no scaling happens.

2 Likes

Thank you for your detailed response! Now I understand it :smile: And sorry for bringing this old post to the top again, but I didn’t find anything else. Since I develop games using Cocos2d-x and visit this forum regularly I’m learning a lot! :smiley:

You’r welcome.
A lot of people are confused about what the design resolution really is. It’s basically just the resolution you will use for your coordinates.
E.g.
DR stands for design resolution.
DR: 800x800 -> set sprite at the center(400, 400)
DR: 1600x1600 -> set sprite at the center(800, 800)
DR: 1.0x1.0 -> set sprite at the center(0.5, 0.5)
In either case, it will be drawn at the center.

Normally you are using the resolution of your assets, you made with your graphics program, as the DS, because you get the 1:1 mapping and no scaling automatically.
If you want to support different resolutions with a 1:1 mapping, you have to provide assets made for that resolution as well and tell the game to use them in that situation. This does not change your DS in any way.

2 Likes