The following blog post, unless otherwise noted, was written by a member of Gamasutras community.

The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

(Note: I published this a couple months ago on 8bitrocket.com, but after a conversation I had earlier this week I realized that it still true today, so I'm reprinting it here).



More than two years ago we (at 8bitrocket.com) started taking a close look at HTML5. To us, the HTML5 features like canvas, audio, and video were the most compelling part of the HTML5 spec because they were poised to be a true replacements for Flash. Flash had been our tool of choice for over a decade because it worked....most of the time. For the corporate web, 'entertainment, media, gaming web sites, it was second to none. Sure, it had issues: security flaws, proprietary API walls, performance hang-ups, etc. but it was also a simple platform. Write your AS3, marry it to assets created by designers in .fla, export .swf, done. A simple process for a powerful technology.

All was right with the world.

Up until last November, it is our firm belief that most Flash Web developers were holding out for Flash support on mobile iOS browsers. "Apple will come around" we thought, "Flash will run in the iPad 3 and the iPhone 5" we fantasized. Not because we thought Flash was perfect, or because we did not like the idea of HTML5, but because, for more than decade we had tasted what a real "standard" might be like. We've heard about "web standards" for years, and they are a beautiful, poetic, amazing concept that never quite came to fruition because OS, browser and platform companies had their own ideas on what was standard and what was not. However, with Flash, we truly had ate from the "write once, run nearly everywhere" table we had been hearing about for so many years.

Then last October, Abobe gave up the mobile web, and all hell broke loose.

Web standard guys applauded it, and Flash guys continued the hand wringing operations they started back in 2010 when Apple announced the iPad would not have Flash support. Not too long after, It seemed, all at once, the rush was on for HTML5. Flash developers knew they needed to move on, and web standards people had their last stumbling block removed. The plug-in-less HTML Renaissance had begun.

But then something weird happened. Even though, when we said the phrase "HTML5" we were talking about canvas, video, ausio, local storage, geolocation, and new mark-up standards, we noticed that when customers asked for HTML5, they had no idea what was part of the actual HTML5 spec. When we talked to other game developers about HTML5, some had never used any specific HTML5 features. They were using traditional web technologies like HTML, JavaScript, DOM, CSS. In fact, in many cases the only true "HTML5" they were incorporating was the audio tag, and most of the time, it wasn't doing what they wanted it to do. While features like the HTML5 Canvas are growing in use as mobile browsers get more powerful, it turned out that HTML5 meant many things to many developers, and that did not always include the actual features of HTML5 once outlined by the W3C.

So then what *is* HTML5? The W3C HTML5 FAQ says this about HTML5:

HTML5 is an open platform developed under royalty free licensing terms. People use the term HTML5 in two ways:

to refer to a set of technologies that together form the future Open Web Platform . These technologies includeHTML5 specification, CSS3, SVG, MathML, Geolocation, XmlHttpRequest, Context 2D, Web Fonts (WOFF) and others. The boundary of this set of technologies is informal and changes over time. to refer to the HTML5 specification, which is, of course, also part of the Open Web Platform.



What we have learned through conversations and project work in the past few months is that, to the common person who does not follow this closely, (or more likely, the common customer who needs something done right away) it's all HTML5,and therefore they are really referring to the "Open Web Platform". In this way, HTML5 is just as much and "idea" as it is a strict specification, and that "idea" of the "Open Web Platform" has caught-on like wildfire, even if the borders that define what is actually included in "HTML5" have never been fuzzier. However, the one thing we do know is that at the kickoff party for the "Open Web Platform", the one technology that was definitely left of the invite list was Adobe Flash.

But who was invited to this "Open Web Platform Party?" Well of course HTML5, CSS and DOM plus SVG, Web Workers, Web Storage, Geolocation, and Web Sockets. Then experimental stuff like the Web Audio API, and Media Capture...and that just scratches the surface at the W3C. We also need to add JavaScript and WebGL, WebKit, which are run by other organizations but are just as important. Then we have Modernizr and the king of JavaScript APIs, JQuery. JQuery is so popular, in fact, there appear to be entire religions formed around it. JQuery adds JQuery UI and JQuery Mobile . In fact, Some people have told us that we will never need any thing else, if we just decide use the JQuery suite. Really? That would leave out all these other technologies we keep hearing about like MooTools, ExtJS, Sencha Touch,Ripple, JQMobi, Jo JoshFire, Inuit, LungoJS and the Dojo toolkit. Those seem pretty cool too and they all claim to solve the same HTML5 cross-platform issues. But then, so do DOM/CSS tools and templates like HTML5Boilerplate, Initializr,Bootstrap, Crafty.DOM, LESS, 960, Blueprint, 52 Framework, Gravity, Gridless, Skeleton, G5 and many others. At the same time, if you want to make, "HTML5 games" there are a whole different set of technologies to consider like Construct 2, CreateJS (now with more Adobe), Game Maker, KineticJS, Processing.js, ImpactJS, LimeJS, Jaws, Box2SJS, CasualJS, Cocos2D, EntityJS, GameJS, GMP, Isogenic, PlayN, PropulsionJS, Mibbu, Sprite.js and many more plus WebGL libraries likeSpiderGL, GLGE, Copperlicht andSceneJS. Then there are JavaScript media libraries like VideoJS,MediaElementJS, Kaltura HTML5 Media Library, Jukebox, Buzz audio library, and Popcorn.js, Plus other tools like RGraph for graphing, Mashi for timeline animation, BakerFramework for ebooks or Pixtastic for real-time image filters. And we can't forget the HTML5 app hosting and development platforms like AppMobi, Spaceport.io, FunSockets,Turbulenz and Pixie Engine or the fact that we can package up all this stuff and make them into mobile apps with phoneGap, or Appcelerator, or Apache Cordova. And if you want to take your JavaScript all the way to the server-side, well then node.js and Kinvey are just for you! A lot of these technologies claim to be "only" way to go, so which do we choose?

And then we need to mention the platforms and devices. Just a few years ago, we all wrote apps for Firefox, I.E. and maybe Safari, but only if you were a glutton for punishment. Now we have to consider multiple versions of Internet Explorer, Chrome, Safari, Mobile Safari, Firefox, Opera, Silk, the 30 or so combinations of iOS devices and operating systems, and 1000's of Android device and OS combinations. To further complicate matters the general consensus, at least among customers, is that web apps made with "HTML5 open Web Platform" should run perfectly across all of them. But they don't. In fact some of the snazzier HTML5 features such as audio and video don't work consistently on mobile browsers. It's the reason many HTML5 games targeted at mobile game portals have done away with sound altogether.

In the past couple months, an angsty zeitgeist has appeared to form like a cloud around the "HTML5 Open Web Platform". It's the feeling of technology burnout for developers, while at the same time they try to manage the expectations of customers who are clamoring for a one-size-fits-all solution to their web and mobile development needs. Our own cartoon on the subject was a minor hit for us:

And the feeling might be spreading. One of my favorite posts in the past few months, was the hilarious parody technology site HTML9ResponsiveBoilerStrapJS. It captures the feeling of HTML5 technology burnout perfectly and scored a sizable hit via twitter:

"H9RBS.js (v0.0001) is a flexible, dependency-free, lightweight, device-agnostic, modular, baked-in, component framework MVC library shoelacestrap to help you kickstart your responsive CSS-based app architecture backbone kitchensink tweetybirds."

To us, the buzzwords are flying left and right, and everyone seems to be trying to solve similar problems by creating multiple new technologies and tools. On one side, this is a very cool development. It's an evolution and revolution, and we are happy to be part of this mini-tech bubble that has moved-in to fill the gulf left by Adobe when they abandoned the mobile web. On the other had, the sheer amount of "new" around HTML5, be it ways to describe code, templates, technologies and platforms is dizzyingly overwhelming. The situation is confusing at best, and confounding at the worst. Furthermore, most " tech bubbles" are inevitably followed by a shake-out where dozens of also-rans fall by the way side (Remember when Flash put DHTML, Silverlight, Applets, JavaFX, VRML, Realplayer and Shockwave off the map?). For developers, this means being very careful to choose technologies that we believe will be around for the long-haul, or we run the risk of investing our limited time and resources into something we will never use again.

All we really know right now, is that when people ask for "HTML5", they don't always have a specific technology in mind and they probably have not read the W3C spec of what is actually in "HTML5". They might know a bit about things they perceive to be HTML5 like CSS3 or Webkit, Canvas or video, but that's not really important. What's important is the translation of the question. When they ask for "HTML5", they are probably saying they want a single web site or app that runs on all devices, mobile or otherwise and that then translates into this:

"Not Flash"

And to developers who were once comfortable using Flash as a cross platform silver bullet, that could mean wading through a whole lot of specs, tools, and APIs of the "Open Web Platform" before the proper solution is found for the project.

So, when you call us now and ask for a game, site, app, etc. in HTML5, and there is slight pause in the conversation before we give you an answer, it's not because we are bored, disinterested or distracted, it's because we have a few extra things to consider these days before we can formulate a proper response. If you give us a few minutes to catch our breath, we promise, the end result will be awesome.



We appreciate your patience.