Wednesday, July 27, 2011

HTML5 revisited

I was recently tasked at work to dig deeper into HTML5 and I'm starting to see some pretty cool stuff coming out of it. There are a buttload of games out there now using this technology.

There are still a few things that, in my opinion, still make it not-quite-ready-for-prime-time. And they are:
  • Sound synchronicity issues. I know that you can use a Java-to-Flash bridge to get the sounds out, but that kind of cuts into the iOS distribution. If anyone happens to know of a consistent way to handle this (without using Flash), I'd love to see it!
  • Code security. Since it's JavaScript, you can pretty much see anyone's code. Obfuscation is helpful, as is encryption, but any truly interested hacker will eventually skip through that stuff. I suppose one could wrap the code loading section in a .php file or use some other method, but it'd be super if there was a compilable option. To be fair, there are solid SWF decompilers out there too, so it's not like Flash is immune to this issue.
  • Browser support. It works great in Chrome and Safari, and it's decent in Firefox too. But what about IE? "What about it?" You say, and then you add, "Get a real browser!" You're preaching to the choir on that. Sadly, IE still owns a huge amount of users that don't know any better, and those users are going to show up to your HTML5 game and find it doesn't work all that well.
  • Mobile support. It seems to be working splendidly on my iPad, but my iPod Touch just sits there wondering what to do with anything canvas-related.
  • Apple. We already said it seems to be working on the iPad, so what's the problem? Well, somebody smart at Apple has to realize at some point that if developers can just slam together games and make them freely available on the web (or offer some other means of monetizing them)...Apple is bound to wonder how they get their cut. Whether they use the "the HTML5 canvas doesn't run fast enough and so we don't want our users having a poor experience" excuse like they did with Flash, or not, is irrelevant. Developers can just use PhoneGap and have their HTML5 projects compiled into native code (which is what Adobe tried to do with CS5 and CS5.5...and it's still really slow). This is cool, but it does take away from the build-once, distribute everywhere concept.
So what makes me think there is still a strong likelihood that HTML5 has a strong future? I took a look at the market and saw a few interesting things.

Zynga, arguably the largest social game company, purchased the Aves engine. This engine is very cool and sports some awesome Isometric graphics. It also has multiplayer support.


Aves Engine

Google is constantly keeping the Chrome browser up to date to support the latest canvas elements, and Android devices (at least my Droid does) seem to play most games pretty darn well...okay, maybe not super fast, but not bad.

Disney purchased Rocket Pack, who created the HTML5 Facebook game "Warimals." It's a nifty little game that shows a number of neat nuances one can do with the canvas.

Warimals

Adobe is putting HTML5 support in their CS products and they event created a product called "Wallaby" ( http://labs.adobe.com/technologies/wallaby/ )that converts Flash to HTML5. Why would Adobe, the owner of Flash, start pushing for stuff that clearly threatens the future of Flash? My guess is because they're smart enough to recognize that it's better to jump on board and create great tools for non-developers (and developers too, let's be honest) that will help them smoothly create for either platform so that they, the aforementioned designers/developers, don't jump ship and look for other projects. Do note that Wallaby only does simple conversions, nothing game-heavy, but who's to say that may not happen eventually? After all, Adobe did work to make a porting-tool for Flash developers to get onto the iOS platform.

Again, I don't think it's 100% there yet, but I am seeing the light now with HTML5. There is a lot of potential with this platform and I, for one, am hopeful that it will grow and grow and grow.

Please feel free to blast me or whatever. I don't mind. :)