Thursday, 24 May 2012

Retina resolution and lazy developers

This blog has been sitting in my drafts for many weeks and would have been more relevant a while back but I though I'd finish it anyway...

A lot has been said about the new iPad's wonderful Retina resolution. Apple fanboys love it and are, seemingly, running magnifying glasses over every app, counting the pixels. Only full retina resolution is good enough. This is understandable as it is the main difference between it and the iPad2 and does look amazing.

It's also pretty easy to support. For Topia, and I imagine most other 3D universal apps, it 'just worked', the test for Retina that already existed for iPhone just kicked in and doubled the resolution, there were two issues though, one was that the UI was too small (this took an hour to fix), the other is the subject of the rest of this blog...

So, everyone who has bought a new iPad is waiting for stunning new retina-supporting games and excitedly downloading updates for their existing apps (which are all at least several megabytes bigger, but that's another story) and any dev who delivers an app that runs at full speed in 2048x1536 gets a bunch of fresh five star reviews, applauded in forums and called awesome in podcasts while those who don't are considered disappointing at best, lazy at worst.

 Lazy devs

Consider two developers:

Developer A

Imagine a developer aiming to support the first iPad. Rendering terms the new iPad is much more than 8X faster so has no trouble at all filling 4X the pixels. In code terms support for the new iPad might take an hour or so or in some cases, no work at all. 2D graphics redesigns of course take much longer but that depends on the game.

Developer B

Now consider a developer who was making the most of the extra horsepower of iPad2, adding cool shaders to make a game that looks more Xbox360/PS3 than 10-year-old-PC.
It's very likely that when it was first run on the new iPad at Retina res, the frame rate dropped considerably.

At this point they have several options:

  1. Accept the lower frame rate
  2. run at a lower resolution
  3. make the Retina version run full res but use cut down shaders so it doesn't look quite as cool as iPad2
  4. Optimise (and maybe pull a few features from) the 'nice mode' shaders so the Retina version runs full speed and the visual quality of the iPad2 version is slightly compromised
  5. as above but add an optional super-shader mode (possibly even beyond what you're doing for iPad2) that really shows of what the graphics chip can do but at non-retina resolution

Unfortunately, at the moment at least, the first three options would result in complaints and one star reviews from the pixel-counters. Option 4 is the only sane way to go (other than being Developer A).

Option 5 is of course the real solution but I think it would just confuse people and not worth the risk.

The question is of course, who is the lazy developer? A or B? I know who the stupid, time wasting developer is already...


  1. Hi find this extremely amusing to see some dev crying because they must support 3 differents KNOWN hardware VS :
    - all the devs that are doing dev on Android with hundreds of different models
    - all the devs that are doing dev on PC where almost no one is like the other one...
    - all the devs that are doing soft for multiple console architectures (XBOX VS Wii VS PS3)
    - all the devs that are doing web dev with all the bullshit available on earth
    - etc...

    My take is that those people complaining just should change of job, dev is not for them...

  2. Who is crying? Nice reply but it seems you saw what you wanted to read rather than what I was actually saying.

    To spell it out: I'm saying that by giving the new iPad 4x the pixels and only 2x the GPU and then selling it almost entirely on that screen, Apple have effectively discouraged developers from pushing the graphics. It's arguably a step back from iPad2 while reviewers care more about 'native retina' than anything else. Hopefully that'll change pretty quickly.

    I've been doing cross platform development for 25 years and took several weeks of time I don't have on my already delayed game to make sure it runs at 30FPS in full iPad Retina.

    My last iOS game is also running on Android where it has custom code to support two different glasses free 3D systems and the pop out 'Playstation' controller on the Xperia play...

  3. It was not against you, but against the lazy devs ;)

    You were speaking generally so I answered generally too, no offense :D

  4. Not many devs are complaining about it, I suspect to most (the 'lazy') , the new iPad is just a big screened, fast iPad1.

    I was asked to give my reactions to the new hardware by a popular website when it came out but my reactions ("too many pixels for the GPU") weren't used, instead they just quoted a bunch of people using it as an opportunity to say how awesome their games were going to look with all those extra dots...

    Any dev with a game that was pushing the iPad2 hard enough to have a problem on the new iPad was being far from lazy.

    I just find it ironic that those putting in the effort to do something cool are being called lazy or stupid by 'reviewers'.

  5. I totally agree about that. As almost all tests are proving (especially on Anandtech), the new iPad is "just" as fast as iPad 2 but with retina. Not more powerful at all.

    But yeah, apparently, I missed the fact that you weren't happy because you were called lazy by crap reviewer. Sorry about that.

    But I think that the App Store need a lot of work because reviews are just unfair and you can't do anything about reviewer.

  6. I wasn't called lazy, I haven't released anything for it yet, just reading forum posts and reviews and listening to podcasts since it came out.

  7. The key take-away being that this is only a problem if there's actually a sizeable number of people who care what that kind of reviewers say, which I highly doubt. iOS is a very broad mainstream platform, I doubt many people buying these games know what display resolution even means. They want to play a fun game, and will (rightfully) shake their heads if you tell them that you can see jaggies if you take a magnifying glass to the iPad.

    The App Store is so mind-bogglingly full of games, and so many innovative and interesting and wonderful ones, that I cannot imagine that there will ever be a time when graphics (the technical aspects, not the artistic ones) will be an even remotely material factor in people's purchase decisions.

    Bottomline, the pixel nerds are a very vocal, but small and silly group. It's annoying that their reviews can drown out those that actually discuss the game in question, but I don't see that influencing the potential buyers that matter.

    1. Reviews do *really* matter on IOS. It does not take many negative reviews to kill an app :(

    2. Sorry, the reply below was of course in response to this thread—the Reply link doesn't seem to work on Safari iOS =)

  8. Have you got any data to back up that assumption? Because even I rarely notice or think of reviews when browsing the AppStore or checking out a specific app. They're not overly visible. My decision usually depends entirely on description, screenshots (most important, first impression!), and price. And I can't imagine less technologically interested folks care about much more either.

    The way I see it based on my own app development/deployment experience, any app entering the App Store/Marketplace is dead on arrival, and can only be brought to life through massive marketing, luck, or third-party promotion and word of mouth. Negative feedback might kill you off completely if that is all you get. But without lots of really positive feedback you're boned anyway. And by the time you get some, the negative hardly factors into the equation if it's not dominating.