Tuesday, July 22, 2008

The iPhone a good platform for game developer ?

July 11th 08. We've just witnessed the emergence of a brand new platform. The iPhone now plays alongside Windows, Mac OS X and Linux. What really makes a platform is what developer can do with it. With its SDK, Apple clearly wanted to change the game of mobile development. Forget about Java ME, the Carrier dictatorship, Apple is about to change the rules of mobile game development.

Hardware

With its smooth user interface, full of animation, the iPhone seems to be a pretty decent platform. We will compare it with the two leading portable gaming platform: The Nintendo DS and the Sony PSP. So how does it stack-up?
Of the two leaders, the PSP is clearly the most powerful. With its gorgeous screen of 480 x 272 pixel, its 333 MHz MIPS R4000 CPU (previously 222MHz) and a pretty capable custom graphic chip, the PSP is an excellent playground for the creative developer.
By comparison, the Nintendo DS, the market leader (despite modest hardware spec) sports two ARM processor clocked at 67 & 33 MHz. The two LCD screen can display graphics at 256 x 192 resolution. One of the two screens is touch capable (with a stylus), which enabled an entire new line of games, often targeted at casual gamer. This, in part, explains the success of the console.
iPhone main CPU is a Samsung ARM9 clocked at 412 MHz. The phone also has a PowerVR MBX 3D GPU, the mobile version of the GPU that powered the regretted SEGA Dreamcast. So clearly, the iPhone seems to have what it takes to make visually stunning games. The screen is spacious, offering a comfortable 480×320 pixels resolution and is multi-touch. The multi-touch screen is something unique to this platform, we have yet so see new Gameplay ideas based on this feature, and I’m sure there is room for creativity here. The iPhone features 3 accelerometers that might, again, open new Gameplay opportunities (Wii anyone?).
Mobile game developers have historically been limited by carriers in terms of file size. The iPhone and it's generous storage space (8 or 16 Go models right now) and it's distribution model (game under 10Mo can be downloaded on the cellular network, over wifi otherwise) breaks yet another barrier.
One of the problems of the iPhone hardware, when seen through game developer’s eye, is the absence of physical button. Clearly not all game will be portable on the platform. Another problem is that if the phone is handled horizontally with two hands (like PSP), chances are that no sound will come out from the speakers.
Judging solely on the hardware spec, the iPhone seems to be a pretty solid gaming device with plenty of room for creative developers. Its connected nature adds up even more to an already rather spicy mix.

Software

What about tools for developers ? IDE, debugger, simulator, profiler, etc…anyone with background in handled console development will find Apple offering pretty generous. What about the API’s ?
On the Graphics side, there is access to OpenGL ES, the mobile version of the established 3D API. Supporting PDF rich drawing model, Quartz bring unprecedented level of quality for a 2D API on a mobile platform.

Open AL provides positional audio while Core Audio give access to a simple sound playback, sound manipulation as well as recording.

The iPhone SDK also provide video playback capabilities.

And this is just the tip of the iceberg. Coming from the desktop version of Mac OS X, those API's are deep and rich, and should cover a great deal of developer's needs.

But the iPhone is a pretty odd platform too. Not every game developer is familiar with Mac OS X set of API's. As opposed to the PC/XBOX360 couple, the Mac has never been a huge gaming platform.

You can code in C and C++ on the iPhone, but Apple promoted language is Objective-C.

This is probably the biggest barrier to entry. Of all developer I've talked to, this point always comes back on the complain list.

The smalltalkesque syntax is for most people a curiosity on it's own. I’ve shown the most basic Cocoa example from Apple developer web site to a few fellow developers and nearly none of them were able to tell me what this very trivial piece of code was doing. Objective-C just looks odd to a developer used to a C style syntax.

So not only you have to be up to the game programming challenge, which would be enough to keep you busy, but you have to fight against the API's and, most importantly, the language.
Don't get me wrong, Objective-C has some very interesting aspect to it, but it seems like a rather stubborn and anachronistic choice for an otherwise modern platform.

Free SDK

The thing that is really huge about the iPhone is its free SDK. You don't need to buy pricey hardware development kit to work on the iPhone. Download the SDK, and you are set to go. Indie game developers will appreciate for sure. And the distribution deal is pretty good too. You pick the price, and Apple keeps 30%. That, for me, looks like an ideal environment for innovation. I wouldn't be surprise if the most creative games of next year were released on the iPhone.

Market & opportunities

The iPhone is a fast growing platform. Apple has a target of 10 millions iPhone by the end of 2008. Most people, including me, think Apple will over achieve this target by large. Just look at the momentum of the iPhone 3G currently has. It's sold out pretty much everywhere. It's the new big thing, the Wii phenomena 2.0 if you want. People are buying it like crazy. And I’m not accounting for iPod touches. More over, when you look at the demographics, people spending that kind of money on a mobile phone and an associated plan, those people are no kids. They have money to buy your games. You can look at PS3 sells figures to give you some perspective. There’s currently about 14 millions PS3 sold in the world. Sony expect to reach 20 millions by the end of this year. I wouldn't be surprised if there were more iPhone/iPod Touch than PS3 pretty soon. And because of the Apple deal, the fact that there are no physical medium, no resellers, etc… The games are pretty cheap too. Currently, the average price is $10. When you compare this to a PSP or a DS title...Of course the few real commercial games released so far may not be as deep or as long as a $60 PS3 title. But not every game needs to be that complex, something hard to achieve on a classic portable system because of games price tag, and therefore customer expectations. But with a $10 price tag you have to make volume, that's for sure.
With the iPhone you also escape the carrier hegemony. They used to make the rules, but with Apple the game is changing. Some might argue that you escape a dictatorship to fall into another, but as we've seen, it could be worst.

Gaming Platform ?

With its frequent updates, the iPhone hardware spec could evolve too.
Nobody knows how Apple will handle this, but that could potentially brakes the console style of development of fixed hardware, making it harder for developer to fine-tune their game. Something that would be closer the PC or Mac game market with minimum hardware spec...not really sexy.
The potential is clearly here. There are few glitches here and there. It is impossible to provide a game demo that can be upgraded to the full game when purchased. The battery might be a problem too. With 3G and OpenGL 3D graphics the device's autonomy is clearly reduced.
But overall I see great opportunities for game developers on this platform.

Some links:
EA Vet Young Reveals iPhone Publisher Ngmoco
Is The iPhone A Major Opportunity For Game Innovation?

1 comment:

sridhar said...

Can you put on some light on 3D gaming?