Can I start a developing a project for iPhone or iPad in regular Unity, and switch to Unity iPhone later?


My intention ultimately is to create an iPhone / iPad 3D application, however, seeing that unity is cross platform, and also seeing the there are fees for the unity iPhone/iPad development kit, my thought was to just make my first version for OS X and then when it's working perfect then I can publish for iPhone / iPad and pay the developer fees (I still don't get why there are developer fees!! That just seems wrong to me).

I am just wondering if this is a bad idea for any reason, and I should just do my initial development for iPhone / iPad...

Thank you.


It is possible to start development in regular unity, and then move to iPhone / iPad at a later date, however it's important to be aware of the differences between these platforms and regular PC / Mac / Webplayer platforms.

There are two major differences:

1. The vastly reduced processing power

The reduced processing power of the iPhone (and to a lesser extent, the iPad) compared with regular desktop PCs and Macs, means you need to be much more careful about how you use the computer’s processing power. Often you’ll need to use more advanced optimisation techniques to get the same framerate on these devices that you wouldn’t need to consider on modern destktop hardware. For more information on this, check out The Implications of Rewriting a Game for the iPhone.

2. The difference in input and control

The unique control features of these devices, such as tilt and multitouch, means that you should probably design your project with these in mind rather than an afterthought. This is going to be difficult (but not necessarily impossible) if you start your project in a regular version of unity.

You are on the right track. If you've never developed with Unity before, then it is a great idea to start with their free engine and develop a Mac/PC/Web Browser game first.

The whole point of Unity is to make it easy to develop a game once and publish it to many different platforms.

Of course, you'll have to re-do some work when you do port to ipad: shrink asset sizes, update controls, modify game play to fit a smaller screen. But I would still choose this path as it will give you a game that works on the maximum number of platforms and it keeps you from spending cash until you know you have a good game.

As for the cost, Unity is a for profit company. While there are free and open source game development tools available, they don't even come close in terms of functionality. Unity is not just a game engine, it is a suite of middleware tools to support game development within a clean and extensible UI. Not only that, but they supported IPad before the thing was released. They also pay licensing fees for all the 3rd party engines and tools that are integrated. The fact that you can develop a for profit game without paying them a cent is incredibly generous and any game engine that could be compared to Unity will also charge for their product.

The $99/year fee isn't exactly bank-breaking. This exists to help pay for running the program, and, honestly, as a small measure of commitment on the part of the developer, to help weed out those who aren't really serious and just waste time and resources. If you're planning on paying that anyway, you might as well just do it now so you can use Unity iPhone to its full capacity, and not worry about whether your optimizations and control methods are going to be effective or not.

Note that in Unity 2.x, you would import the Unity project into Unity iPhone. While script files and assets are compatible between the two, you will be working in a different project and will have to manually move changes that you want to share from one project to the other.

One of the announced features of Unity 3 (due this summer) is that Unity and Unity iPhone will continue to be separate licenses but will no longer be separate editors. So you should not need to import the project into Unity iPhone, and further, you should be able to develop a game that can be built for multiple platforms from a single project, by using conditional compilation flags, runtime checks, and maybe other tricks.

Along these lines,

We're doing all our art creation on PC's, and I do the occasional UI javascripting on the PC as well. I've set up the scene files on the PC, but our programmer is unable to open them in iPhone Unity. Is there a trick to getting them to open on his end? I tried exporting the project as a package and having him open it that way, without success.

When he open the files, there's nothing in the scene. Not even the default Main Camera.