Programming - - By Alex Walker

HTML5 Quake to Shake Up Flash

With all the hubbub surrounding the arrival of Apple’s new, consciously Flash™-less consumer good (you know the one), there has been a fresh flurry of discussion on that old chestnut — the relative merits of Flash vs HTML.

While much of the talk has been boringly polarized (Flash is God/Flash kills baby seals and/or kittens) the sensible middle ground view reads something like this:

Flash is far too often used to make simple, useful things less simple and less useful. HOWEVER … when it comes to the more complex graphics and interactions common in games and applications, HTML — 5 or otherwise — has its in-built limits. Flash has its place there.

That certainly would have been my take, but Googlites Ray Cromwell, Stefan Haustein and Joel Webber have just released a jaw-dropping ’20 percent project’ that makes you question whether HTML5 does have natural limitations.

Quake 2 in the browser

Incredibly, using mostly Google Web Toolkit (GWT), they’ve converted a Java port of id Software’s revered Quake 2 (Jake2) to run natively in Chrome and Safari – no plug-ins, extensions or third party tricks.

If GWT means nothing you, this is Google’s open source framework that allows them to develop stuff like Wave, Maps and GMail in Java, but deploy it in your browser in HTML, JavaScript and CSS.

The GWTQuake project uses:

  • The Canvas API as a foundation
  • HTML5 audio elements for sound
  • HTML5’s local storage for saving games and scores
  • HTML5 Web Sockets
  • WebGL– a JavaScript 3D graphics processing engine

Now I have to admit, with a publishing date of April 1st, I did wonder whether this was just an elaborate geek joke. Apparently not. You need some tech wherewithal to get this humming, but it’s no prank.

At the moment GWT doesn’t work on Firefox, but it sounds like this is chiefly due to Firefox’s comparatively slow JavaScript engine rather than any inherent lack of feature support. Currently there’s no word on whether GWT Quake runs on Opera, and IE is a conversation not worth starting until we at least get a proper version of IE9.

Obviously this is a pretty raw, geeky, proof-of-concept type project, but it certainly changes my perception of what is possible with HTML5.

Bring it on.