★ TouchArcade needs your help. Click here to support us on Patreon.

Why do non-retina games look like crap on the iPhone 4?

10-30-2010, 04:39 AM
#1
Joined: Oct 2010
Posts: 307
Why do non-retina games look like crap on the iPhone 4?

I have a iPod touch 3G and a iphone 4 side by side, running the same non-retina display games. The iPhone 4 looks crap in comparison. Why is this?
10-30-2010, 04:50 AM
#2
Joined: Jun 2009
Posts: 10,505
I actually just had the same discussion with Jared. I just got an iPod touch 4 (not for myself though) and saw the retina display for the first time today. And tbh, I dont think non retina games looked like crap at all. SF IV looked pretty much the same for me on both the 3rd, 4th gen ipods. Yeah, its not as good as it could have been with a retina display support. But it definitely didnt look any worse compared to older ipods to me really.

Or maybe I'm spoiled by the ipad. Even the retina enabled games didnt look much great to me. Side by side comparison with 3rd gen did show significant improvement in graphics but in the end, I didnt really feel retina display was all that great. The game is still the same no matter if it was retina enabled or not. Only time when I truly noticed the retina display was reading text which is now crystal clear. Also the still images looked crisp as well. But playing games, I barely noticed the graphics as it didnt really matter if there were a few jaggies or not.

10-30-2010, 05:13 AM
#3
I've seen a few non-retina games on iPhone 4 and they look better vs my 3GS. Games I compared: NFS & NFS Shift, Angry Birds, Super Mega Worm, Fragger and Pocket Tanks. Only know 3 people with 4th gens. They don't have many games.

Maybe some kinda rendering bugs in some games???

Quote:
Originally Posted by ultimo View Post
This is not Windows, this is Apple, dude
10-30-2010, 11:56 AM
#4
Joined: Sep 2010
Posts: 459
Native display resolution of Retina devices = 960x640
Native display resolution of non-Retina devices = 480x320

What is display resolution? Click me. I don't mean to offend, but I'm honestly surprised that people don't just know this. Look at a picture in a magazine from a normal viewing distance and then with a magnifying glass. The concept is similar.
10-30-2010, 12:24 PM
#5
Joined: Apr 2009
Location: 31.560499, -111.904128
Posts: 7,471
Quote:
Originally Posted by cherdman View Post
Native display resolution of Retina devices = 960x640
Native display resolution of non-Retina devices = 480x320

What is display resolution? Click me. I don't mean to offend, but I'm honestly surprised that people don't just know this. Look at a picture in a magazine from a normal viewing distance and then with a magnifying glass. The concept is similar.
No, people understand that. But what doesn't make sense is why standard resolution games look better on non-retina devices. When standard res games are upscaled to a retina display screen, for every 1 normal size pixel, a clump of 4 smaller retina display pixels are used. So in theory, the game should look just as good on the retina display as it should on the older devices. But often, games look worse. My guess is that the 4 smaller retina pixels aren't quite as small when clumped together as a standard sized pixel. This could be the reason that some games look slightly pixelated on the iPhone 4.

Hakuna Matata

Last edited by LBG; 10-30-2010 at 12:27 PM.
10-30-2010, 02:57 PM
#6
The problem is a bug in Apple's handling of OpenGL games and up-scaling to the Retina display resolution...

I wrote about this a bit here on a few occasions in the last two months. Basically if you understand the bug and how to work around it you CAN make non-retina games look pixel perfect on the iPhone 4 and iPod Touch 4, but I don't think enough developers know about this issue. Here's a few of my posts on the topic:

Quote:
Originally Posted by CommanderData View Post
This is actually the truth. I am very surprised no one else mentioned and noticed this.

Any game using OpenGL and will look smoothed over and lightly blurred on the iPhone 4 (and now the iPod Touch 4). Games that use CoreGraphics/Quartz drawing are unaffected.

This blur/smoothing is easiest to see with a "Pixel Art" game, such as my upcoming Spirit Hunter Mineko, where I discovered the problem. Ideally with pixel art you want hard lines and well defined dots. Mineko looked great on my 3GS, but once my iPhone 4 arrived, it almost looked out of focus despite the screen being so amazing!

It is a bug in handling of EAGL layers in iOS 4. I have found a work-around to kill that smoothing filter and get crisp graphics back. Apple is aware of the problem, but as far as I know it has not been fixed in 4.1... Also not fixed in 4.1 is the crippling slow CGContext draw speed that was introduced in iOS 4. Being a developer is tough when you have to keep jumping through hoops to compensate for bugs in the operating system

Quote:
Originally Posted by CommanderData View Post
Actually this is incorrect, or at least incomplete information. You can change the quality of and type of scaling done to your frame by changing the CAEAGLLayer.magnificationFilter. It defaults to kCAFilterLinear scaling, but you can choose kCAFilterTrilinear filtering for enhanced results.

You can also choose kCAFilterNearest if you want to maintain the hard, blocky style of pixel art like I do in my upcoming game (there's a catch however, continue reading)...

If you've played a pure pixel art game on an iPhone 4 you might have noticed the soft and fuzzy feel to most of them. Turns out iOS 4 has a bug that prevents kCAFilterNearest from doing what you want unless you trick it with a funny contentsrect for your CAEAGLLayer like (0.0001, 0.0001, 1, 1). Only then will it render the sharp edged sprites exactly as you'd see on 3rd gen and lower devices. Apple is aware of the issue, but I don't believe its been fixed yet in the public 4.1 or new beta (thought I haven't tried my code on either one yet).

The takeaway here is pretty much what these other guys are arguing. Changing a couple of lines of code does not make a *quality* retina enabled game. To do that requires far greater investments of time/effort and money.

--- ChronoSoft ---
Support your roguelikes! Play Rogue Touch today!
Spirit Hunter Mineko: Demons Reach --- Work in progress! Follow us on Twitter!
12-09-2010, 07:06 PM
#7
I tried that solution, kCAFilterNearest and the (0.0001, 0.0001, 1, 1) rect, was brilliant for my pixel art game, but, there is a bug on iPad with last update (4.2.1), I couldn't believe the review someone left on my game, saying the whole thing was inverted, like on a mirror, but it's true!! All images are displayed mirrored, but funny, all touch action keep on place.

Pretty weird...

I'm really annoyed now, cos I though I had found a solution for the retina display and low resolution graphics, but now back again to the fuzziness... If I could afford to re-do the whole set of graphics, no doubt I would, but I just cant!
12-10-2010, 04:57 PM
#8
Joined: Mar 2009
Location: Canada
Posts: 1,076
Non-retina Apps *do* look worse, much worse, due to the automatic linear filtering applied to the CAEAGLLayer. Linear filtering is garbage. Apple should have gone with nearest neighbour (straight pixel-doubling) so the devices all look the same.

You can of course change the filter type in your code (or at runtime with Retinasizer).

😈
12-10-2010, 05:01 PM
#9
Joined: May 2010
Location: Lexington, KY
Posts: 2,375
Send a message via AIM to SkyMuffin Send a message via Yahoo to SkyMuffin
Part of the problem is also from the Pointilism effect. More pixels in the same space = brighter/more intense colors, which may throw some color balances out of whack. It's especially obvious in Solomon's Boneyard.

i'm a pretty kitty cat
12-10-2010, 05:54 PM
#10
I think Apple should have addressed this issue, I agree retina display is great, but for god shake, for new apps! I wish I could have the money to re-do all my graphics (pixel art) for new resolution, but I can't.

That solution setting the CAEAGLLayer nearest filter and rectangle works perfect for iPhone 4 (even with 4.2.1) but it doesn't on iPad 4.2.1, that's was the purpose of my initial post, just to warn people that has been using like me that solution.

I had to release and update to not apply to iPad's, but I'm worried in a future update it may even broke on the iPhone 4.