3
\$\begingroup\$

I am developing a 2D platform game in unity.I have conceptualised the game and have to design the art assets/sprites, but the problem is at what resolution or size do i design them?

If I target the sprites size to iPad pro (as its has got highest resolution of all iOS device), can the older iPhone 4S handle it?

What are the best methods of designing art assets for multiple resolution(with best performance on older devices)?

\$\endgroup\$

closed as primarily opinion-based by Alexandre Vaillancourt, Engineer, Tom 'Blue' Piddock, DMGregory, Gnemlock Aug 1 '17 at 3:35

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

2
\$\begingroup\$

I think you should design for one of the larger aspect ratios and use anchors and canvas scaler to get the layout to work on different aspects.

That makes it easy later (when testing on device) to decrease the resolution if you run out of memory or if you need to optimize for other reasons. Your UI might even look good in a smaller resolution.

If I'm not remembering this wrong, iPhone 4s supports a max texture size of 4096x4096 (using OpenGLES 2.0).

Designing UI for Multiple Resolutions:

http://docs.unity3d.com/Manual/HOWTO-UIMultiResolution.html

\$\endgroup\$
  • \$\begingroup\$ Does unity automatically scales down assets on smaller resolution devices? \$\endgroup\$ – user75648 Dec 12 '15 at 17:29
  • \$\begingroup\$ Canvas Scaler will scale the content for you \$\endgroup\$ – Mattias Dec 14 '15 at 8:17
  • \$\begingroup\$ Can that improve performance on iPhone 4S? \$\endgroup\$ – user75648 Dec 14 '15 at 8:20
  • \$\begingroup\$ No, this is only the visual presentation. Performance will not be better. If you want to reduce memory usage you should look at the resolution and compression settings of you textures. You could also exclude large graphics on specific devices using device specific code. docs.unity3d.com/Manual/PlatformDependentCompilation.html \$\endgroup\$ – Mattias Dec 14 '15 at 8:24
  • \$\begingroup\$ If i include device independent assets then file size is going to be very large and remember I'm using 2d. \$\endgroup\$ – user75648 Dec 14 '15 at 8:31
2
\$\begingroup\$

Design for Aspect ratios instead of fixed resolution. Unity will automatically scale everything if it is same aspect ration. Consider this:

iPhone 6 resolution : 1334x750 [Aspect ratio 16:9] iPhone 6+ resolution : 1920x1080 [Aspect ratio 16:9]

What it means is if you designed for iPhone 6 resolution, it will be automatically scaled on iPhone 6+ ensuring consistency.

Best approach is to design your game keeping in mind 4:3 and 16:9 aspect ratios which are most common. Ideally, all your game should take place in 4:3 and have background elements so that there's no black bars/skybox visible in 16:9.

However, exactly which resolution to set for a particular aspect ratio is tricky. Best approach would depend on the most popular devices on the market. Samsung Note 4 and some Galaxy S series have higher resolution than iPhone for example. Do take a look at my answer here. That explains about finding out sizes for aspect ratios.

\$\endgroup\$
  • \$\begingroup\$ Aspect ratio will not be a problem , here my concern is about the size of the sprites. If I'm design a sprite with size 2732x1536 (keeping iPad pro in mind )it'll overload on iPhone 4S(with ram 512 mb). Can it handle the huge sprite.Even resizing the huge sprite will crash the app on 4S. \$\endgroup\$ – user75648 Dec 8 '15 at 7:19
  • \$\begingroup\$ Yeah that will be a problem on iPhone 4S. Personally, I'm myself trying out with 1337X640. Have to test how it looks on iPad pro. \$\endgroup\$ – SanSolo Dec 8 '15 at 7:23
1
\$\begingroup\$

The best resolution I consider to develop with designs, is according to iPhone6+. My designs work with all IOS, Android and WP devices. Just have to put some tricks like,

1- Use assets on scale of 0.5.

2- If your background solid in color, then no need to design, just put image to 10x10 px and resize it in Unity.

3- If your background image can afford small resizing (means no major changes occurred by squeeze or stretch it, just make a quad of unit size and scale it to the screen size. You can get 2d screen size by,

var worldScreenHeight = Camera.main.orthographicSize * 2.0; var worldScreenWidth = worldScreenHeight / Screen.height * Screen.width;

4- If above condition is not true for you thn make background little larger then screen size so it will make no difference if it clips out.

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.