Unity In Chrome With No Plugin

By Jim Rossignol on May 21st, 2010 at 11:27 am.


Edge Online report that Unity have revealed their 3D engine running in Google’s Chrome browser without a plugin.

Described as a “potential game changer” by Unity VP Brett Seyler, Native Client is a security sandbox currently in development for Chromium which allows “the secure execution of native code”. Unity’s Web Player software is not required.

Dark magicks. And kind of a big deal. Lots more in a big post from Unity over here. “The future of games on the web,” indeed.

__________________

« | »

, , .

53 Comments »

  1. modern panther says:

    Interesting

  2. LewieP says:

    I don’t fully understand how this works, but is there anything about the unity engine specifically that makes it work for that but not, say, UE3?

    • kurige says:

      There’s no reason UE3 couldn’t do the same thing, as far as I can see, but I’d reckon it would be a helluvah undertaking.

      The Unity folks were in a unique position where they already had a plugin-based engine. I suspect porting it to the NaCl framework was relatively painless.

    • kurige says:

      There’s no reason UE3 couldn’t do the same thing, as far as I can see, but I’d reckon it would be a hell of an undertaking.

      The Unity folks were in a unique position where they already had a plugin-based engine. I suspect porting it to the Chrome NativeClient framework was relatively painless.

    • Jimbo says:

      The Unity game engine is based on Mono and the .NET framework and internet. I have no idea what I’m talking about, but my guess is it’s something to do with that.

    • Jimbo says:

      That was supposed to read “(something something) internet”.

    • TheSombreroKid says:

      to work in html 5 it has to have a web gl render path, which is a java script version of open gl.

  3. kurige says:

    A bit of a slap in the face for these fine folks, I suspect.

    • Jimbo says:

      OnLive is about letting you play maxed out Crysis on a POS computer (or eventually just your TV), without a download or anything. This won’t let you do that.

    • Bremze says:

      Although its not like OnLive will let you do that either in the next 10 or so years.

  4. Tei says:

    Some people has described this to me like this:
    Unity can run inside a “sandbox” that is like a virtual machine that run a real time speed.
    Chrome has support for this sandbox out of the box, so the support for unity to run there is in chrome out of the box.

    • Mario Figueiredo says:

      Yup. The no-plugin thing is mostly marketing babble.

    • HexagonalBolts says:

      Surely it’s just like… the plugin coming with the browser?

    • correnos says:

      It is… sort of. But do most people really care what goes on underneath as long as they can shoot stuff without installing anything?

      It would have been cooler if they had used WebGL imo.

    • ascagnel says:

      Agreed on the WebGL. Unfortunately, HTML5 will just be relegated to demos unless IE9 supports it all. MS has announced IE9 as supporting HTML5, but they haven’t said what exactly, at least not yet. I’m assuming canvas is in there, but WebGL + good JavaScript for input handling plus the audio tag for sound is the go-to for HTML5 gaming.

  5. Wes says:

    That’s very impressive. I’m curious as to the performance of native vs plugin code.

  6. Mario Figueiredo says:

    Another big loss to Apple since their recent changes to the EULA are posing a real problem to Unity developers and users alike. Having been around enough time to witness my share of towel throwing, I’m not so easily swayed by statements of “everything will be alright”. And this move from Unity Technologies is a sure bet that if things get rough on the iPhone/iPad side of things, they won’t be missing it when they close the door on it.

    As for the technology, I’ve been hearing nothing else but good things about it. I’ve been initially distrustful of web browsing game. But looking at… web browser games like they are today with much more crude solutions like PHP/AJAX/Flash being (some) things of beauty, I can only imagine what will be possible with solutions like Unity.

    Not exactly my cup of tea, I think. But from a gamer perspective, I do support the notion. If for nothing else, for the fact opening another gaming platform is always grounds for innovation in game design.

    • Jimbo says:

      This whole issue is a real bummer for me. I was just about to spend about a grand on Apple products in order to develop iPhone / iPad games (you need a Mac to run the iPhone SDK), when they floated this thing about potentially not being able to use Unity… which is exclusively what I have been learning to use and what I’ve been spending the last few weeks making most of my first game in ¬_¬

      It’s cool n all, but I don’t think this is going to be much of an alternative for a lot of people, because it will be a lot harder to monetize games like this on the internet than it is on the Apple devices.

    • Hardlylikely says:

      Does the Android support from Unity offer you any hope Jimbo? Android seems to be growing pretty fast as a platform, if app sales rise accordingly you could still have something.

    • ascagnel says:

      Android doesn’t support Unity per se, but Unity can choose to support Android. Google doesn’t make any restrictions on what tech you can use if you want to be listed on the Market.

      Google’s been good about staying the hell out of the way for developers. I’ve written a few Android apps, and I’ve been able to test them on my phone (Motorola Droid, or at least that’s what they call it in the US), where Apple was “kind” enough to only give me an emulator to run the in-development code.

  7. Luomu says:

    From the Unity blog comments:

    “that’s correct, Unity content will run on Linux in Chrome, via NaCL.”

  8. Radiant says:

    Yeah to put it in another way Chrome is adept at running virtual environments [like how it handles javascript].
    So you will have to download SOMETHING [the game itself maybe] it’s just running in it’s own virtual environment in Chrome rather then an .exe on your desktop.

    + points:
    safety – it all runs unconnected to your os
    ease of use – you’re already got the browser open
    crash protection – if it goes down it will only take down the virtual environment and not the os or browser

    - points
    Optimisation – you’re running more apps on top of you browser on top of whatever else is running on your os.
    Price gauging – more shit you will have to pay for.
    Games – are already available without having to shoehorn them onto a baby browser.

    • Malcolm says:

      The safety thing is an interesting point – it certainly is connected to you OS, but probably relies on the same process isolation techniques as the rest of Chrome to mitigate risk. Microsoft’s ActiveX is probably the nearest existing analogue to this native code in the browser, although google’s tech has the advantage of a decade or more of security hindsight (and OS security features) to hopefully avoid most of the inherent problems that have afflicted ActiveX/IE over the years.

      It’s certainly no worse than, for example, the flash plugin which “helpfully” runs a separate service outside the browser security model and has therefore caused numerous security holes.

  9. lhzr says:

    awesome, except that unity games suck, but.. yeah.

    • Mr Labbes says:

      I feel the same way about Unreal Engine 3 games. All of them.

    • Azhrarn says:

      @Mr Labbes: that includes both Mass Effect titles?

    • Mario Figueiredo says:

      Games sucking or not, have nothing to do with the engines they run on, but all to do with the people that develop them… and to some extent the opinions of those who play them.

      You can quote me.

    • lhzr says:

      yeah, the ue3 stuff is usually pretty drab, except mirror’s edge and the mass effects.

    • Mr Labbes says:

      That was supposed to be a joke on my part, because I played some good Unity games. As Mario said, it’s about the game, not the engine. Believe it or not, there are also good flash games out there.

    • lhzr says:

      @Labbes: yeah, except that the ue3 engine can actually produce good games because it’s a capable engine. unity, on the other hand.. just go read some reviews, on http://www.devmaster.net , for example

    • Mr Labbes says:

      I don’t need to read reviews, I know that I have been playing good Unity games. Obviously, the engine must be capable of something.

    • Mario Figueiredo says:

      @lhzr

      The debate is puerile. You could say the worst thing of Macromedia Director as a platform to make games. It surely is a lot more limiting than Unity3D. But it was how Solium Infernum was made.

      And unless you want a bunch of people in this forum to go red eyed on you, you’ll agree it’s one hell of a game (look, I made a funny).

    • lhzr says:

      @mario: yeah, of course i didn’t mean that any and all games that have been and will be made with unity suck. i meant that i haven’t come across a good one yet. and i really didn’t :D

  10. Sp4rkR4t says:

    Native Client is a big deal indeed and I hope the other browser makers follow suite by implementing it, in fact all of Google’s announcements so far from I/O have been pretty game changing.

  11. Wulf says:

    Interesting!

    Though, truth be told, I’m perfectly happy with having it as a Firefox plugin. I’m not going to abandon Firefox any time soon, either, what with all those extensions and the ability to get inside the browser and customise it any way I choose (I like that, and often do). My Firefox is unrecognisable as Firefox to most people, and looks like some bizarre, minimalist space age thing. >.> But yes.

    I suppose the only downside of this for Chrome users is that they could have Unity stuff running unexpectedly, sort of like flash. I imagine a new market for completely 3D advertisements, which find new and better ways with which to annoy the viewer. This is why I like having complete control over what elements of a web page are shown, too. <.<

  12. Jimbobb says:

    Does Unity utilise hardware acceleration?? Does this mean in principle ‘proper’ games in the browser? I’m trying to understand what the bottleneck will be to someone making a Unity Crysis? (bandwidth or something else?)

    • Tei says:

      Does Unity utilise hardware acceleration??

      From Quake3 and up, everything needs hardware acceleration, even flash games.
      The limit is on 32 bits alphas, and shaders. If you want these things, you need hardware acceleration.
      Future 64 cores CPU will be able to render Crysis (or Half-Life2) using a software renderer, but not today hardware. You can’t expect a today game to use a software rendered. The last software renderer was… something like Winquake, FTEQuake..

      Does this mean in principle ‘proper’ games in the browser?

      Define “in”.
      Unity is a decent engine. Or more important, is decent enough AND developers seems to love it, because empower his ability to make good games. Good for the Indie and the like people. People with huge budgets may make different decissions.
      Define “decent”. Are 3D indie games decent?

      I’m trying to understand what the bottleneck will be to someone making a Unity Crysis? (bandwidth or something else?)

      You graphic card, and.. I dunno, if resources are downloaded with the network, you don’t want to download 200MB before any game, so maybe theres also some limit on map size, or stuff like that. And the bussines model….I suppose, if your bussines model can cope (or not) with people downloading 200MB or 2GB of data.

    • Jimbobb says:

      Thanks for the replies guys

  13. Mark O'Brien says:

    1) You still need to download game data to your local machine. It’s not streaming (like OnLive), so bandwidth is not an issue, but it will take time to download what the game needs to start. They could do this on a staggered basis, i.e. loading content when it’s needed rather than up front, but that just means having lots of little loading screens rather than one long one.

    2) The unity engine is probably not capable of delivering Crysis-level special effects.

    • Mark O'Brien says:

      Reply fail, I was trying to reply to Jimbobb

    • Radiant says:

      Onlive is this decade’s Infinium Labs’ Phantom thingymabobbins.
      A pot of shit surrounded by people fountaining shit out of their mouths.

  14. robrob says:

    Nocturnal glare confusion

  15. jph wacheski says:

    Oh good, now all the Unity games will need to download the engine each and every time you open one? At least with the engine in a plugin you have it pre-installed once. WebGL is actually integrated into the browser so using that with this codebox stuff could lead to a reasonable size engine..,

    • Tei says:

      “Oh good, now all the Unity games will need to download the engine each and every time you open one? ”

      Lets suppose theres something like a cache. So things that you use are only downloaded once. Mostly.

    • Mario Figueiredo says:

      @jph wacheski

      err… no. You wouldn’t need to do that. Not even once (*). It comes with the browser. It’s part of the browser. It’s not much different than the WebGL plugin you mention.

      Of course, the whole speech of Unity3D not needing a plugin is because the “plugin” is already an integral part of the browser. So it’s just marketing fluff. But you don’t need to concern yourself with downloading the engine.

      (*) there’s, of course, the need to update to the engine.

    • Blather Blob says:

      @jph wacheski: I’m not sure how linking and cross-domaininess is implemented in NaCl, but I imagine it would be possible to point to both a generic library of engine code on unity.com and also your game-specific stuff on your own site, meaning that the browser can cache the engine code off of unity.com just once and share it for every page/game that points to it. Sort of like how Google is trying to get web developers to point to copies of the popular javascript libraries hosted at google, so web browsers only need to download the libraries once, no matter how many sites on the internet use them.

      @Mario Figueiredo: There’s nothing Unity-specific being built into Chrome, the Unity folks have just ported their engine over to the new NaCl support that Chrome will have. Either by porting the Unity VM to run on top of NaCl (and then Unity games would run on top of that sandbox in a sandbox), or maybe they’ve made their compiler able to target NaCl directly, like they did for the iPhone (and now the Android, apparently). But they’re just using a generic sandbox environment shipping with Chrome, and anyone else will be able to write code targetting NaCl and ship a no-install native (x86) game without having to use Unity, too. I mean, one of the first demos of NaCl was a direct port of Quake.

    • Blather Blob says:

      @jph wacheski: I’m not sure how linking and cross-domain security is implemented in NaCl, but I imagine it would be possible to point to both a generic library of engine code on unity.com and also your game-specific stuff on your own site, meaning that the browser can cache the engine code off of unity.com just once and share it for every page/game that points to it. Sort of like how Google is trying to get web developers to point to copies of the popular javascript libraries hosted at google, so web browsers only need to download the libraries once, no matter how many sites on the internet use them.

      @Mario Figueiredo: There’s nothing Unity-specific being built into Chrome, the Unity folks have just ported their engine over to the new Native Client (NaCl) support that Chrome will someday have. Either by porting the Unity VM to run on top of NaCl (and then Unity games would run on top of that sandbox in a sandbox), or maybe they’ve made their compiler able to target NaCl directly, like they did for the iPhone (and now the Android, apparently). But they’re just using a generic sandbox environment shipping with Chrome, and anyone else will be able to write code targetting NaCl and ship a no-install native (x86) game without having to use Unity, too. One of the first demos of NaCl was a direct port of Quake, well before the Unity port existed.

    • Mario Figueiredo says:

      @Blather,

      Thanks for the correction. It’s an important one. I was so carried away by my post didn’t I tried to be more accurate.

  16. vahidm says:

    Actually, that’s what the Chrome web app store is for… And getting there first will undeniably help… Go fur it!

    http://www.rockpapershotgun.com/2010/05/21/chrome-web-store-what-say-you/

  17. WiPa says:

    Now do it for Firefox plz.

    kthxbai.

  18. Supertonic says:

    Unity on linux? Made of win.

  19. elmuerte says:

    s/Flash/Unity/ ?

  20. Mistabashi says:

    On a side note: I just notic4ed that the pac-man style google logo that comes up on their serch page is actually a playable game!

    If there isn’t a new game every week I’ll be disappointed.