On the future of Web publishing in Unity
A few weeks ago at GDC, we announced support for WebGL publishing for Unity 5. Now I’d like to share some more information on what this is all about, and what you can expect from it.
It took us a few more HackWeeks of tinkering around and some developments on the browser side as well, until we reached a point where we realized that we could make a real viable product out of this – which is when we started going into real production.
To give you an idea of what is possible right now, here is a Unity player exported to WebGL with a current alpha version of Unity 5
Click the icon below to play Dead Trigger 2 by Madfinger games in your browser, demonstrating an immersive fullscreen FPS experience in WebGL. Controls are WASD to walk, mouse to look, Q to switch weapons, Tab to switch to Melee combat, and 1, 2, and 3 for special powers (try them!).
And here is a build of our classic AngryBots demo (which runs fine on Firefox and the release version of Chrome):
WebGL in Unity 5.0
We plan to WebGL support available in Unity 5.0 as an early-access add-on (before you ask: the terms and prices of this add-on have not been decided on yet). Early-Access means that it will be capable of publishing content to WebGL (like the examples above), but it will have some limitations in features and in browser compatibility. In particular, the following features will not be supported:
- Runtime generation of Substance textures
- Networking other then WWW class (a WebSockets plug-in is available)
- Support for WebCam and Microphone access
- Hardware cursor support
- Most of the non-basic audio features
- Script debugging
- Any .NET features requiring dynamic code generation
In terms of browser support, this initial version will only support the desktop versions of Firefox and Chrome (other browsers might work for some content, but only these two will be officially supported).
We expect to resolve most of those limitations (except for things which are restrictions imposed by the platform) during the 5.x release cycle, and to be able to support a wider range of browsers as well as the platform matures – at which point we will drop the early-access label and make WebGL a fully supported build platform in Unity.
The Unity Web Player in Unity 5
While WebGL is a very exciting new technology, currently, the Unity Web Player is still the most feature-complete and the most performant solution for targeting the web with Unity, and will stay as a supported platform in Unity 5.x. It may be a very useful strategy to dual-publish your content using both WebGL and the Web Player, in order to get the widest possible reach for your audience.
Longer term, however, we expect that the performance and feature gap between the Web Player and WebGL will become much more narrow, and we expect that browser vendors will make the Web Player obsolete by dropping support for plug-ins, at which point WebGL will become the prime solution for targeting the web with Unity.