Interview: Nicholas Francis, COO of Unity, a leading iPhone game development platform

splash-25

If you’re like me you’ve always wondered about making an iPhone game. What mad skillz do you need? What course in computer science will teach you how to vector a jet across the screen? Well, Nicholas Francis set out to solve that problem and came up with Unity, one of the most popular games development platforms for the iPhone and the iPod Touch.

CrunchGear: Tell me about your company?

Nicholas Francis: Unity Technologies is the company behind the Unity gaming middleware. We have 44 employees with our development HQ in Copenhagen, Denmark. Then we have a bunch of hardcore demoscene guys in Lithuania that have forgotten more about low-level optimizations than most developers will ever know, some developers in Brighton, UK and a few hotshots that work from their respective countries. Our corporate HQ is getting moved to San Francisco – there’s so much more business going on over there, that we figured it made the most sense to have business be over there but keep development in Europe.

We launched Unity 1.0 in 2005 and slowly grew it. We never had any VC backing or anything, so we’ve grown the company organically (by about 200% per year :-). these days we have over 9000 customers – pretty much spread through word-of-mouth. Basically, we’re a tool by developers, for developers. Quite simple really, but our tech packs a real punch :)

nicholas-francis-2Tell me about yourself? What’s your background?

I’m Nicholas Francis – a 34 years old programmer, designer and ex-wannabe film-director. I started Unity in a basement some 7 years ago (back then it wasn’t even called Unity yet) and lived for two years in a basement with the 2 other co-founders. Basically we just sat there and worked every single day from when we got up ’til we went to bed. After a couple of years, we released GooBall on the Mac to prove that Unity could be used to make games and then went on to release the tools themselves.

I have a 7 year old son who I always feel I ought to be spending more time with (and not giving all my attention to my Unity child)

What is Unity?

Unity is an integrated development environment for making games. It consists of a powerful editor for assembling all art assets, attaching game code to make behavior, and tweaking your game until it plays just right. While building your game, you can test it simply by hitting a play button at the top of the app and you’ve got the exact game you’re making, running in our editor (complete with emulated graphic capabilities). While testing the game, you can change both art assets and code – and will see how it affects your game instantly.

Once you’re happy with your game, the finished project can be delivered to a browser through our custom plugin (which has around 15 million installs by now), PC / Mac standalone, Nintendo Wii and last but not least, the iPhone. We are working on bringing Unity games to more platforms – both mobile handsets as well as “some other major consoles ” *cough* :)

A really nice thing is our licensing structure. Unity for iPhone starts at $598 per developer. There’s no royalties, no catches, no NDAs. It’s just an app you buy and everything you make with it is yours. Just like with any normal app you buy. You buy Photoshop, and what you draw is yours. Same with Unity – which is so glaringly obvious, that I don’t understand how other people can cook up those weird NDA-required royalty-driven, really expensive licensing schemes.

Some of our biggest customers include Cartoon Networks. With Fusionfall (which around 5 million people have played) – they basically made a World-of-Warcraft quality MMO for kids and got it running in a browser, as well as EA’s upcoming Tiger Woods PGA Tour Online. On the iPhone, Unity has been a runaway hit for us – since people can just make and ship their games without telling us, we’re not sure how many have been published. There’s a thread on our forum where people list the Unity titles they have shipped, and yesterday that contained 258 games. Hits include Zombieville USA – that was done by two guys in their spare time and made the #1 in the Appstore. TouchKO just came out (published by Chillingo), as well as some other hits.

Chillingo are currently asking our users to submit Unity-made games to them so they can publish them.

What is programming for the iPhone like – is it like desktop programming? Mobile programming? A hybrid?

Apple did a really, really good API for the iPhone. So in a way it feels quite a bit like desktop programming – except you’ve got much less power than you’re used to. When using Unity, we handle all that for you. You can pretty much take a game that you’ve made for the Nintendo Wii or an in-browser game and just publish that to the iPhone. So from our user’s perspective, it’s a desktop where you have to be more careful with your CPU usage and how complex your meshes are. Apple’s new iPhone 3GS helps a lot with that – their new GPU basically lets you run really high-poly stuff.

Behind the scenes, we’ve done a bunch of custom VFP vectorized assembly code to squeeze out every bit of performance from the iPhone. We’ve reverse engineered Apple’s OpenGL drivers to get 30% more geometry throughput than any official benchmarks – basically lots of stuff that you normally wouldn’t care about when developing a game.

Why do you need middleware on the iPhone?

I think this ties into the above question quite a bit; the iPhone is a very desktop-like experience. So sure, for simple games some people prefer to just code directly to the metal. However, it’s desktop-like enough that you can actually do a lot; proper collision detection, physics, ragdolls, some shaders, 3D audio. This means that it pretty quickly begins to make sense to look for a tool that will actually let you leverage that.

Another part of the equation “use middleware or roll our own” is the art pipeline. With Unity, artists stay productive – we can import their meshes and animations directly out of 3DS Max, Maya, Blender and a bunch of others. This just works – and anybody who had to get proper character animation into their own engine knows that this alone can take months to get the code to be just right. Our internal development slogan is “we suffer, so you don’t have to”.

Another way of looking at it is how many fulltime engine coders can you buy for $600? With Unity you get around 15 fulltime developers just hacking away 50-60 hours/week on making the most powerful engine and coolest tools.

What kind of programmers use Unity?

Unity is used by programmers and artists alike – game code is written in C# or JavaScript – this means that there’s quite a large number of programmers from other fields. Traditional software developers pretty quickly grok C#, and anyone who has used Flash or done some DHTML/Ajax already know Javascript. To get maximum speed on the iPhone, we use static typing and precompile everything down to assembly code for maximum performance.

Which games have been written in Unity?

On the iPhone, some of the really cool titles are Zombieville USA – which held the coveted #1 AppStore position for quite a while. Touch KO just came out on Chillingo (who have done a number of Unity games), Fuel Industries did Vans Skate with Unity – so quite a bit.

On the web, we’ve got Cartoon Network’s Fusionfall, EA’s Tiger Woods Online coming out this autumn, plus some other big names. One team I’d like to give a shout to are the blurst.com guys. They’ve pumped out amazing games with Unity, and just shows how far you can get by bootstrapping a business and toughing it out.

Why Unity? Why not just a command line and a dream?

Well, if dreams are all you want, I guess a command line is fine. If you actually want to ship high-quality games, you typically want the best tools you can possibly get. (couldn’t resist :)