Unity’s Nicholas Francis On Making Tech Simple

By Jim Rossignol on September 8th, 2009 at 8:10 pm.


A couple of weeks ago I had a chat with Nicholas Francis, one of the founders of Unity 3D, the game development suite. I’d already been looking at Unity because we’d seen a bunch of games using it. The guys over at Blurst use it to make their crazy output, and things like the lovely PuzzleBloom have been turning up on the web more and more. I even downloaded the 30-day trial and messed about editing terrain and adding weird noises to seagulls for a while, at which time Paul Barnett from Mythic dropped me a line to say he was using it to prototype new game projects. I can’t say I spend a great deal of time playing around with development suites, but the accessibility of this one certainly intrigued me. I was glad to be able to put some questions to Francis, and ask a bit more about what his company was up to. They were, it seems, making a nuclear-powered toaster…

RPS: How did the company start? I know it started with games, but what was the route into game engines? Was there a particular catalyst?

Francis: Well, I guess we were basically just three guys who wanted to make computer games. We met at an OpenGL development conference and we said “look, let’s work on a technology component set that we can all share”. Instead of all making our own engines we should pool and make one. And of course we couldn’t decide which game to make – I wanted to make a top-down racing shooter, Joachim wanted to make an underwater Top Gun flight sim, and so on. In the end we made a game with a rolling ball, so it all came out of this crazy dream. We all moved in together and sat and coded for years. And, then, well, we hadn’t actually thought about making middleware – we were making games – this was seven years ago, when the market was a little different. Anyway, when you get coders together to work on a problem, they won’t solve the problem so much as create a tool to solve a problem for them. Our problem was “we want to make games”, and so we spent a long time making the editor, making it really polished, and making this good user experience so we could actually use the tool. We released our first and only game and thought, “hey, this editor is pretty good, why don’t we get it out there to everyone.” After that we decided to concentrate on the engine technology.

Of course we then a problem of how to price it… How do you price technology? Back then we knew nothing about the market and had no idea. One thing we thought about was the camera market. So you have big and expensive cameras which don’t sell very much, and at the other end you have really cheap consumer stuff, which sells loads. But in the middle there’s this market for the sort of guy you might call a “prosumer”, something like that. We wanted to be something like that. So we wanted to make the barriers to entry minimal, but balance that with the technology being powerful enough to take you as far as you want to go, as with the cameras in the same range.

So that’s how it happened. We then just worked hard in it, for years.

RPS: So “making games”was the basic philosophy for the company…

Francis: I can’t pinpoint one philosophy, we’re not quite that groomed yet! I guess the aim, though, is simply to put a powerful technology into the hands of anyone who wants to play a game, which is a lot of people.

RPS: But why is what you’re doing good for the aspiring game designer? There will be loads of indies or wannabe indies reading this article, and, well, the first thing I noticed on the Unity site is that you have cheap package targeted at them. Why is it good for them? Why should they use this over anything else?

Francis: Well, we have done this in order to make games. We’ve seen where the bottlenecks were! Some of the worst stuff was iteration time – when you have an art asset how quickly can you get it into your game? That is vital. We’ve always had this idea of an integrated development environment. If you can get your asset straight into your editor, or if you can go and change a texture in Photoshop and the game can pick it up while you are still running, then you can really quickly iterate your design. If you change a model in Maya the game will reimport it and make sure that everything works. None of this is rocket science! But it is about applying polish over time to make it as good as it can possibly be.

RPS: So why is the “professional” package so much more expensive?

Francis: Well, there wasn’t any kind of masterplan, because we started out knowing nothing about the market. But we’ve always wanted everyone to be able to get into this tech, and then we also want it to be so that if you are serious about it you will be okay with paying us money. That’s the basics: anyone can get into it and taste it. We just want to get it to people. You can release a game on the basic licence and then upgrade, a kind of bootstrap process. Feature-wise there is so much in there, especially for all the features in the pro licence.

RPS: You hear about other games tech communities sharing their experiences and solutions a fair bit, is that the same for Unity?

Francis: We have eight thousand users on the forums and a lot of those are just trying it and playing around, but others are professional developers, and they do help each other. One amateir guy will try and help the professional and back and forth. It’s hard to even keep up with the posts of eight thousand people. Users are supporting themselves, but we will be there to fix any bugs, of course.

RPS: And does that community produce any surprises? Anything weird emerge from the tech?

Francis: Yeah, wow. A lot of those surprises came in like the first year, because there were a lot of people using it. There were a lot of people with a really creative background – you don’t have to be a C++ developer! – working on things, and so in that first year we had a lot of really weird games come out. So after that sort of time you just don’t get surprised by stuff: Oh yeah, a flying camel game, whatever. A bigger surprise, perhaps, was that we had some high end users. We got the Cartoon Network to buy into it and use it for the FusionFall game, and we had EA doing Tiger Woods. Tiger Woods!

RPS: That comment about the C++ developer is an interesting one. I talked to some developer friends about Unity and their general reaction was “oh well I like to just program all my own tools, no use for me”, do you find that you find more resistance in that experienced set to using Unity, than say less technical types?

Francis: We’re seeing it somewhat less now, but I think that is partly because the tools have become much more powerful. We’ve always had this idea about “well you shouldn’t have to deal with the source code”, and that has set a very high barrier for us. But on the coder thing… well, I think many coders actually want to code, and gamers are an excellent excuse to be able to do that, but others have realised that getting the code interpolation right when you are importing animations just isn’t that interesting a problem to solve. When you use Unity you’re not that close to the metal, but you can make with plugins, and you can work on the more fun parts of your game.

RPS: Some teams have said to me that they didn’t choose Unity because they couldn’t play around with the source code? Is that a problem?

Francis: Well it’s not a problem now, because we have source code licences. You can write to us and get a licence on the source code. The other thing we get is people from studios saying “oh hey, I want to get the source code so that I can mess around with this and that”, but then we talk to them and find out what they want to do, and when we find out we can say “well you can do this and that, you can do it this way already inside Unity”. So often it’s just a case of getting to know the tools. If they don’t know the tools they don’t know whether they need the source code for what they want to do. Once we solve that it’s suddenly something they don’t have to worry about any more. Often, then, it is only a problem in people’s perceptions. Our job is to make sure you don’t really need it. People should be making games, not dealing with debugging. “We suffer so you don’t have to!” That’s one of our internal mottos.

Lots of people have suggested that professionals won’t use Unity because they want source code access, but then professionals started using it. And back at the start of when we were doing this people were saying “no one will buy middleware, because they will want to have have maximum control through source code” and then everyone starts buying middleware. If your tools are good enough people don’t want source code. They make assumptions about what they need, because that’s what they used to.

RPS: Yeah, that’s a difficult communication problem isn’t it. I’m leafing through your documentation and tutorials, and it’s pretty sprawling…

Francis: Yeah, and there’s a hundred pages coming out for iPhone development too. You know, because of the webplayer there’s always an issue with backwards compatibility, and we can spend hours arguing about function, and testing for function, and we can have this intellectual Darwninism going on with features, and that can take as long as it has to. I think it’s a well structured API and tool set, easy to get into, and once you’re in there you just start asking “how can I do this”. We just had some guys do real time global illumination just using our standard API. So we have all this documentation for people who want to find out, but other people, most other people, they won’t really care about it. They just want to get on and make a game!

RPS: People seem a bit reticent about the Unity browser plugin… do you see yourself as like a super Flash plugin, or something different?

Francis: No. We have an idea of Unity which is “console quality games on the web” so that might seem like “oh, it’s 3D Flash”, but it’s a real game engine. We have the physics, we have the 3D audio, we can do all of these things. We are a real 3D game engine company, the difference is you /can/ you use the webplayer as a better Flash. If you want to make 3D games for a browser, you can do that.

But let’s come at this from another angle. In the past everyone was doing physical distribution. Everyone hated that because you had limited shelf space, so you moved to downloadable executables, but then other companies were saying “that’s just another barrier, that’s just more steps in the way”, so you just want to get them online immediately. You want to get games working in Facebook so they they can play against each other right there, right away. Of course the scope of Unity is that you can do hardcore 3D development, or you can just make a 3D banner. That’s hard for us because we have different messages to send out to people. Someone from an Adobe Director background comes in and goes wild with all the things you can do on the web, while a traditional game developer is looking elsewhere and aiming higher.

But really, from a user perspective, the Unity plugin just gets more people playing games, faster. An example of this is the Cartoon Network’s FusionFall game. That was made as an executable in another engine and then at some point they realised they had a 1.5gig download for a game targeted at teens! They can’t wait through that, but they will play it if they can get to it via their browser.

RPS: Will there be more and more 3D games played via browsers then?

Francis: It seems to me just that people are playing more games and they are playing them in different ways. I’m not going to come along and say “oh browser games are the future and traditional games are dead” because that’s just not what’s happening. It’s a mix. As a game developer you just have to meet players where they are. If you are doing a hardcore shooter they’re going to expect an executable, if it’s more casual they’ll want to browse it. But people do want to get at games faster. They like Steam because you put your card details in and then you can just download the games you see online, and it’s why the iPhone is popular because it’s so easy to get a game and play it, right away.

RPS: Were you surprised by the success of the iPhone? I mean you support it, so did you expect it to take off?

Francis: Oh, it surprised us. We have two hundred games in the app store. Well, our uses have 200 games. When you have Unity you have the tools and whatever you make is yours. A bit untraditional, because people usually think “we need a cut of the profits”. When you buy a hammer, you own the hammer. You build a house with it, it’s your house. The person who made the hammer doesn’t get a cut of the house. It’s the same for us. We’re seeing around one iPhone game released every day since we launched. We’re selling a lot of iPhone Unity. Of course Apple’s business model is in a box: there’s one way to get apps, and they get a 30% cut. That’s it. No one who has an iPhone feels uncomfortable about it.

RPS: That’s interesting. The idea of a kind of universal fabricator for games. Build it with one toolset and export it to a whole load of different places. Someone could make a 3D game and have it online to download, or in a browser, or on an iPhone.

Francis: We are looking at 360 and PS3 development too. Our goal is, of course, write once run anywhere. Of course you are going to struggle to write a game that works well on PS3, iphone and PC all at once, but we’re going to go as far as we can to help people achieve that. Things might need to be cut down, but core code will just work.

RPS: What’s the future for Unity then? Multiplayer and MMO support?

Francis: Well we are geeks, we will just keep on adding cool new tech, more cool tools for people. We have multiplayer in there, just up to 64-players, LAN and internet and that sort of stuff. As for the MMO stuff, a few of the big MMO platforms now have Unity integration kits. These guys are good at that, so in a way that is sort of covered. People are more and more online, and so a networked games are feasible and you can pick your own back end to do that.

The message though, we need to get out, is to not be fooled by how simply Unity can look. I took two years out just to make games with Unity, to figure out what we could do and what we could improve. And we do that. We’re taking high end tech and dressing it up to look like a toaster, Unity is the toaster that is nuclear powered via it’s own core. People just see a toaster. We want to keep it simple and easy to get into, but that doesn’t mean you can’t get to the dirty bits.

, .

28 Comments »

  1. Devan says:

    An interesting read. I remember checking out Unity a year or so ago and was pretty impressed with what it could do in such a small package.
    For the type of product I’m interested in, I think I prefer Java over Unity, but it’s good to know that this is out there and making progress in the lightweight 3D realm.

  2. Nemolom says:

    I already liked what Unity seems able to do. This interview confirms my impression of its developers really having their priorities set right. The best of luck to them then. And I hope that one day I’ll find the discipline needed to sit down and get more into it.

  3. Larington says:

    The one danger of making a nuclear toaster, is that it may start asking folks if they want some toast, resulting in a conversation that includes phrases like “Would you like a toasted tea cake”.

  4. getter77 says:

    Definitely interesting and something I will surely need to look into in detail down the line with my own game development notions.

  5. Starky says:

    Larington wins this thread for including a Red Dwarf quote. +1 internets for him.

    How I wish I had a chirpy breakfast companion, I’d open a toast takeaway. Instead of pizza/kebab/curry drunk people could eat: muffins, toast, teacakes, croissants, crumpets, pancakes, bread waffles and hot-cross buns.

  6. Martijn Zandvliet says:

    I’m in love with Unity. I’m a music composition student with a couple of years of programming experience and a huge interest in game design and development.

    If it weren’t for Unity, I wouldn’t be building my own wingsuit flying game. I’d be silently sulking in a corner, hoping for a quick and painless death.

  7. Mark McDonald says:

    It’s great to see Unity getting some wider press coverage. It’s a fantastic tool for creating any kind of interactive content. 3d interactive visualizations, games, you name it.

  8. damien says:

    excellent interview. beyond the tangible hopes of the failed pc game-designer living in the back of my mind, i’m a sucker for anything that democratizes technology and tools for as wide an audience as possible. i might not like much of the content that cheap, ubiquitous video cameras have been used to make, but i’m in love with the amount of quality that rises up that wouldn’t have existed otherwise.

    i like what happens when you take the entry-barriers away from tools and let people have at the things they want to do with them. while most results will depress you, the ones that surprise you tend to be worth all the scouring in the world.

    downloading the trial now.

  9. Scandalon says:

    I just want to chime in and say I was “onboard” with Unity back in the early days before the first release, looking to switch from Torque *shudder*. (But then I grew up and stopped spending all my money on paintball and tech stuff I never actually used.) I just have to get a “before they were popular” t-shirt to wear to show how much cooler I am.

  10. Karry says:

    “you don’t have to be a C++ developer!”

    Thats bullshit, mister, and you know it !
    Someone still have to write all the game logic, and thats programming. Last time i checked Unity uses C# for that, and its not THAT different from C++.

  11. Trip SkyWay says:

    Interesting stuff, I’ll go give the trial a shot.

  12. Mark McDonald says:

    Karry –

    That’s not an accurate statement. You can use Javascript, Boo, or C# for scripting – and that’s the key word – scripting. While C# may share syntax with C++ (dunno, never used either), the point is that you don’t need to mess with memory management or other low-level programming tasks. The engine takes care of that for you.

  13. Matt says:

    Karry, C# is really quite different from C++. C# is much similar in it’s syntax to Java, and it’s a ‘higher’ level language. Sure, you still have to be a programmer to some degree to learn Unity, but there’s a big difference between being a C++ developer and learning a bit of Boo (a Python inspired scripting language).

  14. Nicholas Francis says:

    @Karry:

    You can also script in JavaScript or Boo (a Python variant). The goal of Unity was never to make programmers “optional” for your game projects. It was to give programmers the best environment to work in.

    Having on several occasions spent days chasing a stale pointer or memory leak, I think there’s quite a bit of difference between C++ and C#. Sure, they look the same on the surface – but C# is just a LOT more effective to code in (and this is coming from someone with over 10 years of C/C++ experience).

  15. Karry says:

    But you still have to be a programmer. I, as an artist, can do jack with Unity.

  16. Sharkwald says:

    @Karry Isn’t that rather like a carpenter complaining that he can’t build a park bench with a paint brush?

  17. bill says:

    what’s that last pic? I have a sudden hope for a jet-grind-radio clone…

  18. Karry says:

    @Sharkwald:
    But see, all these game engines brag about how they’re so easy even a child can make games in minutes, when in fact you have to be a coder, and if you are a coder – you can just as easily write your own engine instead, which i undesrtand many people actually prefer.

  19. Matt Diamond says:

    @Karry:
    As you point out, the need for programming has not gone away with Unity. But wat was meant by the “you don’t have to be a C++ developer..” quote is that you don’t have to be MUCH of a programmer to do quite a lot with Unity. As an artist who also knows how to use a computer, I believe you yourself could accomplish a lot because the amount of code one needs to write in Unity is often rather small. For example, you could start an animation you imported, play a sound, or move an object in 1-3 lines of code. (Unity also comes with some useful scripts out of the box for things like first-person character movement.)

    As a non-coder, you may be used to thinking of programming as an esoteric black box, that you either know how to do or not. But in fact coding ranges from very simple to complex. If you’ve ever typed formulas in a spreadsheet then you are already on the path without realizing it.

    That’s why other responders have tried to draw a distinction for you between scripting in C# and coding in C#. Even though the syntax is the same, the experience is very different. Almost anyone can learn to write the few lines of Javascript or C# code sufficient to tell an object in Unity to do something important. Very few of those people would be able to write the hundreds or thousands of lines necessary for a game from scratch.

    The proof is in the pudding: I’ve seen quite a few programmer-artists in the Unity forums who, before Unity, had never written a single line of code. Most of them don’t consider themselves coders now, but what little they needed, they learned how to do.

    As for your comment that coders could just as easily write their own engine anyway: I myself am an experienced programmer but the last thing I’d want to do now is write my own game engine. I’ve spent months of my spare time in the past writing games from scratch, and most of that was just writing code that had been written by others thousands of times already: load models from file, play sounds, read player input. Boring. I’m much happier using someone else’s code for those things, and instead concentrating on making my games better. My Unity games are much better than my from-scratch games, run on more platforms, and took much less time to write.

    Hope that helps.

  20. Sunjammer says:

    We use Unity3D for a project at work, and being a 10 year Flash developer with a fair amount of Maya experience, it’s really amazing stuff to jump into, so much so it frankly makes the attempts at 3d worlds in flash look a bit daft.

    Then again, Unity3d is very 3d, and is rather poor at 2d content. The GUI stuff in particular is almost impossible to enjoy coming from a Flash background.

    Thousand thumbs up. Everyone interested in game dev and game prototyping should get a trial and play around.

  21. Sunjammer says:

    About the coding thing; I’m used to object oriented techniques, so i naturally gravitate towards the C# stuff (lovely, lovely language, and hello Visual studio!), but you can do a lot of really cool things in Unity with simple javascript-style behavior scripts you can just layer and stack to tweak behaviors. The beauty of Unity is really its component model, and how easy it is to combine behaviors.

    Again, don’t be scared of it. It’s bastard simple stuff.

  22. Sunjammer says:

    C# is a universe apart from C++. A universe. C++ is a language even seasoned developers think is difficult and weird. C# is a hawaiian sea breeze of love and zen by comparison.

  23. iamseb says:

    @karry – I’ve seen all too often the hopes that someone who isn’t a coder might have to make a game, but it’s just not feasible to do so without some technical capability. Unity goes further than most game builder packages I’ve used to try to close the gap, but it’s still true that there’s a gap between artist and developer, and it’s a gap that no tool I’ve ever used can fully bridge.

    I’ve been evaluating Unity for a little while with the aim of iPhone and browser-based games and it’s very impressive indeed. A far cry from the utter mess that I got into trying to make Torque do what I wanted, considerably more powerful than flash, and a thousand times less work than writing my own engine. (I’ve written 3 extremely limited game engines, and several mods for different engines, accounting for about 5 years of elapsed effort.)

    My only real concern so far has been the apparent scarcity of guided learning tools for Unity. There are 2 tutorials which are great, but reasonably limited in scope, and (unless I can’t find them) very few how-to guides, meaning that the learning experience involves lots of dry API documentation.

  24. gnoblin says:

    Unity is a great engine!
    I would not use anything else ).

  25. AngryAnt says:

    @bill: That’s a shot from the Cartoon Network title FusionFall – made with Unity.

  26. Digit says:

    I hadn’t touched a language prior to Unity, though I have worked in the games industry for ~6 years, and I took 30 days to checkout the trial, and had a working prototype of my game in C# on day 26. I used another engine which shall not be named for fear of summoning it’s dark powers prior to Unity, and in around 3 months had what effectively amounted to -nothing- to show for my time. So I really approached Unity -very- carefully at the start but am totally sold on it now.

  27. Joe Robins says:

    @Karry:

    As an Artist myself I can see your point of view, but this is where Unity really shines.. I started using Unity with practically no programming experience whatsoever, within 3 months of starting and with some fantastic help from the community (an aspect of Unity that often goes un-praised) I had a fully working game up and running for a client and was really pleased with the results. So my response to you would be, pick up Unity, get involved in the community and with a bit of effort you will soon have your own art assets flying around the screen with a huge grin on your face :D

  28. Susan says:

    I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.

    Susan

    http://dclottery.info