Development and Maintenance is Cumbersome and Costly
Without the mature tools that developers have to create cross-platform native mobile games (such as Flash and Unity), developing HTML5 games becomes much more time consuming and costly.
Another big problem is browser dependence. Each web browser interprets the HTML5 spec slightly differently, this means that a finished game is unlikely to behave exactly the same across different devices and web browser programs. This can lead to the need for ugly hacks to achieve consistency and increases the already considerably number of testing permutations in order to ensure the game works across different device hardware and software combinations.
Being browser dependent also means that game developers are at the mercy of web browser software developers. Future updates and changes to how a browser interprets the HTML5 standard can be detrimental to how that game works, without any changes to the game itself. At worst, a game could completely break in future, without the game developer doing anything. This makes periodic retesting and possible modifications essential.
Technical Limitations
Native apps allow games to squeeze every bit of performance out of mobile devices. As mobile device specs continue to move forward, this becomes less of an issue. However, the bigger problem is inherent issues ingrained in HTML5 that prevent game developers achieving basic, necessary functionality on mobile devices.
Sound support is the best (but not only) example of this. Even when fully sound support is implemented on a particular mobile device, sounds can only be played on touch events. This is nothing short of disastrous for game development. In practice, this means that background music can't start until the player presses a button (e.g. "Play Game") and also means in any kind of shooting game the act of firing can produce a sound, but any resulting impact/explosion must be silent, because that occurs outside of user interaction. This is all a best case scenario that doesn't even take into account the fact that many older mobile devices don't even have proper sound support in the browser. Many only have one channel audio available. This means that only one sound can be playing at any given time. In order to have background music and sound effects, the background music must completely stop while a sound is played, then restart afterwards.
Native mobile apps have none of these limitations, so HTML5 mobile web games will ALWAYS be a far inferior end product to the native app equivalent.
Sales and Monetisation
In an ideal world, most people that play games would love to be able to do it without parting with their hard earned cash. But the reality is, even fairly small scale casual video games cost substantial money to make. That money needs to be recouped, along with hopefully turning at least a modest profit, to finance future games. Otherwise a developer will quickly go out of business.
With native apps, game developers get a variety of monetisation options, including selling their games for a modest fee in mobile app stores or using the "freemium" business model, where they offer the game for free, but take payment for optional extras.
HTML5 offers no reliable way to make money from web games. In most cases, this makes it a non-starter for anything but experimental projects. Without a reliable way to make back costs, never mind turn a profit, the idea of developing HTML5 games is dead in the water for most developers.
No Way to Protect Code and Assets
I know many are touting the benefits of the "Open Web", but this is huge problem for professional game developers. Native apps allow developers to package their valuable code and assets into a neat package that's difficult to extract and steal their hard work from. HTML5 on the other hand leaves all code and assets bare, for anyone with a web browser to access and read.
Once again game development is costly, time consuming and takes a considerable amount of technical knowhow and skill to do well. Using HTML5 invites anyone and everyone to steal a developer's work and potentially use it, or profit from it themselves. Having personally spent years building up a code library and writing custom game engines from scratch, as well as all the hard work, time and money that goes into producing assets for a specific game, I'd hate to have that stolen in a second. This is the real danger with HTML5 web games.
Another problem is video games almost always include assets that the developer doesn't own, but licenses under strict conditions, for use within a specific game only. Music being a great example. Packaging these assets within a native app keeps them away from prying eyes. Using HTML5 effectively puts the developer in the position of freely distributing these assets. This either requires developers to enter into much more costly licensing agreements with copyright holders, or face possible legal action if they ignore this fact.
HTML5 Mobile Web Games Are NOT The Future On Mobile
In instances where directly monetising a game isn't required, HTML5 web games may be the right choice (for example, commissioned branded games). But even then, the technical limitations over native mobile apps mean the finished product is likely to be an over simplified, clunky mess.
In the case of traditional casual video games, HTML5 web games won't be a viable option for most developers because there is essentially far more risk and far less potential reward over native apps.
Simon Walklate is a professional video game developer who designs games for web browsers as well as developing native mobile games using Flash technology. To find out more about custom mobile game design services please read here.