Tech Blog

Exciting Times for Unity Web GL

I recently posted a Unity WebGL forum post as I was tasked with testing and optimizing loadtimes and reducing build sizes for Unity Web GL to test out the current improvements to it.

Post:

Empty WebGL scene loading times, there is absolutely nothing running in the scene, just wanted to describe how I got fast loading times.

Try It For Yourself

Desktop

  • Safari: ~3s
  • Firefox: ~1s
  • Chrome 69: ~2s (faster due to new JS Engine)
  • Chrome 68: ~6s

Mobile

Had some issues with reloading the webpage though, could be missing a package

  • Chrome: ~5-6
  • Safari: ~5-6

Project Setup:

  • Build Size: 3mb
  • 2018.2.7f1
  • Data Cache Enabled
  • Enable Exceptions: None
  • .Net 2.0 Subset
  • .Net 3.5 Equivilent
  • Gzip
  • WebAssembly

Unity Packages:

  • Asset Bundle
  • Audio
  • Physics
  • UI
  • UI Elements
  • Unity Web Request
  • Unity Web Request Audio
  • Unity Web Request Asset Bundle
  • Unity Web Request Texture
  • Unity Web Request WWW
  • Video (possibly required to run on mobile)

The rest of the Unity Packages have been disabled for optimization using Package Manager Further optimizations could be done but that involves work on the build pipeline.

Unity recently released a post about it here

All that you have to know is that Unity Web GL load times have been significantly reduced, and that further improvements are being made.

A followup comment was made:

First time load time depends on build size and download speed so this time we decided to focus on second load. However, Wasm streaming instantiation allows the browser to compile while downloading, again something that has never been possible with asm.js... Soon there will be more news on this. <

Meaning that the engine will be started while downloading the experience! It is a really exciting time for the rapid omprovement and viability for Web GL expecially since the ability to have managed C# threads (multi-threading) in the experience soon. Look out web here comes WebGL!

dan flan