Showing posts from March, 2011

Who are the HTML5 Game Developers?

An HTML5 game is classified as a game that:
runs in a modern web browseris written in JavaScriptuses Canvas or WebGL for graphicsWhile there is a large and growing collection of HTML5 Game Engines and Frameworks, who out there has actually written a non-trivial, professional HTML5 game?  Here's my quick list: Lost Decade Games made OnslaughtImpact made Biolab DisasterGopherwood Studios made EntanglementEA made PoppitPagoda Software made WordicoGrant Skinner made Pirates Love DaisiesMassively Fun made Word SquaredHakim El Hattab made SinuousBocoup builds some serious JavaScript apps and demos, but haven't produced a straight up game (yet)Subsonic Games made SonarWho did I miss?  What are some of your favorite HTML5 Game Developers?

Measuring HTML5 Browser FPS, or, You're Not Measuring What You Think You're Measuring

Update: Ilmari Heikkinen has written a helpful Browser Rendering Loop blog entry.

Everything you know is a lie.

OK, not everything.  But everything you know about measuring the FPS for your HTML5 game is probably wrong.  Turns out that measuring the frame rate, or FPS, for an HTML5 game written in Canvas or WebGL is surprisingly difficult. will tell you that trying to measure framerate by counting how often your setTimeout runs is not accurate. The browser can run your Timeout callback multiple times between screen paints.  All you're probably doing is measuring how often your game loop runs, which is not FPS. Turns out Mozilla has a window.mozPaintCount available, which should provide an accurate FPS. However, this only works for Mozilla. There's an open issue for a clone of window.mozPaintCount for Chrome, but doesn't look like there's much traction there. A manual way to check for hardware accelerate…

HTML5 Game Talk at Google IO

Good news!  I'll be presenting on HTML5 Games at Google I/O, to be held May 10-11, 2011 in San Francisco.  I know it was very hard to get a ticket to Google I/O this year, but if you were lucky enough to grab a ticket I'm really looking forward to meeting you and talking HTML5 for Games.

The title for the talk is "Super Browser 2 Turbo HD Remix: Introduction to HTML5 Game Development".  I'm working on both the game and the agenda for the talk, but my basic premise will be "it's easier than you think" and I'll be aiming at the beginner/intermediate JavaScript and web programmer.  You'll come away with the confidence and tips to build your first HTML5 game, along with perspective for distribution and monetization.  Plus, we'll look at some fun games! :)

My initial agenda looks a little something like this:
Why games are different than traditional web programmingGame loopInput detectionAnimationCoordinate systemAsset loadingCollision detecti…

HTML5 Storage and Offline Presentation

I was lucky enough to be able to present HTML5 Storage and Offline Technologies at the Bocoup Loft in Boston on March 10th, 2011.  Bocoup is a really cool web development agency, and I appreciate their offer to host and facilitate the talk.

Many thanks go out to Mr. Eric Bidelman for putting together the awesome slides from which I poached and remixed.  And by remixed I mean more or less stole.

HTML5 enables offline applications and local data storage and caching.  This leads to quicker start up times, faster processing and less network and server utilization (always a good thing).  With offline and storage, we have many technologies at our disposal:

App Cache for cached static assets like images, CSS, and JavaScriptLocal Storage, basically replacing cookiesWebSQL DB for full relational SQLIndexed DB for a very JavaScript-y object storage and retrieval systemFile System APIs for sandboxes, virtualized filesystems accessible from your web appIf you're confused and just getting start…

HTML5 Audio Needs Your Help

HTML5 is gaining traction as a gaming platform, but there's still one problem before we can achieve the vision of a great native-to-the-browser gaming experience.  HTML5 audio, specifically the <audio> tag and its implementations across browsers, is more or less broken for games.

For details on the HTML5 audio problem, learn about The State of HTML5 Audio (hint: not good) and the troubles with Multiple Channels for HTML5 audio.  Dominic, the author of those posts, knows what he's talking about: he created Impact, the JavaScript game engine.

We need your help!  Star these issues, add comments, and even better add test cases.  Tell Chrome that you care about HTML5 audio and these issues are important!…