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.
- Unity3D (Mono, JavaScript, C# -(compiled to)-> Native ARM code, XCode)
- Here is for instance a nice writeup on one guy developing a 3D engine for the iPhone
- AC3D Engine + AC3D Lib for the iPhone
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:
- Objective C, or C/C++
- OpenGL (preferably, OpenGL ES)
- XCode, InterfaceBuilder experience
- iPhone SDK
- Cocoa Programming
- Mac Development experience (or GNU/Linux)
- For proof of concept development, Ruby or Python knowledge.
- Design Patterns, MVC
- 3D or Game Development experience preferrable
- Texture creation for Sprites and 3D Objects
- 3DSMax, Maya or Blender experience
- Building 3D Models with e.g. 3DSMax (Commercial) or Blender (OpenSource) or Maya
- A 3D Game engine, or we need to write it from scratch
- Loading Maya models http://bill.dudney.net/roller/objc/entry/wave_front_obj_textures_working
- An iPhone or iPod Touch (different Hardware, iPod is scaled down, internet through wlan)
- Either a Mac (e.g. Mac Mini) or we use VMWare ( I have a running Mac VM on my system. This eliminates the requirement of a Mac)
- A iPhone developer licence to publish our product ( http://weblog.infoworld.com/enterprisemac/archives/2008/03/new_iphone_ente.html )
- A Website for the product and support (meaning, somebody has to answer emails)
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?- 1-2 Engineers Full Time
- 1 Artist (2D/3D, Textures)
- Licenses maybe around 250USD
- Game Engine License 1500USD
- Mac Mini + iPhone or VMWare + MacOS
- XCode Dev. tools
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?