Share this:

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.

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.

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.

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.

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.

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.

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.

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.

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. <.<

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?)

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.

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.

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..,

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.

@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.

@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.