I’m running out of memory on the iPad 1 I’m testing my game on ( have just been testing on an iPhone 4 for a couple months, where it runs like butter.) It has 256MB (vs 512MB in newer devices) of RAM. Apple’s announced that it will not run iOS 6 so is now at its official end-of-life / planned-obsolescence lame-duck / craigslist bargain bin phase. Do I try to fix this with lower quality textures and sounds and reduced effects for the first gen iPad? Or just… let it go, knowing that as time goes on fewer and fewer people will still be using their iPad 1 and new iOS devices will be coming out with a gig of memory?
But I feel there are still a lot of them out there. Does anyone know where I can find a current breakdown of percent iOS users by hardware?
You can do what Cubemen did and just require the front facing camera. That will automatically exclude it.
The ipad1 was not exactly a top seller compared with its successor and only few gamers actually got it, thanks to apples decision to back up the 4th gen and ipad1 devices with a GPU that was more than just slightly underspeced. Also the decision to not use the same amount of RAM on ipad1, iphone4 and itouch4 has always caused major problems (first shown in Epics citadel demo which flat out crashed on iPad1 and iTouch4 till Epic integrated special handling). Most users on iPad1 got it as productivity tool and due to the impact of the very bad gpu and the ram on the games, only casual gamers likely ever started adopting it for playing.
It sold fine compared to single Android tablets, I think something like 16.5M devices before being removed.
Thats a fair amount theoretically, practically the 256mb ram SGX 535 have hurt its performance quite badly in some areas on iOS5 and the lack of Apple support for its productivity apps on it (imovie and others) kinda put a curse upon it the day the iPad2 landed (already before but then it didn’t compete with itself). I’m unsure who is still using it for real beside those using it for light work and those are not likely to get your game if you have one that requires graphic degradation to even run on it.
Your main problem will be: how are you going to handle the itouch4 where this little hardware exclusion trick does not work and which suffers the same prob. Easiest way normally would be to just force it into the 3GS (ipod / iphone) handling
I don’t want to artificially exclude any devices- I think it would just be a matter of stating the minimum system reqs as “iPad 2 / iPhone 4” but with a note that you’re welcome to go ahead and try to run it on your older device; just expect it to look crappy and eventually quit on you anyway if you have anything else open.
Guess I am just feeling guilty for enabling Apple’s “2 years, 2 OS versions or 2 device generations, whichever comes first” supported lifespan policy; but I guess that’s what people should expect to get for being an early adopter of a non-upgradeable gadget from a company with that reputation.
I’d like to know what other company offered a tablet on April 3, 2010 that you still want to develop for.
Now, supporting iOS 6 on the 3GS, but not the equivalent iPod touch? That’s pretty lame. Almost as lame as offering the same inferior piece of junk for two years since. >:-O At least the iPod touch is redundant if you’ve got money for a data plan.
Thats called ‘please rate me with 1 star and ensure that I will not sell more than a handfull of copies’ kamikaze all out release, as thats exactly whats going to happen normally.
People give a damn about the apps description in case of a crash, even more so if they paid for your app and you failed to ensure that it works in 99%+ of the cases on the devices to which you sold it.
On top of that, Apple actually might even reject you for giving ‘guidelines’ on what users are forced to do to use your app (stating they need to restart in case of constant crashes is such an occassion for example) as it goes against the guidelines. Apple sells an experience and expects its developers to do so too or they take their freedom to ensure that you never mess the experience up at all, which is the case if you know upfront that your app has a fair chance of failing due to you not adopting to the limits properly.
you better force the ipad1 onto using the 3GS resources than risking a crash
The experience you offer should be tailored to the lowest possible spec you’re willing to support. Either put in iPad 1 specific fallbacks so that performance isn’t affected, or simply don’t support the device.
However, there are a lot of iPad 1’s in the wild, that are all still actively used, I don’t think it would be wise to ignore the platform.
How do you not support iPad 1? I’m working on a project right now that I just discovered will not run on iPad 1 (low memory crash on launch). Maybe at some point I’ll try to get it running on iPad 1 with lo-res textures, but for now I’d prefer to just not support iPad 1. What do I have to do to make sure it’s iPad 2 or later only? I don’t see any setting in Unity. Is it something you specify when submitting to the store?
Make it require iOS 6.0 would probably be the answer (you can check that in Unity at least), since iPad1 doesn’t support that. That’s the “Apple approved” way to drop older hardware from the supported list. Even works on app updates, where you are absolutely not allowed to drop support for hardware that worked for earlier versions. iPhone 3GS (barely) runs iOS 6.0, so if your application is going to be universal, be sure to check whether it runs on that. Pretty low end device, too.
This is the exact issue I’m facing right now. My game runs ‘fine’ on 3GS, perfect on 4S but doesn’t even load on iPod 4. I’m in the middle of trying to find out why but I’m suspecting memory (however, tests so far by removing objects etc are still failing).
This will probably deliver you bad ratings for the iPod Touch 4. Don’t do it.
Load alternative skins - yes, make your game less ugly -, make a classic version or discourage users to install it on the device (but they will probably try to install it anyway).
iPad1 has caused us a lot of troubles as well, and it took a lot of tweaking and testing to get Gluddle running. Apple should have equipped it with twice the memory.
With a lot of if (iPhone.generation == iPhoneGeneration.iPodGen4) { // load 3GS low res assets } as you would need to do it on the ipad1 too
Though on Unity 4 there is an easiler solution as Screen.SetResolution now works which would enable you to change the screen resolution if your logic that handles the scene / resource loading otherwise based on the screen resolution.
iPad1 is the first device to crash: only 256 mb of memory and a larger screen. iPod Touch 4 is the second device to crash, 256 mb as well and also a bigger screen. 3GS isn’t that critical if you load lo res assets, iPhone 4 will probably be fine as well.
Watch the console in Xcode for Application received memory warning.
Of course it’s ok. A recent report shows the combination of iPad1 + iPhone 3GS users is less than 4% of all iOS app downloaders. Require front-facing-camera and be done with it. Make sure to post a reason why when you submit or it will be swiftly rejected though if you’re not really using the cam.