The release of Windows 8 comes with a new Internet Explorer: version 10. A new IE is still a rare event; IE9 was released about 18 months ago, whilst both Chrome and Firefox now release updates every six weeks. We've reviewed it from the specific point of view of developing HTML5 games, especially with Construct 2. We're not taking in to account the interface or general browsing experience, just the technology that powers games. We find IE10 is still behind Chrome and Firefox in both performance and features, which means another frustratingly long wait before any hope of further progress from IE.
All benchmarks and comparisons below were run on the following setup: Windows 8 64-bit, Intel Core i5-2500 @ 3.3GHz (quad core), 8 GB RAM, nVidia GeForce GTX 660 (driver v306.97).
We are disappointed to see IE10 still does not support the free Vorbis audio codec, either in Ogg or a WebM container. The web desperately needs a single audio format that works everywhere, and it's ridiculous that we are still having to dual-encode all audio to both AAC (for IE10 and Safari) and Vorbis (for all others). Vorbis is high-quality, robust, proven, free, and straightforward to implement. With such an obviously needed feature, why are Microsoft resisting it?
We've written about this several times before on our blog; the real issue is corporate maneuvering over video codecs. But this exposes how Microsoft and Apple's priorities are overriding what the web really needs.
There is a new codec on the horizon: Opus, which may also be required by the future WebRTC standard. However it's still likely to be years before we can actually get rid of our existing Vorbis/AAC encoders and replace them with Opus. In the mean time, neither Microsoft nor Apple are doing much to help the situation.
As ever, performance is important for several reasons: ensuring a good gameplay experience, increasing the creative possibilities, and extending battery life on mobile. The deciding factor here is IE10 still has no support for WebGL. We reviewed an early preview of IE10 back in March and found Chrome and Firefox trounced it in our rendering throughput test thanks to their WebGL support. Now the final release of IE10 is available, has this changed?
It sure has changed - IE10 has fallen much further behind. With this setup, for reasons we don't quite fully understand, Chrome is outstandingly fast - a whopping 25 times faster than IE10. Firefox is still an impressive 8 times faster than IE10. As WebGL technology is refined and improved, IE is sorely losing out from the performance gains to be had.
Another area we can see IE10's performance falling far behind is particle effects. Here is a particles stress test which creates around 10,000 particles on-screen at once (warning: may get very choppy on older systems). We've specially optimised the Particles object to be faster in the WebGL renderer, thanks to its advanced rendering capabilities. Compare the framerate result in modern browsers:
With ten thousand particles on screen, both Firefox and Chrome can still achieve excellent framerates. IE10 actually fails the test; before it reaches 10,000 particles the time between frames is so long the engine assumes it is paused, and it freezes. By that time it was still only managing two frames per second. This illustrates how WebGL can be vastly more efficient at rendering in Chrome and Firefox, raising the performance bar outrageously further than IE10 can achieve.
Obviously the main omission here is IE10's lack of WebGL support. This doesn't just mean missing out on performance - it also means missing out on Construct 2's awesome shader effects, which are powered by WebGL. This is also obvious in our 'Rain demo' tech test, which uses a whole stack of shaders for advanced visuals. Shader effects allow for all kinds of impressive and creative uses, and they are simply not supported at all on IE10.
IE's slow release schedule disadvantages it in other ways. Retro-style games, with pixellated style graphics, are still popular. We've always supported this 'point sampling' style of upscaling graphics with our WebGL renderer. Recently Chrome and Firefox also added an experimental feature currently being standardised to also allow point sampling in their Canvas 2D renderers (the renderer IE10 supports, and also used when WebGL is unavailable). Unfortunately, due to IE's slow release cycle, this feature has not made it in to IE10. This means retro style games appear blurry if scaled (using linear sampling), and it could be another year or more before IE supports this.
For audio support, Chrome pioneered the Web Audio API, allowing for reliable low-latency polyphonic audio playback. It even works well on mobile - typically where audio support is least reliable - being supported in Safari iOS 6. Although Construct 2 doesn't support it yet, this also adds the scope for advanced audio effects such as reverb and positioned sounds. Mozilla are working on supporting it in Firefox. It's not supported in IE10, with no word from Microsoft on whether they even plan to support it. Admittedly the Web Audio API is still a draft, but vendor-prefixed experimental implementations are an important part of advancing the web - and Microsoft appear unwilling to participate.
Most modern browsers support device orientation and motion in the browser, such as detecting shakes and being able to use tilt to control games. These are not built in to IE10, although Microsoft are working on it. Again, the slow release cycle is frustrating - how long do we have to wait until mobile web games can use these essential features in IE10?
A few other interesting experimental HTML5 features are also absent from IE10. Access to the webcam (in Construct 2, via the User Media object) is supported in Chrome and Opera and coming soon to Firefox, but missing in IE10. Being able to switch to fullscreen (in Construct 2, via the Browser object's 'request fullscreen') is also supported in Chrome, Opera and Firefox; not IE10. Again these are experimental, but there is a stony silence from Microsoft. Other browser makers continue to lead the way with the latest features.
IE10 introduces only a small selection of features for games over IE9: requestAnimationFrame, offline support (AppCache), and touch events (in Microsoft's own custom form), and slightly improved performance over IE9. However other browsers have had these features for a long time now, and IE10's release does very little to catch up. It is still way behind Chrome and Firefox, and appears to be falling even further behind as time goes on: the improvement from IE9 to IE10 is much smaller than the strides Chrome and Firefox have taken in the same time.