4 ms·
Native Unity3D support is a huge thing. Right now Unity games run in the browser via a plugin. The plugin installation is a single click, fairly transparent and
by teamonkey 15y ago
Native Unity3D support is a huge thing. Right now Unity games run in the browser via a plugin. The plugin installation is a single click, fairly transparent and doesn't require administrator access, but for the average user it's scary. Who trusts a plugin? It's reported as the number 1 turn-off for users.
- azakai 15y ago> Right now Unity games run in the browser via a plugin. The plugin installation is a single click, fairly transparent and doesn't require administrator access, but for the average user it's scary. Who trusts a plugin? It's reported as the number 1 turn-off for users. 1. This is still a plugin. NaCl uses the Pepper plugin API. That it is bundled in Chrome doesn't make it not a plugin (Chrome also bundles Flash, and that is still a plugin.) 2. The Unity3D plugin will at least work in multiple browsers, while using NaCl will only work in Chrome. 3. It is true though that, as you say, having a plugin pre-installed as in Chrome is less scary for users. However, it still has all the other problems that plugins have, and as mentioned that it is Chrome-specific.
- ConstantineXVI 15y agoThe difference is this one plugin is capable of covering much more ground than Unity3D alone. Once it's there, nothing stopping one from porting, say, id Tech, Unreal, Frostbite, RenderWare, OGRE, Avalanche, Crystal, CryEngine, EGO, Source, etc. to NaCl and running it in the same plugin. Say what you will about Google's strategy, it opens up quite a few possibilites.
- azakai 15y ago> The difference is this one plugin is capable of covering much more ground than Unity3D alone. Once it's there, nothing stopping one from porting, say, id Tech, Unreal, Frostbite, RenderWare, OGRE, Avalanche, Crystal, CryEngine, EGO, Source, etc. to NaCl and running it in the same plugin. That's already possible with the Flash plugin using Alchemy. There are demos of several of those game engines running in it. It is also possible to compile those technologies to JavaScript and run them without plugins at all (using Mandreel or Emscripten), but the experience would be less uniform (results would be different in different browsers), which is probably why it hasn't been done yet.
- CyruzDraxs 15y agoEmscripten is not a viable alternative. The Javascript it generates is too slow for performance intensive things, which is the whole point of NaCl. Flash is too unstable.
- azakai 15y ago> Emscripten is not a viable alternative. The Javascript it generates is too slow for performance intensive things Is 3-4X slower than native code "too slow"? Those are the results right now. And it will be much faster as JS engines continue to improve.
- implicit 15y agoAbsolutely. Think about it this way: "4x slower than native code" means that 80% of the CPU's cycles are being spent on the platform. With NaCl, it becomes possible to instead spend most of those cycles on extra application richness without sacrificing the customer experience by requiring an installer or plugin.
- azakai 15y agoThat can be true, but based on my experience in the game industry it isn't necessarily the case. Often a game will be GPU-bound, in which case the JS, Flash and NaCl versions will all have the same bottleneck, GPU shaders (in fact for this reason more and more is done in scripting languages in game engines these days). If that is the case, you might as well use JS, since it will run in many more places than Flash or NaCl. But again, there are situations where you are CPU bound, and in that case CPU speed does matter - you are very correct in those cases. Currently JS is indeed at a disadvantage compared to NaCl in that area, however, I believe that it will match it in time (through a combination of API additions like Intel's RiverTrail, and further improvements to JS engines like static analysis). The real question is then, will NaCl fix its problems (portability, adoption in browsers other than Chrome) before JS fixes its problem (speed). My bet is on JS.
- teamonkey 15y ago> This is still a plugin The point is, by default the user does not need to install or enable it. Let's not underestimate how important a factor this is.
- azakai 15y agoYes, that is clear. However, bundling a plugin doesn't fix the bigger problem that this is only in one browser.
- rafedb 15y agoYes, the browser that is doing nothing but growing in market share. Not to mention, as has been stated, it is all open source so any other browser that wanted to take advantage of this tech can do so. Some just seem too stubborn to do so for what I can only assume is because THEY didn't do it. If things continue to work as well as they are thus far, and the other guys continue to say it isn't worth implementing, then my first point will just continue to happen.