3D iPhone Development - What do you need?

November 8th, 2009 I had a interesting request recently. Is development for the iPhone/iPod touch a good idea? Is it worth it?

Well, as usual if your idea is not that great, then probably not. On the other hand if you put some effort in it and you realize something interesting, then probably yes! If you see games being developed (or better ported) like this then you will realize that this thing is far from just a telephone. Its a fully fledged hand-held gaming device! Interesting enough, how did Sega manage to release their game so fast? Whats going on? What do I need?

iPhone Business in general

Like all embedded devices the half-life time of an software application in the iPhone world is rather low. Studies so far have found that people tend to use free software (no costs) roughly once or twice and then loose interest.

Of course such a generalization is not without exceptions. You can exclude this behavior for everyday utilities (e.g. twitter, mail) and especially games. The Apple iPhone application store is growing rapidly an so are the users. The Sales in this field are sometimes very impressive if you have a "good" idea. (Sales currently roughly ~3000USD/day, app cost 1 unit == 0.99USD)

iPhone Business in Japan

Let me briefly digress for our domestic market in japan. Sales in the past have for the iPhone ranged from roughly 300,000 units per year. This is a lower estimation and will now sharply change as Softbank gives away the devices for free.

In the rest of the world the device has a "viral" effect meaning that sales are going very, very, good. As a direct result so are also the sales for top ranked applications in the "app store".

There was a recently a interesting article about "japanese hating the iphone" which turned out to be wrong. Ref. here (In this referece there are also sales numbers.)

Application Sales

Here is an interesting article how to estimate sales from iTunes ranking. Unfortunately apps can't be too expensive, See this. How much monkey can you idealy make? Super Monkey ball is priced at 9.99USD because Sega has a lot of assets to support this low price vs. dev costs.

iPhone Application Development in General

Bascially the iPhone is a COCOA based handheld device running XNU (also called, MacOS, stipped version). Building an application which is based on using the iPhone provided API is fairly easy and fast. The API itself provides nearly no capsulation of the OpenGL ES interface (stripped down version of OpenGL for Embedded Devices) which means that you can work with it directly to build an application (XCode).

If you write everything from scratch and use no tools like game engines, it will initially take some time to abstract the OpenGL ES interface to your requirements. One full-time developer maybe around 2-3 weeks. Parallel to this the developers can work out UI flow, Gameplay, Program structure (e.g. UML, State diagrams etc. for core concepts). After that you can start with your product desgin implementation. The time here again, depends on the complexity. Monkey Ball was ported not re-implemented which saved a lot of time.

Game Engines

The problem with a complex game is that you need many components like a Physics engine and a 3D Game engine in general, scripting support and so on.

You could rely on tools helping you for this process, e.g.

Case Study, Monkey Ball

Sega of course has all this already, in the case of Super Monkey ball they just needed to port their code to the iPhone system. (This is the reason initial development was so fast).

Monkey Ball from Sega exists already since quite some time.

I think their game engine is C or C++ based and easily convertable to other platforms as they tend to support C. So if you want to write everything from scratch, it will take more time.

OpenSource Example

A sample application using OpenGL ES (OpenSource) and the iPhone API, Molecule (please note that even though the name of the file is .tar.bz2 the file is actually an tar.gz) A description is for instance here..

People

I think the most important aspect of the iPhone/iPodTouch are the usage of the accelerometers. See this for instance..

Finding iPhone developers (programmers) currently is difficult I think, they are still rather rare. The core competencies here are,..

Programmer:

Artists

Useful/Mandatory Tools

Hardware

Licences

Supplemental

Rough Estimation

Sega's team used to port a simple working example from their Monkey Ball product to the iPhone 2 Weeks. They had a working engine, professional developers and artists. So what do you probably need for the average 3D game on the iPhone?



To give a good estimation, it must be pretty clear how complicated the application will be. Then maybe you could make a valid assumption of how many (mythical) man-months you would need.

What do you think? Where am I wrong? What did I forget?