How to provide graphics for multiple resolutions?

Discussion and feedback on Construct 2

Post » Mon Jan 14, 2013 4:07 pm

Hello,

I wonder how should I provide Construct 2 with graphics when working with Retina displays?

I'm building an iOS App and I'd like to know what is the workflow to have high-res graphics for retina displays and low-res versions to normal displays?

I'm used with other frameworks in which we have 3 base files with naming suffix that specifies which resolution is the image in, then the framework just load the appropriate image (that avoids using a huge image for lower resolution devices, saving a lot of memory. It doesn't scale images either, because it uses the appropriate image in the exact resolution):

sprites.png
sprites@2x.png (iPhone 4+)
sprites@4x.png (iPad 3+)

The documentation isn't clear about this: https://www.scirra.com/manual/66/projects
It just states how to turn support for Retina on/off, not how graphics should be provided.

Thank you.alfred2013-01-14 16:11:45
B
7
Posts: 11
Reputation: 932

Post » Mon Jan 14, 2013 6:36 pm

Creating sprites for the largest resolution is generally the way to go.

I asked the same question when I started with C2

VRAM usage can be a concern, but on most mobile devices I've found CPU to be more of an issue.
Moderator
B
72
S
13
G
11
Posts: 900
Reputation: 11,783

Post » Wed Jan 16, 2013 4:36 am

Thank you, thehen.

I'm a heavy Corona SDK and Unity developer and I'm really used to switching graphics according to resolution.

Using the highest resolution image for all devices seems overkill. What about a crowded game running on an iPhone 3? I can't image an iPhone 3 game with a 2048x1536 background scaled down at runtime. Or even worst, a low cost Android phone? With individual images, I can easily export a 480x320 for these devices and they won't use a huge 2048px image. alfred2013-01-16 04:37:30
B
7
Posts: 11
Reputation: 932

Post » Thu Dec 26, 2013 4:13 am

I'm trying to find out about the same exact issue :(

Anyone have any tips on how to handle 2x/4x graphics through Construct?
B
27
S
14
G
8
Posts: 105
Reputation: 7,250

Post » Thu Dec 26, 2013 4:20 am

@Ninjadoodle

you can't

just use higher resolution assets

fortunetly more and more devices have higher resolution
B
18
S
6
G
1
Posts: 783
Reputation: 4,167

Post » Thu Dec 26, 2013 4:23 am

Ok, thank you for your quick answer :)

Looks like I'll have to go with one of the other tools, as there is still a lot of older/underpowered devices out there and I'd like to get the widest reach possible.

Thanks again!
B
27
S
14
G
8
Posts: 105
Reputation: 7,250

Post » Thu Dec 26, 2013 8:11 am

@Ashley

Is it possible to create an export option that automatically reduces images sizes and positions, etc to cater for lower resolution export?

E.g. 960x640 > 480x320 or 2048x1536 > 1024x768

Most of the time we start creating games with retina display sizes but end up with memory issues. This feature could safe us a lot of time manually reducing sizes and adjusting positions.

Thanks.
B
9
Posts: 18
Reputation: 561

Post » Thu Dec 26, 2013 11:02 am

The handful of devices in our office have pixel ratios of 1.0, 1.3, 1.5, 2.0, 2.24, and 3. Any pixel ratio value is possible, and on Android you get a really wide selection. In light of this I don't think it makes any sense at all to try and target one particular pixel ratio.
Scirra Founder
B
359
S
214
G
72
Posts: 22,952
Reputation: 178,600

Post » Fri Dec 27, 2013 8:39 am

Hi Ashley

(I pasted this from the other topic I posted in - http://www.scirra.com/forum/topic83270.html)

That's actually the standard way of dealing with different ratios and pixel densities. Don't get me wrong, I absolutely love construct, but I really think this is a very important missing feature.

Most of the top SDK's handle loading assets this way - Corona/Gideros/Stencyl, even Gamesalad as a resolution independence feature that allows you to load HD assets.

You wouldn't necessarily worry about creating 1.2, 1.5, 1.7x assets etc, but you should definitely worry about loading low res graphics on low powered/lo-res devices and loading hi-res assets on high powered/hi-res devices.

So, having at least 2 sets of assets - one SD and one HD would definitely be the way to go.

Trying to run a game designed for 1920x1080 on a 480x320 Android device might not be optimal as far as speed goes and neither would the opposite, as the graphics would look very blurry/pixelated.

The other bonus is that if you decide to update your apps in the future ( as resolutions get higher ) you can just upload higher resolution graphics with a (for example) @8x suffix and the engine will take care of the rest ( only use those graphics if the device is a very high definition TV or tablet ).

If you design your graphics as vectors, then exporting different sets of assets is no issue at all :)

I really think that this would a really good feature for Construct 2 to add as it is currently the best/only way to make sure you graphics look good across a range of devices (short of using vector graphics).
B
27
S
14
G
8
Posts: 105
Reputation: 7,250

Post » Fri Dec 27, 2013 3:53 pm

I have to agree here. You design your game for one resolution but then create 2-3 different resolutions for your sprite sheets and then based on screen density decide which to use. As for backgrounds depends if you want to have letterbox or not, in which case you overscan your design to not have anything cropped too much.

B
29
S
4
Posts: 57
Reputation: 1,470

Next

Return to Construct 2 General

Who is online

Users browsing this forum: pablo7 and 15 guests