Testing your web player content against the latest Unity runtime versions
When we release new versions of Unity, we also update the Unity Web Player to contain the latest Unity runtime. This means that users who newly install the Web Player will run content with the latest version. Likewise, users who encounter content which has been built with a newer version of Unity than their Web Player runtime will automatically be updated to the latest version. This means that over time, more and more users of your content will be running it using the latest version of Unity.
We are trying to do our best to ensure that new versions of the Unity runtime are always compatible with all existing content. To ensure this, we have extensive automated test coverage for most parts of Unity and a manual test process which involves playing many popular games with new runtime versions. Nonetheless, we have not always succeeded in not breaking compatibility with new releases in the past. This is always very unfortunate when it happens, as nothing is worse then finding your existing content no longer work when a new version of Unity comes out.
So, with Unity 4.0, we’ve taken a new approach to releasing Web Player runtimes, to make it easier for you to test your content against upcoming releases, and to make it easier for us to publish new versions of Unity without breaking existing content. The 4.0 Unity Web Plugin contains a new feature called “Release Channels”, which allows it to download different versions of the Unity runtime based on the content being played and on the user-configurable default channel. If you want to try this feature, download and install the latest Unity Web Plugin.
There are currently two release channels available, “Stable” and “Release”. These channels provide downloads for different versions of the Unity runtime – “Stable” contains the Unity 3.5.6 runtime at this point, and “Release” is at 4.0. Once we start getting future versions of Unity into shape, you may also see a “Beta” channel becoming available. The Unity web plugin will install and use different release channels side by side. When playing back content, the default behavior is to use the channel containing the lowest version which is new enough to play back that content, and then to download (if needed) that channel and play back the content using that version. This means that with the current setup as described above, any 4.0 content will be played back with Unity 4.0 (from the Release channel), and any 3.x content will be played back with Unity 3.5.6 (from the Stable channel).
Once we feel confident that Unity 4.0 is not causing any problems with existing content, we’ll bump it from the Release to the Stable channel, thus playing back any existing content with at least 4.0. This allows us to address Web Player backwards compatibility problems in new releases before we require everyone to update to it for all existing content. That way, we hope to cause fewer problems with web player updates in the future.
You can change the default behavior of the Plugin, however. If you right click on some Unity content (if your content has disabled right clicking, use some content which allows it, like this), you will get a popup menu. We’ve added a new “Release Channel” submenu to this menu (see screenshot). In this submenu, you can choose your default release channel and switch between using development and non-development player runtime builds.
The default release channel chosen here will set the minium release channel to run your game on. By default it is the Stable channel. But if you switch it to Release, every content you play will be played with the Release channel (since there are currently no channels above Release). This lets you test your games with the latest released Unity runtime (currently 4.0). It is advisable that you make use of this feature when testing your content, so that you are always testing against the latest version, and thus have a chance to submit bug reports if a new version breaks your content – before we update the Stable channel to the new version, and by doing so break your content for all the users.
Note: When you are confused which runtime version is actually being used to play your content, you can always check the player log, which contains the Unity version in the first line.
The development player menu item lets you switch to using development player runtimes. Each release channel provides both, development and non-development runtime versions. In previous versions of the Unity plugin, you needed to use the editor installer to get the development Web Player. Now the installation is exactly the same – and you can switch between development and non-development versions of the runtime at any time using the plugin context menu. The development runtime has the following differences to non-development runtimes:
- Support for the profiler, and profiler-related APIs.
- Support for the debugger.
- Starting with the 4.0 runtime, the development runtime will pop up an error console when you throw exceptions or trigger any errors in the Unity runtime.