Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

John Carmack's Cell Phone Adventures

Zonk posted more than 9 years ago | from the poking-tiny-space-marines dept.

Portables (Games) 109

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

Sorry! There are no comments related to the filter you selected.

Time consuming (4, Funny)

kryogen1x (838672) | more than 9 years ago | (#12066655)

Apparently mobile gaming on cell phones has consumed a large portion of his time of late

No kidding. When I play chess against the AI on my phone, the thing takes minutes to make a move. It usually takes 20 minutes to play a game that would take two humans to play in 5.

Re:Time consuming (2, Funny)

TheGuano (851573) | more than 9 years ago | (#12066716)

Well, don't expect it to get any faster, but I'm sure Carmack will add some kick-ass per-pixel lighting and dynamic shadows to the board and pieces!

Re:Time consuming (3, Funny)

Mr.Dippy (613292) | more than 9 years ago | (#12068374)

Imagine playing Chess in dark and you can't move your pieces until you put down the flashlight becasue you only have one hand. I can't wait for the fun.

It's outsourced. (5, Funny)

AtariAmarok (451306) | more than 9 years ago | (#12066818)

They were too cheap to complete a chess program with good AI. You are not waiting for a slow computer. You are instead waiting for a rather frazzled guy in Mumbai whose job it is to play the computer opponent in anywhere from 10 to 50 phone chess games at any given time.

Re:It's outsourced. (5, Interesting)

dougmc (70836) | more than 9 years ago | (#12067266)

You are not waiting for a slow computer. You are instead waiting for a rather frazzled guy in Mumbai whose job it is to play the computer opponent in anywhere from 10 to 50 phone chess games at any given time
I know you're joking, but you could very well be giving the future of cell phone chess games too.

Cell phone cpus are slow, and suck up the battery while they're working. But an entire chess board layout is very simple, and it wouldn't take much bandwidth to transmit your entire chess board layout to a remote computer which could then calculate the next move and transmit it back. (And that's assuming that the remote computer keeps no state information. If it kept track of the chess board itself, the bandwidth needed per move would just be a few bytes.)

I could see a cell phone company buying Deep Blue [ibm.com] or some similar big honking box and reprogramming it to play lots of games at once. Then release a chess application for cell phones that uses the data capability to allow you to play chess `against Deep Blue.'

Sure, Deep Blue would not be playing 1000 simultaneous world-class chess games (though for an extra fee, you could get more cpu dedicated to you giving you a better opponnent), but it could probably beat most people. (The only reason to use Deep Blue itself is for the name recognition. A number of racks of PCs would work too, but it wouldn't have the obvious marketing potential.)

This is one case where having a remote server do most of the work makes perfect sense. (Having a PC play chess with a remote server doing the work makes less sense, as a PC has much more cpu to work with, so it's not as needed.)

Re:It's outsourced. (1)

tehcrazybob (850194) | more than 9 years ago | (#12068975)

Cell phone cpus are slow, and suck up the battery while they're working. But an entire chess board layout is very simple, and it wouldn't take much bandwidth to transmit your entire chess board layout to a remote computer which could then calculate the next move and transmit it back. (And that's assuming that the remote computer keeps no state information. If it kept track of the chess board itself, the bandwidth needed per move would just be a few bytes.)

I think the amount of battery required to power the transmitter long enough to make a connection and transmit data from your phone would be far greater than running the phone CPU to compute that move. I imagine this chess game would be doing something similar to sending a bunch of text messages in the background, and my experience with those shows them to be slow and fairly power-consuming, even if they are reliable (my phone will text message accurately even if it doesn't have enough service to carry on a voice conversation).

Just remember (1)

AtariAmarok (451306) | more than 9 years ago | (#12070336)

The only way we are going to satisfy the Turing Test is to have a small sweaty man inside a silver-painted cardboard box, with a typewriter, feeding answers to the test questions to the outside through a slot in the cardboard. Lots of flashing lights and a cool-looking "CYBERCOMPUVAC" logo on the side helps the effect.

Re:It's outsourced. (1)

dougmc (70836) | more than 9 years ago | (#12077341)

I think the amount of battery required to power the transmitter long enough to make a connection and transmit data from your phone would be far greater than running the phone CPU to compute that move.
It depends. Chess is probably an extreme example, but it wasn't me that first brought it up.

Sure, you could make a chess game that only looked forward one move and this could probably run on a cell phone just fine, and be pretty fast. But if you want a game that can beat almost anybody, you'll need a lot more computing power and memory. Deep Blue did one trillion operations per second [thocp.net] -- and this was needed, as it only had a few minutes per move to calculate it's next move -- 40 moves/2 hours in the first two hours [ibm.com] .

In any event, chess fits the `low bandwidth used, but extreme amounts of cpu needed to compute each move' paradigm perfectly. At least for world class chess :)

Re:Time consuming (3, Insightful)

ShamusYoung (528944) | more than 9 years ago | (#12067060)

I'll bet developing for tiny mobile platforms is really rewarding for him. Think about it: He rose to fame by taking very, very limited early-90's platforms and making them render cool things. A lot of his work over the years has been focused on getting the most out of a given system, finding tricks to reduce memory usage, to speed up framerate, and to limit the size of the game itself. Over the years his goal hasn't been simply to "do more", but to "do more with less".

Today the focus is not so much on those things (we have lots of CPU cycles and memory to go around) but to spend those cycles making the most attractive images as possible. There is far more focus on asthetics and art, and less on raw technological power.

Developing for a limited platform like a cellphone has much more in common with his roots: Find a way to squeeze something special out of this system that nobody else thinks is even possible.

Carmack (0)

Anonymous Coward | more than 9 years ago | (#12084647)

John Carmack's cell phone will make you his bitch!

Y'know (0)

Anonymous Coward | more than 9 years ago | (#12066698)

Of all the people who get fawned over in stories and comments here, Carmack has to be one of the coolest (along with Linus and Wozniak, with Lawrence Lessig and Michael Robertson at the bottom).

The guy loves tech, loves to contribute money where money is needed and his time where that's enough.

Re:Y'know (1)

Klowner (145731) | more than 9 years ago | (#12067989)

You did not suggest that Michael Robertson was even ON your cool list, did you? Even at the bottom, that's just not right.

Re:Y'know (1)

BigBadDude (683684) | more than 9 years ago | (#12068281)

He said at the bottom, and for what we know, that list could contain 6.2 billion names.

'I don't really like talking to most people' (5, Insightful)

arcanumas (646807) | more than 9 years ago | (#12066732)

I don't really like talking to most people

A true geek :)

Re:'I don't really like talking to most people' (3, Funny)

Anonymous Coward | more than 9 years ago | (#12067259)

...and my wife picked up...

nope.

Re:'I don't really like talking to most people' (-1, Flamebait)

Anonymous Coward | more than 9 years ago | (#12069009)

Geek + millions of dollars = (gold digging) wife.

Re:'I don't really like talking to most people' (0)

Anonymous Coward | more than 9 years ago | (#12078250)

He's a geek with lots of money. Get it?

Quake... (2, Funny)

alexandreracine (859693) | more than 9 years ago | (#12066749)

Are you not suppose to be working on Quake 4 or something? Don't tell me you will release Quake 4 on the phone!

Re:Quake... (1)

KDR_11k (778916) | more than 9 years ago | (#12067198)

Quake 4 is handled by Raven, not iD. Carmack should be concerned with Doom 3 patches at the moment (for example that sound problem in multiplayer) and perhaps the expansion pack.

Or perhaps tweaking the engine for their next game. He said it'll be a new franchise so perhaps we'll even see some innovation this time...

Re:Quake... (1)

snuf23 (182335) | more than 9 years ago | (#12070435)

If you look at the post from December 2004:

" and the fact that the work I had been doing at Id for the last half of Doom 3 development was basically pretty damn boring.... but the work at Id is back to a high level of interest now that we are working on a new game with new technology."

While that could be the Doom 3 expansion, it doesn't sound like it. Maybe something new we'll see in '07 or so.

Re:Quake... (1)

floodo1 (246910) | more than 9 years ago | (#12073566)

the part about raven....yeah its a "crying shame", seriously if i wasnt accustomed to corporate whoratry i'd cry :(

Yes, but.. (5, Funny)

Anonymous Coward | more than 9 years ago | (#12066753)

..how long will it take him to color the entire screen black and call it Doom 3 for mobiles?

There too? (2, Funny)

AtariAmarok (451306) | more than 9 years ago | (#12066785)

"how long will it take him to color the entire screen black and call it Doom 3 for mobiles?"

It's bad there too? I remember "Doom" for Nintendo 64. You wanted to shine a flashlight at the screen, it was that bad. For those if you who have not experienced it, try playing your favorite game while wearing sunglasses 3 deep.

Bedeviled by Bejeweled (1)

tiktok (147569) | more than 9 years ago | (#12066755)

If I weren't for Bejeweled 2 on my Mypal A620, I'd be consuming my morning commute with Push Push on my Samsung.

Re:Bedeviled by Bejeweled (2, Interesting)

afd8856 (700296) | more than 9 years ago | (#12066945)

get a palm man, read some books!

Re:Bedeviled by Bejeweled (1)

heavy snowfall (847023) | more than 9 years ago | (#12069234)

and get iSilo & warfare inc with that.

Re:Bedeviled by Bejeweled (1)

jimi the hippie (725322) | more than 9 years ago | (#12073611)

I assume you mean a Palm Pilot. Why would he need one of those to read books?? I read for years before I ever got one. I still often read books without using mine.

Re:Bedeviled by Bejeweled (1)

afd8856 (700296) | more than 9 years ago | (#12074698)

as a hippie you should know the value of sharing and not cutting the trees :)

Re:Bedeviled by Bejeweled (1)

mobby_6kl (668092) | more than 9 years ago | (#12074422)

> get a palm man, read some books!

And what do you think Mypal A620 is, an artificial vagina? ;)

It is an Asus PocketPC, a slightly faster version of A600 I have, plus CF slot. Reading books is, BTW, one of my favorite uses of my PDA. It also runs DOOM fine and Quake just barely playable.

Re:Bedeviled by Bejeweled (0)

Anonymous Coward | more than 9 years ago | (#12075125)

To make an analogy to what he said, "get a Mac, play some games!"

That's gonna give the Java fanbois an aneurysm (5, Interesting)

Anonymous Coward | more than 9 years ago | (#12066759)

The biggest problem is that Java is really slow. On a pure cpu / memory / display / communications level, most modern cell phones should be considerably better gaming platforms than a Game Boy Advanced. With Java, on most phones you are left with about the CPU power of an original 4.77 mhz IBM PC, and lousy control over everything.

Heh - that should put the "Java is just as fast as native code" myth to rest. It won't, as people will claim that Just In Time compilation should solve it, but...

Even compiled to completely native code, Java semantic requirements like range checking on every array access hobble it. One of the phones (Motorola i730) has an option that does some load time compiling to improve performance, which does help a lot, but you have no idea what it is doing, and innocuous code changes can cause the compilable heuristic to fail.

Which ends that myth too.

Write-once-run-anywhere. Ha. Hahahahaha. We are only testing on four platforms right now, and not a single pair has the exact same quirks.

And there goes that Java myth, too...

Cell phones already have a very low latency digital data path - the circuit switched channel used for voice.

Actually - he's wrong. That channel has a good half-second or so latency. Try this - call up your home phone, and pick both up. Don't worry about feedback - there's way too much latency. Talk into your cellphone and listen to it "echo" on your phone. Or call up your friend on their cellphone and talk to each other, and listen to the good second between when they say something and you hear it.

It turns out that this latency isn't enough to prevent you from having a conversation, but there is quite a bit of latency on the voice connection of a cell phone.

It sure gave you anti-java zealots a hard-on (-1, Flamebait)

Anonymous Coward | more than 9 years ago | (#12066784)

Boy, you guys'll grab on to anything anti-java and hump it for dear life, huh?

Must be sad to get joy out of picking on a programming language.

Re:It sure gave you anti-java zealots a hard-on (1, Insightful)

Anonymous Coward | more than 9 years ago | (#12066849)

Java's not a programming language.

It's a platform that happens to be centered around a programming language.

There exist compilers that can compile the Java language to native code. But this article is about the Java platform - specifically, the Java platform for embedded devices.

Re:It sure gave you anti-java zealots a hard-on (1, Insightful)

Anonymous Coward | more than 9 years ago | (#12067002)

Surely anyone - no matter how capable (legendary) they are - must be plain stoopid if they use "bad" and "java" in the same sentence.

In my reasonably extensive experirence, java fanbois don't know any better - or any worse - just java.

Re:That's gonna give the Java fanbois an aneurysm (3, Interesting)

TheRealFoxFire (523782) | more than 9 years ago | (#12066918)

No, it just means that those myths don't apply on the Cell-phone platform. Thats not surprising, I doubt Cell Phones do JIT compiling, and their hardware is so different from PCs and each other, that you're stupid to think you aren't going to get away without testing.

And to reiterate, Java is nearly as fast as native code. Some of it's libraries aren't as fast as C equivalents though. I should know [sourceforge.net]

Still, Java is appropriate for those devices, since it allows the manufacturers to change their phones frequently without rewriting much software, and allows consumers to use the same software on multiple makes/models of phone.

Re:That's gonna give the Java fanbois an aneurysm (3, Insightful)

T-Ranger (10520) | more than 9 years ago | (#12067102)

Well, there is the J2ME standard. Java 2 Mobile Edition or something. As for the hardware being significantly different from a PC (or an UltraSPAC.. actually, being RISCy the sparc is perhaps closer then the PC), so what? Java apps do not run on a PC. Java apps do not run on a cell phone. Java apps run on Java. Java apps all run on the same "hardware".

To prefute your argument, "ya, but this is the real world, it does matter" all I can say is: Java has failed at its primary goal. "But thats the fault of the VM implementors". BS again: since Sun is amazingly anal about the word "Java", the blame all lies with them.

Re:That's gonna give the Java fanbois an aneurysm (0)

Anonymous Coward | more than 9 years ago | (#12067347)

With exceending large values of Nearly.

Did you RTFA??? ~ "no two had the same quirks" surely means what you say - NOT.

Re:That's gonna give the Java fanbois an aneurysm (5, Insightful)

jilles (20976) | more than 9 years ago | (#12067353)

Not yet. The problem with j2me is that there are so many implementations (and some of them really suck) of it. Some have JIT, some don't. There are a lot of hardware/software combinations. And that makes testing really hard. Of course you have the same problem if you move to another language. Because of that, there is not a lot to choose from. Brew and J2ME are basically it. Brew is optimized for gaming and J2ME targets a wider variety of software applications. Brew is a traditional, proprietary solution whereas J2ME is much more open with free development kits, documentation, etc. As Carmack notes, it is much easier to get started with it.

An additional problem is that the core J2ME specs don't cover much functionality. All the interesting stuff is in optional modules which may or may not be implemented on a J2ME phone. There's a whole range of J2ME specifications that may or may not be implemented.

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. The problem with writing software for mobile phones (and pdas) is that you need to target as much phones as possible because typically a phone will only be on the market for a short period of time (a few months) and there are a lot of different phones. So if you want marketshare, forget about native C, direct on hardware type solutions. You need to abstract from as much hardware (cpu, memory, screen size, network, storage, input) and software details (which j2me specs, native os, jit or no jit) as possible. That's what J2ME is all about.

Re:That's gonna give the Java fanbois an aneurysm (2, Interesting)

xenocide2 (231786) | more than 9 years ago | (#12068615)

John Carmack is one man, and a fairly intelligent programmer. But there are also several others who write programs, and you'd be naive to assume them all as talented and knowledgable about programming vulnerabilities as The Man. Normally this isn't a problem, as any program you write only affects your device. But being connected to a network changes all this. One bluetooth virus exploit unleashed during CES (probably the largest orgy of mobile devices known to man) turns that deal with Motorola to provide your software on the default firmware into a deal to provide a security exploit to Motorola.

So not only do you need Java for your cross platform compatibility that is so very nessecary on mobile phone programming, but you need the JVM's enforced behavior checks so you don't run up a rather large bill on behalf of your paying users. It's very unlikely that a small gaming company can afford to defend its "NO GUARENTEES OF USABILITY FOR ANY KIND AND WE'RE TOTALLY NOT LIABLE IF THIS COSTS YOU A FORTUNE IN FEES" disclaimer in their EULA when that buffer check SHOULD have been implemented. Java provides them with a fairly strong guarentee that their buffers are safe, and that even if something else happens, you should be effectively quarantined from networking functionality. Ultimately, John Carmack is dissapointed, but writing games is probably a waste of his skills versus writing the JVM itself.

Re:That's gonna give the Java fanbois an aneurysm (3, Informative)

Screaming Lunatic (526975) | more than 9 years ago | (#12069708)

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.

Re:That's gonna give the Java fanbois an aneurysm (0)

Anonymous Coward | more than 9 years ago | (#12072106)

He has some good points. But a game machine the phone is not. You can make some simple usuable games. But on a 2 inch screen your not talking anything eyeblowing. You probably can get fun.

Also keep in mind that a cell phone spends MOST of its silicon in making it a PHONE. There is not a lot left over for a decent bliter. Or anything else.

And dont bs me about write once run anywhere. I know better. I also remember C's write once compile everywhere mantra. How well did that work out? People like to fork things WAY to quickly.

Also the only game phone out there has been skewered by the gaming public. You look at it and it is a decent piece of hardware. But had so many goofie quirks it didnt do any one thing right...

Any computer scientist worth his salt does not wait around for processor power to show up (about every 18 months). They find out the bounds of the hardware then see what they can do with it NOW. Then everyone gets 'down' on him for say 'hey guess what to do this with this platform is cool and it sucks...'

Re:That's gonna give the Java fanbois an aneurysm (1)

slux (632202) | more than 9 years ago | (#12074976)

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. The problem with writing software for mobile phones (and pdas) is that you need to target as much phones as possible because typically a phone will only be on the market for a short period of time (a few months) and there are a lot of different phones. So if you want marketshare, forget about native C, direct on hardware type solutions. You need to abstract from as much hardware (cpu, memory, screen size, network, storage, input) and software details (which j2me specs, native os, jit or no jit) as possible. That's what J2ME is all about.

Didn't you read his blog entry? He specifically mentions that this is not an excuse because in the end you effectively don't get any more portability than you would using the faster techniques. This is the promise, but at least according to Carmack it just doesn't work that way with the various implementations.

Re:That's gonna give the Java fanbois an aneurysm (4, Insightful)

dtfinch (661405) | more than 9 years ago | (#12067034)

4mhz was good enough for the super nintendo.

Re:That's gonna give the Java fanbois an aneurysm (1)

oGMo (379) | more than 9 years ago | (#12067281)

I thought we all knew that clock speed comparisons across platforms were pointless...

That said, with the SNES you could hand-code assembler to get every cycle out of the CPU, GPU, and SPU. Not quite the case with Java.

Re:That's gonna give the Java fanbois an aneurysm (1)

dtfinch (661405) | more than 9 years ago | (#12067543)

The 8 bit original NES did fine at 2mhz, with roughly 15-20 cycles per instruction. The primary factor in the performance of 2D games is the tile engine, which is mostly handled by the GPU in consoles, and the gaming classes (probably written in fast C & assembly with some hardware acceleration) in MIDP 2 compliant cell phones.

Re:That's gonna give the Java fanbois an aneurysm (1)

snuf23 (182335) | more than 9 years ago | (#12070488)

And I'm sure that if something were hardcoded to the particular model of cell phone it would be nice and fast too. But coding a mobile game in assembly would be the stupidest thing you could do. Mobile phones don't last long on the market, and newer models are released all the time. You need to be able to right a program to a platform spec such as the Java J2ME so that it will be able to run (or run with minor modifications) on the next generation of phones or on phones with different processors.

Apples and Oranges (5, Insightful)

Dr. Bent (533421) | more than 9 years ago | (#12067135)

The Java platform that runs on most cell phones is J2ME [sun.com] , which is a completely different animal than J2SE [sun.com] , the one that's used on PCs.

The differences are substantial. For example, some J2ME VM's don't garbage collect. Ever. That's because in some cases, it's not required.

To say that the J2SE (or J2EE) plaforms suck because a particular J2ME implementation is slow is like saying that internal combustion engines suck because your go-kart can only go 15 mph.

Re:Apples and Oranges (1)

Midnight Thunder (17205) | more than 9 years ago | (#12073135)

The differences are substantial. For example, some J2ME VM's don't garbage collect. Ever. That's because in some cases, it's not required.

Quite honestly I reckon every Java programmer should have to learn to deal with the J2ME environment at some point. A lot of the software architects too. I say this because I have seen a lot of software solutions, written in Java, that create objects at a rate of knots and then people wonder why the system is so damn slow and memory hungry.

Java might have its issues, but like anything good programming and archicture will always allow you to get the most out of the resources out of hand.

Re:Apples and Oranges (0)

Anonymous Coward | more than 9 years ago | (#12085540)

The J2SE GC on 1.4+ is fine with this kind of throw away object creation.

Re:Apples and Oranges (1, Insightful)

Anonymous Coward | more than 9 years ago | (#12079401)

For example, some J2ME VM's don't garbage collect. Ever.

Indeed. I work on a mobile Java VM implementation, and when it came time to look at running midlets from "out in the wild", we were surprised to find there was more than one that called System.gc() incessantly, to the point of making performance come to a crawl (it spent more time gc'ing than running).

Later, I mentioned this to a friend of mine whose job is porting games between different cellphones (much of it java-to-java), and he said he in fact did stuff like that all the time to work around broken JVM gc implementations which at least knew how to gc but wouldn't do so unless told, preferring instead to crash.

The tragedy, of course, is that, in order to be "compatible" with existing apps, I had to "fix" our VM to ignore System.gc() if it gets called a lot. This is just one example of the kind of brain damage that ends up spreading from one VM to another. Sure I could get all high and mighty and say "Our VM is pure and correct" but that won't make Joe Schmoe's favorite game run.

Re:That's gonna give the Java fanbois an aneurysm (1)

fondue (244902) | more than 9 years ago | (#12067445)

1. Carmack's '4.77 mhz pc' comparison is waaaay out, at least for any reasonably recent J2ME phone. Some of the phones available in Europe and Japan today (and in a couple of cases in the US also, the US market seems to be closing the gap on Europe, slowly) are an order of magnitude faster than some of the ones still shipping on US networks. And this is just phones with software JVMs.

2. Write-once-run-anywhere: Not a problem with Java per se, more like the fault of two dozen handset manufacturers developing their own loosely compatible JVMs for radically different hardware. It's (almost) as platform agnostic as is practical under the circumstances.

Re:That's gonna give the Java fanbois an aneurysm (2, Informative)

moonbender (547943) | more than 9 years ago | (#12067990)

You're right, there has been an enormous increase in J2ME execution speed as well as feature set in the recent past. I've been doing some J2ME developement some weeks back - it really is very easy to get into once you have an IDE running - and I was surprised. For instance, the popular Sony Ericsson T610 is just awful wrt to Java: it only supports the very basic MIDP1, and it's extremely slow. My own Nokia 6230 supports MIDP2 and is more than 10x as fast. But it doesn't end there, today's phones are still 2 or 3 times faster than that.

There is an excellent resource [club-java.com] available at a French Java website, very much required reading if you're interested into J2ME development I'd guess. It lists most available Java phones, their feature set and speed.

Of particular interest in responce to Carmack is the comparison with P3 execution speed: "As fast as a PIII (without Java compiler) at 1,477.2MHz" (that's a Nokia 6630). That said, I don't see how even a 3G smartphone could equal the execution speed of a 1.5Ghz P3, so that kind of makes their whole benchmark a bit dubious. Unfortunately Carmack only mentions just one handy (Motorola i730) which isn't listed on the page (hey John, download their benchmark and send them the results!). The fastest Motorola they do list (V600) is as fast as, haha, a PIII 16.7 MHz (still twice as fast as a T610!), so maybe Motorola just stinks in terms of Java execution.

Re:That's gonna give the Java fanbois an aneurysm (4, Informative)

John Carmack (101025) | more than 9 years ago | (#12074071)

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

Re:That's gonna give the Java fanbois an aneurysm (-1, Troll)

iamatlas (597477) | more than 9 years ago | (#12084045)

Pfh! Talk about identity theft... I'm the real John Carmack.

All others are pretenders to the throne, and will be denied copies of Quake 4, which I finished optimizing yesterday and runs at 120 fps using just 100 punch cards on an Eniac mainframe.

~iamjohncarmack

Re:That's gonna give the Java fanbois an aneurysm (0)

Anonymous Coward | more than 9 years ago | (#12073296)

Man, what ignorant comments.

Funny how you take his word in terms of Java-bashing, but then correct him about Cell phone networks... hmm... perhaps he could learn a few things about Java too? (Just like you!)

E.g.:

"Java is as fast as native code" - On a machine that DOES JIT compiling. Cell phones don't have the resources to implement many features in a fancy JIT compiler. Don't compare to the PC, where Java code can clearly beat some C/C++ compilers and is therefore compareable to native code. Some tasks are suited better for Java than other lanaguages. As with many programming languages, the ideal problem domain varies. (Google for benchmarks)

Range checking on every array access - Java doesn't have to do this, it just has to behave as if it did. On a PC the JIT is smart enough to remove the range checks for looping over an array for example because it knows the access will not be out of bounds. Get a clue before you post.

Write-one-run-anywhere - It doesn't also say "test nowhere"... I've been a professional programmer for almost 20 years.. Java comes as close to the promise as anything I've seen. I know the Java application I last did worked just fine on Windows, Linux and Mac. (It was developed only on Windows - it "just worked" everywhere else.)

Carmac was using J2ME that's "Micro Edition"... a far cry from the sophistication of the "Standard Edition" that is used on PC's.

Re:That's gonna give the Java fanbois an aneurysm (1)

MemoryDragon (544441) | more than 9 years ago | (#12074045)

Been there, done that. Java != Java on various cellphones, there are two specs currently in usage. Midp 1.0 and Midp 2.0 Midp2.0 enforces a JIT midp 1.0 had that optional and unfortunately Midp still is/was the most widely used spec and many cellphones did not have jits in them. Newer ones have. You still will not get stellar performance, but definitely pretty much the same as on an Amiga with an 68020 processor which is not too bad given the fact that you have a low powered arm processor in the phone and lots of memory restraints which dont allow the jit to do too much optimizations.

However on some of themidp 1.0 based phones I agree with Carmacs arguments fully. The rest I also agree, the write once run anywhere was sucessfully torpeoed by the cellphone makers, to lock in the code to their platforms as much as possible (hence did have midp such a problematic beginning because it made some of the core aspects platform independent which were served until then by the platform kits of the cellphone makers), by specing the midp extremely minimalistic. Add to that different key handlings, different screen sizes and you have to adjust cellphone code significantly to every platform.

But besides the speed argument which is a little bit to narrow and only partially on the true side (I wonder which cellphones Carmac targets) Everything else is totally true

Who knew.... (1)

jwigum (813234) | more than 9 years ago | (#12066777)

you could play quake 3 with just a keypad...

Laugh if you want... (5, Interesting)

dhakbar (783117) | more than 9 years ago | (#12066802)

... but mobile phone gaming is an IMMENSE market. The key is in the subscription model. People will download a game and subscribe, play it once or twice, and forget about it. They never cancel, so they continue to pay $3/month for the game.

I worked on a few cell phone games for SOE when I was working there, and all I have to say is that the sales figures make me want to be a cell phone gaming tycoon. It's not a pipe dream.

Re:Laugh if you want... (1)

StocDred (691816) | more than 9 years ago | (#12066876)

Well yeah, if you can get morons to continue to pay $3/month for something they no longer use, you're a success story no matter what the media.

Every game I've bought for a cell phone (we have a Motorola something or other and a Sidekick 2) has been a one time cost (or free). How many subscription-based cell phones games are out there?

Re:Laugh if you want... (5, Insightful)

Hast (24833) | more than 9 years ago | (#12066884)

I remember a time when scamming your customers wasn't a common business strategy.

Actually I don't, but wouldn't it be nice if people tried to do things in order to make a good job instead of just ripping people off? Ah well, I can always dream I guess.

A little more insight (1)

marcus (1916) | more than 9 years ago | (#12067479)

I do remember.

What has changed is that there is now an immense market for scams. Used to be, you couldn't get away with many scams because there just weren't enough people that were susceptible. Normal, everyday folks would see right through it and probably turn you in! People used to be diligent and take proper care of their affairs. Nowadays most, truly >50% I think, are so greedy, so lazy, so ignorant, and so lacking in integrity that scammers have a huge target market.

Why do you think something as ridiculous as a "letter from Nairobi/Can you help me with my money" can actually work?

Re:Laugh if you want... (4, Insightful)

jbolden (176878) | more than 9 years ago | (#12067721)

It was the case 15 years ago. Back then decent business wouldn't do business with companies that ripped off their customers. So the game companies that did this couldn't get near a Verizon or a Sprint, now Verizon and Sprint are both part of the scams. The media would have crucified Verizon or Sprint for letting this stuff go on, now the media is owned by the same guys. People would have refused to do business with companies that lack ethics, now they all lack ethics.

I really wish they would dig Harry Truman up and make him president again. I'm tired of living in a 3rd world corruptocracy.

Re:Laugh if you want... (1)

zenneth (767572) | more than 9 years ago | (#12067322)

The key is in the subscription model. People will download a game and subscribe, play it once or twice, and forget about it. They never cancel, so they continue to pay $3/month for the game.

I just paid $5.99 for an unlimited play of Tetris. Hard to beat that deal, since the only time I really need a handheld game is when I'm waiting on someone else for 5-10 minutes, and Tetris more than holds me over for that amount of time.

Re:Laugh if you want... (0)

Anonymous Coward | more than 9 years ago | (#12068340)

Well, it's just java tetris... I bet you could beat $5.99 by finding a free version.

Re:Laugh if you want... (0)

Anonymous Coward | more than 9 years ago | (#12071630)

The hard part is getting that free version onto the cell phone.

Cell Phone (Action/Adventure) Games Are Terrible (3, Insightful)

DeckerEgo (520694) | more than 9 years ago | (#12066823)

He's 100% right. I got a Samsung a while back & purchased a copy of Baldur's Gate for it... wow. My expectation of quality was that of the original Game Boy... they didn't even go that far. Sprite collision detection was awful, load times were abysmal, game balance was horrid and bugs abounded (i.e. go to inventory screen, pause game, resume game, all your keymappings are scrambled). It's a damn shame, too, considering the possibility the platform holds. You could do something very nice with it... but alas. And developing on one is a pain too - transferring files over (or trying to sell games to other players) is so much of a headache I don't want to develop on them. Really, the SDK and API is there (since it's all J2ME), but transferring files to the phone in the first place is to huge of a barrier.

Re:Cell Phone (Action/Adventure) Games Are Terribl (2, Informative)

Hast (24833) | more than 9 years ago | (#12066908)

Transferring the MIDP program is hard? I just drag and drop it to the root in the Bluetooth folder and it is uploaded. I'd think you can do the same thing over IrDA or USB, but I don't know as I've never tried.

Uploading new data files can be a lot more of a bother though I guess. I've never tried that.

Re:Cell Phone (Action/Adventure) Games Are Terribl (1)

ZeroPost (792045) | more than 9 years ago | (#12067287)

Files transfers are sort of carrier dependent. Certain carriers (Verizon) really limit what you can transfer (easily) to your phone.

Re:Cell Phone (Action/Adventure) Games Are Terribl (1)

Hast (24833) | more than 9 years ago | (#12068185)

Ok, I can see that.

Yet another reason why I'll never again buy a branded mobile phone. I'd rather pay another $100 or so upfront and get a phone that actually works like it should.

Re:Cell Phone (Action/Adventure) Games Are Terribl (1)

way2trivial (601132) | more than 9 years ago | (#12072833)

Most carrier subsidies are a lot more than 100$ for locked v. unlocked phones...

Re:Cell Phone (Action/Adventure) Games Are Terribl (1)

DeckerEgo (520694) | more than 9 years ago | (#12068335)

Not so easy with some handsets, i.e. PCS phones. There USB or bluetooth uploading is frowned upon... the only recourse is going over-the-air to fetch your file via HTTP.

Not a big deal if you've signed on for unlimited kb as part of your plan, but a big deal if you haven't.

Re:Cell Phone (Action/Adventure) Games Are Terribl (1)

Lisandro (799651) | more than 9 years ago | (#12070307)

It is. On my Samsung phone atleast, if you have a data cable (serial / USB), it's just a matter of dragging programs between folders. With Bluetooth or IrDA, you don't even have to plug it.

Re:Cell Phone (Action/Adventure) Games Are Terribl (1)

Lisandro (799651) | more than 9 years ago | (#12070385)

Sorry; it's Siemens, not Samsung. My brain farted.

The best part is... (4, Insightful)

BW_Nuprin (633386) | more than 9 years ago | (#12067847)

...Carmack is way over-estimating performance of most phones. Only the highest-end Java phones support 200k jar sizes. The majority of consumer phones are limited to 64k - even many brand new phones have this limitation. On the other hand, he's not being 100% fair with his GBA comparison. Gameboy, GBC, and Gameboy Advance all have tile-based rendering that is easily capable of 60fps, while Java-based (and BREW-based) cell phones have only linear frame buffers that you don't get direct access to (usually). To aggravate things, many Samsung BREW phones have 250ms response rates.

Carmack will also be disappointed when he begins experimenting with BREW. BREW doesn't support threading, globals, or even static variables. I'm not even going to get started on the bizarre latencies of the API.

One of my jobs as a cellphone developer is to port Java games to BREW. Carmack's comments about how fast Java phones play like 4.77MHz IBMs is true, but the same is true for BREW phones as well. I've only managed to squeeze another 10% out of the performance on similar BREW phones. There are a lot of things limiting cellphone performance, but Java isn't one of the main culprits. Bad platform design and slow hardware are what kills it.

Re:The best part is... (1)

BiggerBoat (690886) | more than 9 years ago | (#12069356)

...Carmack is way over-estimating performance of most phones.

He's not estimating - over or otherwise - anything. Jamdat has told him that the file should be between 150 and 200k. Jamdat has made it clear that it's best to target the newest phones since the majority of games are bought on purchase (or just after) of the phone (according to them), and most of the newest phones can handle those file sizes (again, according to them).

Re:The best part is... (1)

oskillator (670034) | more than 9 years ago | (#12070521)

On the other hand, he's not being 100% fair with his GBA comparison. Gameboy, GBC, and Gameboy Advance all have tile-based rendering that is easily capable of 60fps, while Java-based (and BREW-based) cell phones have only linear frame buffers that you don't get direct access to (usually).

But he's doing a 3D game, which puts the GBA in the exact same boat. Minus the no-direct-framebuffer-access thing.

Re:The best part is... (1)

88NoSoup4U88 (721233) | more than 9 years ago | (#12071232)

Since I think his past efforts have influenced quite some companies/hardware/products, the same will apply if he will be working on mobiles.

I for one, hope he will be focusing on bringing a scaled 3d-engine to the mobile platform ; Hopefully opening a whole new scene of homebrewed mods.

Re:The best part is... (0)

Anonymous Coward | more than 9 years ago | (#12085450)

Next bout of top end Sony phones come with Java M3D.

Re:The best part is... (1)

ChaosDiscord (4913) | more than 9 years ago | (#12073425)

BREW doesn't support threading, globals, or even static variables.

I'll suggest that the man responsible for programming the Wolfenstein 3d [3drealms.com] engine (for the distinctly non-threaded DOS on a weirdly crippled 80286) will find those limitations survivable.

The good old shareware days (3, Insightful)

El_Muerte_TDS (592157) | more than 9 years ago | (#12067857)

Warning: what you are experiencing are the gold old shareware days. A lot of small, simple yet addictive games.

John Romero and Tom Hall had that same feeling a couple of years ago when they erected Monkeystone Games: http://www.monkeystone.com/ [monkeystone.com]

Re:The good old shareware days (2, Funny)

BigBadDude (683684) | more than 9 years ago | (#12068314)

Please dont use John Romero and feeling in the same line. Brings back bad bad memories...

Re:The good old shareware days (1)

El_Muerte_TDS (592157) | more than 9 years ago | (#12069073)

Why can't I while you just did it _again_ ?

Re:The good old shareware days (1)

snuf23 (182335) | more than 9 years ago | (#12071429)

What's a matter? Did John Romero make you his bitch?

Re:The good old shareware days (0)

Anonymous Coward | more than 9 years ago | (#12073092)

Suck it down!

Armadillo = Amarillo? (1)

ReversEngineer (672399) | more than 9 years ago | (#12067903)

As a Texan, am I the only one that noticed the error in that Carmack spells the city of Amarillo, "Armadillo?" Most people don't realize the difference.

Re:Armadillo = Amarillo? (2, Informative)

Klowner (145731) | more than 9 years ago | (#12068007)

Carmack is a smart guy, he can tell the difference I'm sure. In his reference to "Armadillo", he's most likely referring to his cool rocket development group which is named "Armadillo Aerospace", iirc.

Re:Armadillo = Amarillo? (2, Informative)

Wyatt Earp (1029) | more than 9 years ago | (#12068067)

He means Armadillo Aerospace

http://www.armadilloaerospace.com/n.x/Armadillo/ Ho me

"Armadillo Aerospace is a small research and development team working oncomputer-controlled hydrogen peroxide rocket vehicles, with an eye towards manned suborbital vehicle development in the coming years. The team currently consists of a bunch of guys, a girl, and an armadillo named Widget. Ourfearless leader, John Carmack, will lead us to space and, well, outer space. Please feel free to make yourselves at home and check out our journey."

Re:Armadillo = Amarillo? (1)

ksheff (2406) | more than 9 years ago | (#12068099)

Armadillo Aerospace is the name of his company and it is located in Mesquite, TX which is near Dallas. I don't think he is misspelling Amarillo.

Re:Armadillo = Amarillo? (0)

Anonymous Coward | more than 9 years ago | (#12068131)

As a Texan, am I the only one that noticed the error in that Carmack spells the city of Amarillo, "Armadillo?"

No, but you're the only person who thinks he misspelled it.

Re:Armadillo = Amarillo? (2, Interesting)

ReversEngineer (672399) | more than 9 years ago | (#12073312)

Wow. I have heard of Armadillo Airspace before, but I guess I didn't make a connection there earlier. Go ahead, I deserve the bashing. *Hangs head in shame*

Re: (0)

Anonymous Coward | more than 9 years ago | (#12068616)

Maybe he'll get an NGAGE! He'd be about the only one though....

DoomRPG eh? (1)

Lisandro (799651) | more than 9 years ago | (#12070278)

Interesting. I hate fantasy themes in games with passion, so it's something i would love to check. Haven't seen one since the days of Fallout I/II.
Even more, the MMORPG market is awfully saturated as it is, but if they turn it it into one it could work well on cellphones (Pocket Kingdoms, anyone?) - if done right, of course.

I would certainly give it a try.

Twiddling bits with J2ME technology (1)

hinkmond (605420) | more than 9 years ago | (#12070901)

Just like others have found out with C/C++ on other platforms, you can twiddle bits and get faster performance with Java on cell phones too. You just have to know what you're doing ;-) which hopefully Mr. Carmack will continue to do to find the secrets of J2ME technology that some already have discovered.

Also, you can deride JIT compilers on message boards, but if you take a look at Jbenchmark numbers, you'll see there is a world of difference between different Java VMs with different kinds of JITs, just like a Mustang with a 4-cylinder engine is different than a Mustang with a 5.0 liter engine.

It's easy to take pot-shots at Java technology for cell phones hiding behind a computer monitor, but those of us in the trenches who know how to work J2ME programming (like now John Carmack is starting to learn) will do well on the 650+ million cell phones that run J2ME technology.

Hinkmond [sun.com]

Re:Twiddling bits with J2ME technology (1)

pmuellr (213665) | more than 9 years ago | (#12072037)

So are you saying that there are some secrets of J2ME technology that you need to know before you can write J2ME apps effectively? What are the secrets, and, more importantly, why are they secret?

Re:Twiddling bits with J2ME technology (1)

bcuriel (858344) | more than 9 years ago | (#12082293)

I'm in the trenches, and I know the ins and outs of J2ME, and do quite well on both Java and BREW. That being said, you have to be on crack to think the current generation of J2ME phones is anything to be happy about. I currently have four makefiles to hit every target on BREW, and 30 for our J2ME builds and that is still only a fraction of the Java ports for our next game.

There are phones that leak memory everytime you play a sound file or deallocate an Image, others where they break if you do something silly like close streams that you open, and let's not forget those that like threads and those that don't, phones that can't clip properly, and half-duplex sockets(brilliant). And that is only highlight list of what comes to mind right now.

And forget about nice class hierarchies in J2ME, where the most effective way to program is to have as few monolithic classes as possible to avoid the jar file overhead and get better compression. A common code base requires a preprocessor, since the code bloat for run-time detection is too much of a luxury. The fact that a preprocessor is necessary to make the code somewhat portable speaks volumes alone.

I don't think J2ME isn't inherently bad, it is just that Sun has done a particular shitty job of policing the implementations that are out there. It will always be slower than native code though, and as the demand for higher quality games rises, I expect BREW and other native APIs will become more common. Unfortunately I don't see J2ME disappearing anytime soon, so I just hope that we start seeing VMs which go through some non-trivial QA process.

A 3d mobile engine (0)

Anonymous Coward | more than 9 years ago | (#12071061)

Since he has been a big part in quite some kickass 3d-engines, I would love to see a decent engine on mobile devices happening.

Would be cool to have a modding scene for mobile 3d-engines in a few years :)

Changing times... (2, Insightful)

Rob T Firefly (844560) | more than 9 years ago | (#12072775)

In my day, playing on the phone meant asking random people if their refrigerator was running.

try symbain phones then... midp sucks!!! (2, Interesting)

xshader (201678) | more than 9 years ago | (#12076054)

john, you should be writing for symbian phones then. they have the largest fucking market share by far and all run basically the same binaries. oh, did i mention they have a C/C++ sdk avaiable for free? go look at the games already running on s60 series phones... sonic, doom, super monkey ball... and soo many more fast paced action games. so the question is... why the heck did you go with midp2? as you were saying, all that abstration sucks.

Will John be able to change things? (2, Interesting)

jasenj1 (575309) | more than 9 years ago | (#12076223)

So John Carmack, one of the semi-dieties of game programming, has set his sites on the cell phone market.

What if he follows through on this attempt to make a cell phone game and does what he's done in the past with PC gaming? That is, pick the best, fastest hardware available at the time and then develop something that requires specs a LITTLE better than what's available to be really playable.

Let's suppose he finds a phone with a good, "fast" Java implementation, with a decent amount of memory, and targets his game for that minimum spec. Once the game is released, will we suddenly see a shift in cell phone performance? As every Doom fanboi wants the game and dumps their current lame phone and provider for whoever supports/carries a phone good enough to run MobileDoomRPG.

Will John Carmack be able to redefine the performance expectations of the cell phone industry? Will DoomRPG Capable(tm) become a new standard?

I certainly hope so. If the state of the industry is as bad as some have indicated in this thread, there needs to be a compelling reason to get performance beyond "good enough".

- Jasen.

Hopefully Carmack has enough power (1)

MatthewNewberg (519685) | more than 9 years ago | (#12078715)

There really isn't wrong with Java it is just a language. There is no reason Sun can't find people to spend the time and find ways to allow Java to compete with C in terms of performance. I think this would be a good starting point for them to realize Java gaming could be a possibilty if they only spend the time to find ways to implement faster code. Hopefully Carmacks influence is enough for them to add ablility to do lower level things in Java.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?