Is really on click all you need to port games between platforms?

I'm new to unity and is hard to me to believe the "one - click" change platform.

Somebody that already test it, how much of this is true?, I can imagine for example that it will convert your javascript from and android game into C++ for iphone... Please proof me wrong...

No, you can't port games that easily between platforms because the platforms are not all similar in capability. Sure,if you have a simple 'hello world' text floating around it'll port easily, but if you have an actual complicated game then you'll have to adjust the textures and the input signals and some of the code. It's still nothing compared to what you'd have to do if you didn't have unity port the game.

But of course, if you have a game that uses an Iphones touchscreen and you port it to a windows standalone it wont work.. ;)

Joshua is correct in saying that it really is more than just one click.

To go more in-depth...

There is a big misconception out there that I am experiencing in the field about this, and that is that Unity is some sort of magic oven in which you can simply click "save as..." and Unity will magically take your PC game and put it on the iPhone and everything will run just as smooth.

The fact is that Unity is a tool, a greatly intuitive and powerful tool, but a tool none the less. And like with any tool, you need to use it the right way to get the result you want. (You wouldn't hammer a nail with a screw driver, would you? 0_o)

To explain, all platforms are very different in their capabilities and interfaces (touchscreen vs. keyboard and mouse) Even in the large groups (like PC/Mac) not all desktops are created equal. This also stands true for the various generations of iOS devices, each generation is significantly better than the previous.

It is very important when building a game for deployment across multiple different platforms that you know the strengths, limitations and quirks of each of those platforms so you can invest time to build flexibly on the more performance-heavy features. (i.e. particle effects aren't as much of a performance killer on the iPhone 3GS as they are the 1st gen iPad due to fill rate)

You can also see that some titles are almost completely different games between platforms because of hardware limitations and input methods. (i.e. Mirror's Edge for console was a 1st person experience, where the same title for iOS was a 2.5D side-scrolling platformer)

With all that said, Unity has some very useful things that I use when building games that have to work "the same" across different platforms:

1.) Hook into the Asset Pipeline - http://unity3d.com/support/documentation/ScriptReference/AssetPostprocessor.html

This is very useful when textures need different compressions/resolutions for different platforms, and great for audio settings as well.

Note that you can also use the Inspector to set up some basic platform-dependent import settings as well.

2.) Platform-Dependent Compilation - http://unity3d.com/support/documentation/Manual/Platform%20Dependent%20Compilation.html

I probably use this more than anything else. It allows me to write author-time compiler arguments that executes different parts of a script based on the target platform. I use this mainly for Input and UI stuff, but the possibilities are limitless.

3.) Use the Profiler to isolate where your cpu cycles are being eaten up and optimize.

With all that said, if you understand your platforms and know what you are trying to achieve, you can take a game that you have published to the web player and simply change your build target to iOS, build and run. I can attest to that from personal experience.

Hope that helps. Cheers.

==

http://img716.imageshack.us/img716/7527/unityproof.jpg

There. have fun.

I think the fact that several hundred thousand people use/have used/are actively using Unity is a good representation...

Now, if you go out and buy all the versions, you can build it too. If you don't want to believe it, than that's good for you.

Things to keep in mind though, is some of the scripting features don't carry over (To the iOS for sure I believe), and also the power of such machines, is very weak...

But yea, =).