John Carmack On RAGE For iOS/Android
Andrew Smith writes "John Carmack has an article up on the Bethesda blog discussing the iPhone/iPad version of RAGE, which is said to run at an impressive 60fps. 'Managing over a gig of media made dealing with flash memory IO and process memory management very important, and I did a lot of performance investigations to figure things out. Critically, almost all of the data is static, and can be freely discarded. iOS does not have a swapfile, so if you use too much dynamic memory, the OS gives you a warning or two, then kills your process. The bane of iOS developers is that "too much" is not defined, and in fact varies based on what other apps (Safari, Mail, iPod, etc) that are in memory have done. If you read all your game data into memory, the OS can’t do anything with it, and you are in danger. However, if all of your data is in a read-only memory mapped file, the OS can throw it out at will.' And a tweet by Carmack yesterday suggests that an Android version of RAGE is on the way too."
Is he angry about Android?
No, no sig. Really.
ThePromenader
Android applications are written in a Java style runtime. It's not native Linux code.
Android applications can call some native code, but it's a bit like JNI in Java.
One can expect the frame rate of the Android version will be lower than the iOS version for that reason, it's not 100% native code.
To break down the question: Why do we need this much fps in a game on a ~4 inch screen?
To understand the importance of the question, we need to understand how human eye works, and how it processes images.
Essentially, we have two kinds of cells in our eye capable of sensing light. One is capable of sensing shades of gray, and other senses a certain color (there are three different cells in this category, sensing different light wavelengths). Notably, cells sensing shades of gray can track many more image changes/second then those sensing colors due to their original purpose - tracking movement (for hunter-prey scenarios). Another thing to note is that while focus of our vision, the area that covers a very small center zone of our field of view houses vast majority of the cells that can sense colors, most of the gray-sensing cells are housed outside focus, in area of peripheral vision.
As a result, when you play a game on a large screen at home, a large portion of the screen's image is sensed by the area out of focus, and when your frame per second counter is below 60ish, the out-of-focus area begins to see separate images, while your focus still sees the flowing animation. This is what causes the uncomfortable discrepancy during high motion scenes when viewer still sees the fluid animation in his focus, but his peripheral vision doesn't, making the image look "choppy".
Now, enter mobile phones. The screen is actually small enough to mostly, if not entirely fit into our focus. This drastically cuts the need for high fps.
So why is Carmack talking about 60 fps on a graphics engine designed for phones? Is he actually clueless about the issue, is it marketing speak, or does he simply want to advertise to developers who may not be as familiar with the issue as he himself is?
Not out yet. iD and Epic are just having a bit of a pissing match with "Our latest nexest-gen video game engine with gobs of megatextures and pixel-threaded-hyper-polygons will run on *gasp* an iPHONE! So when you're looking to make your next craptastic overpriced piece of shit farmworld-on-an-iWhatever, developers, pick me! Pick ME!" Of course, this is ignoring from the fact that they look like ass and are utilizing the worst control scheme known to man.
I'm half expecting someone to announce next week that they've ported their newest game engine to a freakin' TI-82.
That's not true. You call into native and you can stay there entirely for the rendering portion so there is no JNI back and forth overhead only native.
You need the Java code just to setup the windowing system and provide integration with the platform.
Currently Android has slightly lower FPS than iPhone because it uses an outdated FP library.
The quad-core PC, fancy GPU and gigs of RAM allow you to run your PC game at a much higher resolution and graphic quality than any current-gen console. If all you want is 1280x720 with no antialiasing, you can probably get away with a dinky $50 graphics card.
Personally, I like playing flashy games on 3 WQHD monitors with all the sliders maxed out. That's 12 times more dots than a standard HDTV, and a bit more rendering detail due to AA/AF postprocessing, so it's understandable that such ridiculous graphics would require expensive high-end hardware. It's not required to just play the thing if you have more reasonable expectations than I.
-Billco, Fnarg.com