Slashdot Mirror


John Carmack's Cell Phone Adventures

Mr. Carmack has updated his blog with news of his latest interests. Apparently mobile gaming on cell phones has consumed a large portion of his time of late, and he has some witty commentary on programming for the emerging game platform. From the article: "I'm not a cell phone guy. I resisted getting one at all for years, and even now I rarely carry it. To a first approximation, I don't really like talking to most people, so I don't go out of my way to enable people to call me. However, a little while ago I misplaced the old phone I usually take to Armadillo, and my wife picked up a more modern one for me. It had a nice color screen and a bunch of bad java game demos on it. The bad java games did it."

2 of 109 comments (clear)

  1. Re:That's gonna give the Java fanbois an aneurysm by Screaming+Lunatic · · Score: 3, Informative
    John Carmack reasons very simple from a game developer point of view. Basically anything that gets in the way of direct access to the hardware annoys him. This way of thinking about writing software is not really suitable for mobile development.

    Bullshit. What Carmack is asking for is value types. That arrays of data be laid out contiguously. He's not asking for direct access to hardware. He's asking the runtime to not be so damn brain dead.

    Supporting value types will not destroy hardware abstraction.

    And this not a game developer's point of view only. For example, .NET/CLI supports value types.

    This is based on a fundamental principle of computing that contiguous data access is better than non-contiguous data access. Period.

  2. Re:That's gonna give the Java fanbois an aneurysm by John+Carmack · · Score: 4, Informative

    I did try running that benchmark, but it won't load on the i730 (score one more for run-anywhere...).

    One of our test platforms is a fairly high end Sony Ericsson, which is 10x as fast as our Motorola base platform. For a 128x128 screen, the Motorola renders about 4 fps and the Sony renders about 40 fps. Compare with Wolfenstein-3D performance (the DoomRPG engine has some extra graphics features, but it is still in that general class) at that resolution on older systems. A 386-16 would go significantly faster.

    Note that the "As fast as a ..." comparisons from the benchmark are against purely interpreted java on the P3, which is about 1/10th the speed of a native implementation, and benchmarks that focus on expression and control operations will overestimate relative performance for applications that are array access heavy. Still, if a java app on that phone performed like a P3-100mhz, it would be pretty impressive.

    It is true that a good JIT (which the phones don't have) can make java code go nearly as fast as C/C++ code that is written in the same style. The "in the same style" part is often overlooked -- in lower level languages you often have options for implementation with pointers and CPU tailoring that would make the code look very different, but go significantly faster.

    I still generally like java, and maximizing performance is only important in a rather limited subset of software engineering.

    John Carmack