Slashdot Mirror


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."

17 of 105 comments (clear)

  1. Rage? by ThePromenader · · Score: 5, Funny

    Is he angry about Android?

    --

    No, no sig. Really.

    ThePromenader
    1. Re:Rage? by Mitchell314 · · Score: 2, Funny

      D'roid rage?

      --
      I read TFA and all I got was this lousy cookie
    2. Re:Rage? by Anonymous Coward · · Score: 2, Funny

      DROID ANGRY, DROID SMASH

    3. Re:Rage? by klingens · · Score: 2, Informative

      RAGE is the 3D game engine Carmack/id Software wrote. Now they want to port it to smartphones and pads to enable others to build 3D games there.

    4. Re:Rage? by Narishma · · Score: 4, Informative

      No, the RAGE engine (which stands for Rockstar Advanced Game Engine) is the one used by Rockstar in their various recent games (GTA4, Red Dead Redemption and others). id Software's engines are called idTech and the one used for Rage the game is called idTech 5.

      --
      Mada mada dane.
    5. Re:Rage? by lightversusdark · · Score: 2, Insightful

      I don't blame him, I would be hesitant of committing to shipping such a demanding, immersive application with the same performance on Android as can be delivered on iOS.

      I got modded down the last time I tried mentioning this, but as someone currently making an income from Android development:

      Android audio is a MESS.
      Even if it improves anytime soon, not all devices will be getting OS upgrades.
      Other unresolved issues I've mentioned are why fragmentation is becoming a more and more valid criticism of the platform.
      And to any fanboys with modpoints, I'm not a shill, I took a gamble investing my time in learning yet another platform, and I have to deal with these frustrations every day.

      --
      "There is nothing nice about Steve Jobs and nothing evil about Bill Gates." - Chuck Peddle
  2. Re:so... by gilesjuk · · Score: 3, Insightful

    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.

  3. 60fps on a phone? Why? by Luckyo · · Score: 2, Interesting

    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?

    1. Re:60fps on a phone? Why? by willy_me · · Score: 4, Informative

      So why is Carmack talking about 60 fps on a graphics engine designed for phones?

      Generating graphics is not the only task given to the CPU*. There are many other parts to a game that all require CPU time. So if a game can get high frame rates it implies that there will be some CPU available for the other important parts of a game.

      *And I realize that the GPU does most of the work with graphics but the CPU is also an important part of the equation.

    2. Re:60fps on a phone? Why? by MartinSchou · · Score: 2, Informative

      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?

      Or perhaps, just perhaps, he is happy about 60 fps on a phone, simply because it gives a 100% headroom for situations and games that require more than the RAGE demo?

      I don't know about you, but personally I'd rather have 100% headroom than 0%.

    3. Re:60fps on a phone? Why? by Narishma · · Score: 2, Interesting

      They're not in that market anymore. They do not want to license (and support) their new engines.

      --
      Mada mada dane.
    4. Re:60fps on a phone? Why? by NoSig · · Score: 2, Interesting

      Let's go with your stated finger-lag of 1/30 second. For an insanely fast game, it will display a reaction to that on the next frame, which at 30 fps can be 1/30 second later. So the total lag is 2/30, which is double of the lag in the real world. If you run at 60 fps, the total lag will instead be 1/30 finger lag plus 1/60 game lag, for a total of 3/60, which is 1/60 less than before. There is no physical impossibility in being able to detect a difference of 1/60 second. Now add to that that some games take, say, 4 frames to react, and then at 30 fps you get a lag of 5/30 second while at 60 fps you get a lag of 6/60, which is 4/60=1/15 second better. And yes, Rage isn't just a display engine, it's also doing path finding and so on at 60 fps.

    5. Re:60fps on a phone? Why? by UnknownSoldier · · Score: 5, Informative

      Sorry for sounding like a jerk, but your exposition on rods and cones is all nice and good, but it is _completely_ missing the point, and tells you have never actually shipped a game.

      1. You provide "head room" or "breathing room" so when the level designers and artists go crazy, you don't blow you frame rate budget,
      2. If you can't hit 60 Hz when you ship, you can still EASILY hit 30 Hz. It is MUCH harder when you are already barely pushing 30 Hz at alpha/beta and you need to guarantee every playable area needs to hit 30 Hz without having to drastically redo levels / models, and/or optimize code
      3. 60 Hz is smoother then 30 Hz, (yes there are people that can tell)

      > So why is Carmack talking about 60 fps on a graphics engine designed for phones? Is he actually clueless about the issue,
      As he practically _invented_ 3d first person shooters on PC, I _seriously_ doubt that.

    6. Re:60fps on a phone? Why? by billcopc · · Score: 2, Insightful

      He's talking about 60 fps because he's proud to have achieved this level of performance on what is widely perceived to be a piece of shit platform for 3D graphics.

      It's the same pride that keeps the demoscene alive to this day, spurring coders to cram dazzling animations and music in 4096 bytes of mind-twisting code. That drive to bring out a computer's fullest potential through tireless tweaking, profiling and creative thought.

      It is far too easy to be lazy with today's fast PCs and GPUs. There is so much power in these chips that even the sloppiest code can run at acceptable speeds. It takes true dedication and a bit of masochism to buck that trend and push this generous hardware to its limits, and that is what Carmack does best.

      If he could make Rage run at 100 fps on the iPhone, he would - he knows full well that it would be impractical, but from an engineering perspective, it would be more efficient, meaning you could take the 100 fps engine and lock it to 60 fps (or even 30), and benefit from lower power consumption or more CPU available for other tasks.

      --
      -Billco, Fnarg.com
  4. Re:Ported? by MachDelta · · Score: 2, Insightful

    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.

  5. Re:so... by Anonymous Coward · · Score: 3, Informative

    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.

  6. Re:It has to be asked... by billcopc · · Score: 2, Insightful

    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