Been thinking about this a lot recently as it increasingly looks likely that the iPad 3 is going to have a retina screen (although there's still a part of me that will only believe it once I see it). Anyway, it raises some interesting questions on the future of universal apps simply because of the magnitude of binary package size increase in adding these super hires assets into an app. Whilst it's been manageable with a retina iPhone because you can pretty much use the same assets you use for the iPad for that, a retina iPad would be a different beast entirely.
I'm a big fan of Universal apps and have been thinking about the possibilities to deliver super hires assets on a retina tablet (after all, it looks like there might be some Android tablets coming soon that will deliver the same kind of resolution). One solution would be to provide an in-app option to download the super hires assets on an iPad 3, otherwise it uses the standard hires assets bundled with the app. This relies on a couple of things, however:
1. The ability to provide the assets for download from a service (something like Amazon AWS for instance) and,
2. In Gideros, the ability to alter the scaling settings if that artwork is available.
For point 1, I haven't looked into network connectivity in Gideros yet but presume that wouldn't pose too much of a problem to achieve. For point 2, however, I think this is an area where Gideros would have to provide a facility in order to achieve - basically adding a scaling option only if the iPad 3 artwork assets have been downloaded. So, in essence, the ability to override scaling and asset extensions at runtime. Otherwise I can't see how this would work.
Anybody got any other ideas? I can't see that bundling is going to be an option for most apps and, traditionally, Apple hasn't provided a means to target only particular devices (look at how some apps have left consumers unhappy as they'll only work on an iPad 2, but can be purchased on an iPad 1) for an app.
But I still love Universal so I wouldn't want to drop it without coming up against a problem that simply can't be solved in an elegant way.
Comments
Current version of Gideros cannot handle this situation because the downloaded images would be stored at documents folder while the original base image would be in resource folder. And Gideros needs the base image to get the original dimensions.
This is an interesting problem and I think it should be solved in a clever way to handle all the cases.
Thank you for raising this issue.
Sorry, couldn't resist
Likes: gorkem
I'm actually pretty concerned about my Create & Play app and how the version of cocos2d I used on that handles a retina screen on the iPad. I have a fear it may go weird but until I can get my hands on one, I wouldn't be able to do anything about it anyway.
That's all still presuming that the iPad 3 does have a retina screen I still can't quite believe you could have that resolution in a tablet yet. The grunt needed to run it isn't trivial, and fitting that into a tablet form factor, well that would take some serious doing whilst keeping battery life good.
As a work around on the download side, as Gideros needs the base image for sizing, would it not be possible to also download some dummy assets along with the iPad 3 artwork that are the base size. You could create very small assets (things like transparent or blocked colour pngs which are very small in file size) simply to allow Gideros to get the sizings. The same could be done for packed textures as well, just a dummy texture that uses the same kind of flat pngs. This wouldn't add too much overhead to the download size for iPad 3 artwork.
Then in the code it's just a matter of loading either from the bundle or the documents folder depending on if the iPad 3 artwork has been downloaded, which can be done in the app logic.
Do you think this kind of approach would work or is there something else that would stop it from doing so in Gideros?
Of course, it doesn't resolve the scaling issue, but I'm trying to see if there's ways of limiting what would need to be changed in Gideros to allow this to work.
There are two approaches to develop a game with automatic image resolution.
First is:
- set logical dimensions as 320x480
- provide base and @2x (and maybe @4x for iPad 3) images
Second is:
- set logical dimensions as 768x1024 (or 640x960)
- provide base and @half (and maybe @2x for iPad 3) images
I think both approaches are valid and doesn't make a difference between two. The main difference is if Gideros runtine cannot find the image with suffix, it loads and uses the base image.
We schedule the setting the image suffixes and scaling mode at runtime to the next version.
It sounds like as it stands in this situation Gideros would use the lores images which would look awful on a super hires screen But if it could use the next best down then it would be just the same as using non-retina graphics on a retina iPhone, for instance.
Is that doable?
Likes: Yan