I would like to ask if someone can explain to a beginner in game development; the recommanded techniques to publish a game for different types of resolutions/aspect ratio. My main concern is publishing a game for various mobile devices, including both Android and iOS.
Up until now, I always was in doubt on which aspect ratio to select when starting developing a game. 16:10 and 16:9 seem the safe choice. (for landscape)
As I am learning my way through the different tool packages that I bought from Unity Asset Store, such as the 2D Toolkit and NGUI, they both mention a method to create different atlases of same textures but different quality.
They also provide good scaling tools for both textures and fonts and so I’m guessing that a 2D game would scale accordingly to the screen resolution.
So here I ask;
Why do you have to create different atlases of same textures when these can be scaled?
Which ‘types’ of texture qualities are needed to publish a game for most resolutions? … in other words; how many atlases should I create and of which texture qualities?
When and how do you choose to use one atlas from another? Do you choose to use an atlas by hard coding it? or you have to choose manually the atlas before you play the game? Further more … which are the suggested texture qualities for which mobile devices?
What about fonts?
What about SD and HD?
Does this mean, that in case of Android publishing, one needs more than one apk to provide the game for various screen types?
I am sorry for the list questions asking here, but I wish to have a good understanding on this as a whole subject. If you can point me to any references that can answer some of my questions is enough as well.
Well Im sure I wont be covering all of the points to be made here regarding resolutions, but I’ll share some of the experiences I’ve had.
iOS aspect ratio will typically be 4:3 as used on most iPhones and iPads. The iPhone 5 however does break this by using 16:9. As for android, I dont have any hands on experience developing for them, but from what i can tell looking at the range of android phones, you’re likely to be looking at a whole bunch of different resolutions and possibly aspects as well.
As for texture scaling, in the past, most mobile devices could probably have gotten away with just one set of texture sizes, as although the positioning may have changed (good point to note, with resolution/aspect changes, sometimes its better to just reposition screen elements instead of resizing them which will bring in noticeable artefacts), However now with larger displays on tablets and particularly Retina screens, you may want to use larger assets for better quality (note also i mean create assets larger, don’t just scale the smaller ones).
Texture qualities for devices though cant be answered in a blanket statement, if you have a large project with lots going on visually, the framerate hit might require you to lower the size, quality, filter settings etc accordingly, but for smaller, far less intensive projects or demonstrations, you can often crank the settings right up without noticing any real performance hit, So this is often going to depend on your project, an what framerates you’re getting with it.
One other thing that might be worth mentioning on the resolution/performance topic, is that on iOS in unity 3.5 there was no way to fix the render size on retina displays (not without using render targets in pro I mean) which can mean a game running at 30 on a iPad2 would only run at 16 on an iPad3. Now I think that in Unity4 this has been addressed and you have a render size option in the player settings, but I’m not certain about that.
Hope that some of this information might have been useful to you.