Unity and Mobile

January 20, 2010 in Technology

I wanted to take a moment and talk a bit about how we see mobile platforms here at Unity.

Any talk about mobile will start with the iPhone – it’s the device that really showed even disbelievers like me that you do want a general-purpose computer-like device in your pocket. The iPhone has been great for us – we got in on it early and let our users publish to it – adding “quite a few” users in the process. We’ve now shipped 6 versions and over 500 Unity appstore games have been launched. Pretty much whenever anyone does a list of top-something-or-other on iPhone games, you can spot a couple of Unity-powered games.

What games are people playing on the iPhone? From what I’ve heard based on data from ingame ad networks, an interesting trend is surfacing: iPhones are typically used for play sessions of around one hour – mainly in the evenings. If iPhones are really giving traditional consoles a fight in their own turf, this means that mobile devices have a huge future in the gaming space as well.
So how will all this play out? I expect that over the next few years we’ll see a bunch of mobile platforms appear. Some of these will stay and quite a few more will die – in the end, I wouldn’t be surprised if we ended up with iPhone, Android and a third player. Obviously, we want our customers to be able to deploy their games to as many platforms as possible – this means that we could be adding support for some that will possibly go away in the end – that’s ok. While platform fragmentation is annoying to us, the ease of targetting multiple platforms is something we’ve always held close to our heart. Maybe we’ll suffer a bit when porting, but at least it’s only us and not all the people that just want to get creative. It’s our unofficial slogan: We suffer, so you don’t have to.

Some of you have probably seen the announcement that we’re going to support NVidia’s Tegra 2 chipset. This is the first of various things we’re ready to announce and also says something about how we see the world: there’s chipsets and OSes (and then there’s the physical devices). We work on supporting a chipset (like SGX/ARM for iPhone) and we work on supporting an OS (Windows, MacOSX, iPhoneOSX). Behind the huge range of mobile devices mentioned above, there’s a somewhat smaller list of stacks: Broadcom, Qualcomm, Apple, NVidia Tegra – with an OS on top: iPhoneOSX, Windows CE, Linux, Android, etc. those are the ones that are real work for us to support – but once we have some more of these, adding new devices shouldn’t be that hard.

And then there’s the Apple tablet (sure, there’s others – but who really cares?). I expect it to be OSX-based, probably some SGX/ARM chipset – while I know as little as anyone else, I’m basically thinking of an oversized & clocked iPhone 3GS. Supporting it will be some pain, but nothing major (these things are hard to say – half the time on the original iPhone port was spent on one single issue).

Either way, I think gaming on mobile platforms are going to be huge, and I think we’re small and nimble enough to be among the very first with support for many of these platforms. If any of you are going to GDC, I’d love to meet up and chat about these things – drop by our booth (or failing that, there’s a wonderful comment thingy below this post).

Comments (21)

Subscribe to comments
  1. dave

    September 15, 2010 at 8:56 am / 

    You are in a dream world, Jeremy. With regard to games, Mac and Linux are in the same boat. Mac is a wasteland for games, just like Linux, but that doesn’t mean that they have zero potential to ever compete. It is dangerous to speak in terms like, “the facts stand that..” Facts (which I will go out on a limb and guess you have never personally researched) change with time. There was a time when OpenGL was “better” than Direct3D for everything, so what makes you think it couldn’t be like that again, or that a third party would never form to enter the competition.

    Your statement about being “upset to see Unity support Linux” is just retarded. I will have to call you out on trollism, here.. because it makes no sense to complain about such a thing, when it clearly doesn’t affect you. You’re being incendiary for the sake of drawing flame. I think phone gaming is a waste of time, but I think it’s best to offer as much compatibility as possible, not to be political and fanboyish about it.. hopefully no one that matters thinks like your dumb ass.

  2. randyedmonds

    January 29, 2010 at 6:37 am / 

    So, now that the Apple tablet has been announced (the iPad), do you still think adding Unity iPhone support for it will be painful? I’d like to know if there is any hope of getting support for it before the March launch.

  3. Ashkan

    January 26, 2010 at 11:29 pm / 

    maintaining a headless server even without input and rendering and sounds and other features can lead to many problems and slow down the development and adding features. if you really want that you can create your own back end in mono. you can use physx too. it’s not as easy as a headless server for linux but is the solution that tiger woods and maybe fusion fall used. you don’t need to host normal games. just build a masterserver for linux and let users host their games.

  4. Jeremy

    January 25, 2010 at 5:28 am / 

    The facts stand that Linux doesn’t generate profit for a games developer like Windows or Mac. I would be upset to see Unity support Linux, Linux is not a viable gaming platform and to put any effort into it would be wasted.

    It’s very easy to find stats among indie games comparing what platforms generate revenue. Linux doesn’t even rank compared to Windows and then you have the Mac way out in front. I’m ignoring the iPhone since I have no experience in that market yet ;-)

    /rant
    ^_^

  5. tau

    January 23, 2010 at 6:30 am / 

    As for Linux support – just pick two flavors like Ubuntu and Fedora, that will be enough. I even dont care if it has a webplayer on Linux, I do care about a headless linux server for Unity, so I can host games on linux without paying high windows license cost, not even talking about OS stability…

  6. Ashkan

    January 22, 2010 at 10:46 pm / 

    the last question was a joke more than a question.
    but now a real question.
    there are engines that they support linux. to name a few i can saw shiva3d and unigine. how do they handle this? can they support many distributions?
    i think commercially linux support is not important. even mac support is not as much important as a good engine on windows. many people prefer more powerful engines that only work on windows. some other engines has windows only features but unity don’t have. i think you should add it. for example you can add support of many video formats by using windowsmedia player COM objects. for webplayers it’s not logical but for the desktop it’s a good choice.

  7. Sean Baggaley

    January 22, 2010 at 6:16 pm / 

    Errata:
    “Linux platforms have only open, standard, media APIs…”

    Should read:
    “Linux platforms have only two open, standard, media APIs…”

    (Any danger of an “edit” button?)

  8. Sean Baggaley

    January 22, 2010 at 6:14 pm / 

    @Rogerio Lima:

    The Kindle uses an “e-Ink” display, which has a very slow refresh rate. Its design priority was for a battery that lasts for weeks, not hours, so a fast CPU and graphics processor combination isn’t included. At best, a “Unity Kinde” build would only support monochrome games with little or no animation to speak of. (Perhaps a Soduku or crossword puzzle game might be worthwhile.)

    @Tom Higgins:
    How about a plugin system for platform support (and other extensions)? Want support for Platform X? Buy the Platform X plugin! (Etc.) Granted, the other stuff you need—e.g., XCode and OS X for iPhone development—complicates matters somewhat, but architecturally, it definitely makes more sense to make it easier to extend Unity’s core feature set.

    @Ashkan:
    Yes. Linux’s very openness is also its primary weakness. It’s design by committee at both its best and its worst.

    Microsoft’s ownership of Windows means there is usually a single, coherent, fairly consistent vision behind their design decisions. Their creation of the “DirectX” suite of APIs is an excellent example of this: prior to DirectX’s appearance, practically nobody released games for Windows, preferring to target MS-DOS instead.

    Linux platforms have only open, standard, media APIs for developers: OpenGL (graphics) and OpenAL (audio). Support for these is variable at best across all manufacturers, but there are no consistent standards for interfacing with joysticks and other peripherals, or dealing with networking. (SDL isn’t really anywhere close.)

    Couple that with the Linux philosophy of “choice”, regardless of whether it’s a *meaningful* choice, and you’re also faced with having to document how to install and support your application on multiple environments (KDE, Gnome, OpenSTEP, etc.) and the various shells—bash, csh, and so on. And you have to maintain that support and documentation throughout the lifetime of your application, over multiple versions.

    This is why the big players in the Linux market treat support as a primary revenue stream, A natural corollary of which is that there’s less financial incentive to make your software easy to use.

    The only time Linux plays nice with games is when a single entity takes ownership and control of the complete process, hence you’re more likely to see support for Linux-derived platforms like Android.

  9. n0mad

    January 22, 2010 at 4:42 pm / 

    Don’t worry Nicholas, some devs are in Hell of Technical Challenges too :P

  10. Aras Pranckevičius

    January 22, 2010 at 9:04 am / 

    @Rogerio: I’m not up to date, but all I know is that Amazon announced Kindle development kit. But for example, does it even have a GPU? I know it has ARM CPU, but that’s all I know. Without some chip that can render more than text and images on screen, it’s kinda hard to make 3D games…

  11. Rogerio Lima

    January 22, 2010 at 2:18 am / 

    Support for Amanzon’s Kindle would be asking for too much? It seems to me like a promising distribution platform in the future.

  12. Ashkan

    January 21, 2010 at 11:32 pm / 

    is windows in compatibility issues like linux? really!?
    it’s not as good as OSX but hey it’s not like linux!

  13. Tom Higgins

    January 21, 2010 at 8:25 pm / 

    @Melvin: this blog post wasn’t about committing to any platforms in particular so much as painting broad strokes. So stayed tuned for more details about future platforms, Android or otherwise.

    @Lars: merging the apps into one and taking a step back to look at our licensing model as a whole (so it makes sense going forward) are key agenda items for us as well.

    @foyleman: Nothing to commit to around E3 just yet, it’s not in our wheelhouse of conferences to attend as we prefer more developer-centric events, but only time will tell as we’re still mapping out the full 2010 conference plan.

  14. foyleman

    January 21, 2010 at 4:06 pm / 

    Any thought on attending E3 this year?

  15. Dock

    January 21, 2010 at 1:59 pm / 

    I’m really excited about the potential for new targets from Unity. It’ll be interesting how we’ll cope with different capabilities, especially when we don’t have support for most of the iPhone services, but I’m sure Unity have a solid plan for supporting other mobile platforms.

  16. col000r

    January 21, 2010 at 1:34 pm / 

    Bring on the targets! The more we can build for the better for us!
    There’s still some suffering involved, but I’m oh so very glad that you’re taking the bigger share! ;)

  17. Melvin

    January 21, 2010 at 5:42 am / 

    It’s not entirely clear from the article but are you going to support Android in the near future? I’m pretty much assuming you will considering that you predict that Android will be in the top 3 mobile platforms, it only makes sense. It shouldn’t involve porting everything over to Java since there is an Android NDK that allows you to compile C/C++ code – the language unity is written in. Although, from what I understand, is that the NDK compiles code specific to a particular mobile CPU which means that you would need to recompile/export your game for each Android device. Could this be the single issue that takes up half your time on the Android platform? Anyways, despite all the difficulties I hope you do tackle the Android… your unofficial slogan is a little sadomasochistic in nature ;)

  18. Nicholas Francis

    January 20, 2010 at 10:12 pm / 

    @Richard: We won’t rewrite Unity in Java (never say never), but still….

    Getting unity to run on one install of Ubuntu Linux wouldn’t be too bad. Getting the webplayer to run on all kernel/X/Browser/GPU configs would be a LOT of work – and that’s just only for one distro. Basically Linux looks like a black hole of infinite compatibility issues to solve. The platform that is closes to this in terms of effort is Windows – but there, GPU vendors spend make a huge effort to have great drivers, there’s one single true way to access audio, etc. In short the work there is easier, there’s less of it & the maket is way bigger.

    @Ashkan: The biggest issue in iPhone porting was ahead-of-time compilation. Around beta5 (or so), Apple disabled the option to execute memory that was also writable – which means you can’t JIT.

  19. Ashkan

    January 20, 2010 at 9:37 pm / 

    what was that issue in iphone porting?

  20. Lars

    January 20, 2010 at 9:33 pm / 

    Please make sure that unity and unity iphone merge into on program before doing any other ports. this is my main issue with unity. two versions of the software.

    I don’t mind having 20 target platforms as long as the software is just one application.
    Anyway keep up the good work! Looking forward to the next versions of unity and support for mobile is great!

  21. Richard Boehme

    January 20, 2010 at 9:27 pm / 

    If you’re porting to Android, would there be any chance of a generic Java client so that Linux would have a working Unity client?

    Also, what are the main difficulties encountered in, say, a port to Ubuntu Linux?

Comments are closed.