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.


Interesting
report
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?
report
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.
report
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.
report
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.
report
That was supposed to read “(something something) internet”.
report
to work in html 5 it has to have a web gl render path, which is a java script version of open gl.
report
A bit of a slap in the face for these fine folks, I suspect.
report
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.
report
Although its not like OnLive will let you do that either in the next 10 or so years.
report
BT Internet have signed an exclusive deal with Onlive so that’s a thing that’s actually happening. If they host servers at an exchange level I can see it working fine, but that’s a huge if. It’ll get more problematic if the servers are, what is more likely to happen, hosted only at key exchanges.
I guess they’ll trial it somewhere with a dense population and see how it goes from there.
I wonder will Onlive offer Dwarf Fortress – I could really be doing with a super-computer to run my current fort….
report
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.
report
Yup. The no-plugin thing is mostly marketing babble.
report
Surely it’s just like… the plugin coming with the browser?
report
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.
report
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.
report
That’s very impressive. I’m curious as to the performance of native vs plugin code.
report
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.
report
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.
report
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.
report
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.
report
From the Unity blog comments:
“that’s correct, Unity content will run on Linux in Chrome, via NaCL.”
report
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.
report
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.
report
awesome, except that unity games suck, but.. yeah.
report
I feel the same way about Unreal Engine 3 games. All of them.
report
@Mr Labbes: that includes both Mass Effect titles?
report
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.
report
yeah, the ue3 stuff is usually pretty drab, except mirror’s edge and the mass effects.
report
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.
report
@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
report
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.
report
@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).
report
@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
report
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.
report
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. <.<
report
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?)
report
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.
report
Thanks for the replies guys
report
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.
report
Reply fail, I was trying to reply to Jimbobb
report
Onlive is this decade’s Infinium Labs’ Phantom thingymabobbins.
A pot of shit surrounded by people fountaining shit out of their mouths.
report
Nocturnal glare confusion
report
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..,
report
“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.
report
@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.
report
@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.
report
@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.
report
@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.
report
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/
report
Now do it for Firefox plz.
kthxbai.
report
Unity on linux? Made of win.
report
s/Flash/Unity/ ?
report
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.
report