8 Reasons Why HTML5 Won’t Replace Flash For Games
November 28, 2012
There’s been a lot of talk about Flash being history over the last few years, particularly from companies with their own agenda, such as Apple. HTML5 is the future we’re told. What we’re not told is HTML5 is actually a massive step back in terms of the way we deliver rich multimedia content, such as games, via the web. Here’s why:
1) HTML5 is terribly slow on many mobile devices
The main argument that HTML5 is the future revolves around the fact that Flash isn’t supported on most mobile devices. So with HTML5 you can build one web based application or game and run it on any device, desktop or mobile.
In reality HTML5 (particularly for games and multimedia applications) is so slow on many mobile devices that it’s practically unusable anyway. What good is having the web version of your game available to mobile users if a big percentage are only getting a couple of frames per second out of their devices?
The fact is, if you want decent performance on mobile you need to go with native apps anyway.
2) HTML5 isn’t even complete yet
The HTML5 standard is still in development and yet to be finalised (latest estimates, put that in around 2 years time). So at this point developing for it is literally like using and relying on a piece of software that is not finished. Flash is a mature, stable platform at this point, not some unfinished idea.
3) Browser incompatibilities mean it may not render consistently
HTML5 is made up of new versions of these same standards. If the browser companies still can’t get it right with standards that are complete and have been in use for well over 10 years, what hope have they got for HTML5, which still isn’t finalised?
Flash on the other hand is not reliant on the browser interpreting code and layout. The Flash player plugin renders content consistently across browsers, so developers only have to worry about developing for one common platform, leaving them to concentrate on the stuff that matters.
4) The install base needs to catch up
There are still a large percentage of internet users that are using outdated versions of browsers that don’t even support HTML5. Until such a time that even the slowest to catch on have updated to a browser version that’s capable of displaying HTML5 content, you’re going to alienate a large number of internet users who can’t see your content.
The Flash plugin on the other hand can be (and usually is) installed on browser versions released long before HTML5 started to be implemented. So Flash content can be viewed on a much greater percentage of the desktop web browsers that are currently in use.
5) New browser versions could break your code
Browsers update frequently and as we’ve seen in the past, they often move the goal posts in terms of how they display content. Not only do you have different browsers to contend with, you have different versions of those browsers.
Once you’ve finally managed to make sure your code works as expected, that’s not necessarily the end of the story. If for example Microsoft changes the way they interpret part of the HTML5 standard, or when the finalised version of HTML5 is released , they change the browser to conform, your HTML5 code may stop working as expected. This will mean introducing a constant testing/revision cycle to make sure HTML5 content continues to work with the very latest browsers.
Flash doesn’t have this problem. The Flash plugin has always been backwards compatible. So if your game/app was created with an older version of Flash, you can be sure any updates to the Flash player plugin won’t cause anything unexpected or break it.
6) HTML5 will increase development time and costs
Because of increased testing and debugging required to achieve good cross browser and device compatibility, development time and therefore costs will increase dramatically. Developers will have to go back to the days of spending half a day trying to figure out why certain functionality doesn’t work in Firefox, or something isn’t displaying correctly in Internet Explorer, instead of things just working.
If you’re commissioning a developer, expect HTML5 development costs to exceed the Flash equivalent and also expect to need expensive revisions down the line in order to maintain cross-browser compatibility.
7) Limited exposure for games
Unlike Flash, it’s impossible to package all code and assets into a single file for distribution to and hosting on third party websites. This is fundamental to how the casual online games industry works and how most online games get their exposure and earn revenue for the developers, or in the case of Advergames, exposure for the brands and products they’re promoting.
8) It’s more difficult to prevent code from being stolen
As a game developer it’s extremely important to be able to protect your code from prying eyes, or even worse, from theft. Games can be extremely complex pieces of code, often built from a code library that’s taken years to put together. No developer wants someone to just come along, take their hard work and repurpose (and potentially profit from) it.
With Flash, all code and assets are packaged together within a single swf file. Plus advanced obfuscation software, such as secureSWF can be used to make it much harder to decompile and get at precious code.
Don’t buy into the HTML5 hype
Certainly for games and intensive multimedia apps, I don’t see Flash going anywhere. It’s still by a mile the best choice for these sorts of web based applications. It works great, it’s more cost effective to develop for Flash and there’s no return to the cross-browser headaches of the past, which Flash eliminated years ago.
The fact is, HTML5 isn’t the ultimate cross-platform solution it’s being made out to be and probably never will be. Plus, even the very latest mobile devices are terribly underpowered compared with even a low spec, relatively old desktop machine. So if your game or app absolutely must run on mobile platforms, the only way to guarantee functionality, visual display and to squeeze every last bit of performance out of the device is to go native.