A Review of “Introducing HTML5 Game Development” by Jesse Freeman; O’Reilly Media

HTML5 has come a long way in the last few years. It became pretty obvious early on in that it could be used for game development, but just like any other language that’s not explicitly intended for game programming, getting started making games was a real chore. While I love the idea of writing a game engine from scratch, most of the time I want to get down to the business of the game itself. And on top of all that, a lot of the games made with HTML5 that could be found as examples looked… well, not fantastic, although there were a few standouts.

So, I was super excited to see Introducing HTML5 Game Development was available from O’Reilly. Anybody who knows me or who reads this blog knows that I love technical books in general and O’Reilly’s books in particular. It seems almost like a subject has ‘arrived’ when they publish a book on it.

And Jesse Freeman certainly delivers. The book clocks in a terse 122 pages (although I’m using the electronic version for purposes of this review) and covers the process of putting a surprisingly complex platform game together using HTML5, starting with the planning stage, going through the whole process of programming the game, and concluding with the distribution of the game (including publishing it as a native iOS game even!). He spends quite a bit of time on the planning stage, which is something that’s usually not covered in such a short book; I think that Mr. Freeman understands one of the big constraints on game creation– actually completing the game. I’ve certainly suffered from this issue myself, and I know it’s something that the average game designer/programmer certainly struggles with, so the attention given to this subject is welcome and very helpful. It makes me think that it might be great to see him write a larger volume someday on the subject of ‘getting it done’.

The reader is stepped through the process of making a platform game called ‘Resident Raver’, and along with all of the standard steps like player movement, enemies, sprite animation, scoring, HUDs, and sound, all the supplemental processes like creating sprite sheets are covered as well. Using Photoshop to create sprite sheets is discussed in some detail, which I found really helpful. Although I often use Photoshop, I typically use specialty software for creating sprites, so this is one area where I really learned something. Finally, the challenges of cross-browser compatibility and issues inherent in mobile browsers were addressed. Even though HTML5 is much more compatible with mobile devices than Flash, there are still issues that complicate matters. Mr. Freeman discusses these issues and ways to address them. Overall, I found the content in the book to be well organized, informative, helpful, and written in a compelling voice. Mr. Freeman is a great writer who conveys his knowledge really well. He should consider writing more on this subject.

There is one issue I can’t avoid mentioning, and that’s the use in this book of Impact, a Javascript game framework for HTML5. Impact appears to be pretty great; it takes a lot of the ground-up engine writing work out of writing a game in HTML5, it adds in some otherwise useful things like pseudo-classes and includes, and it allows the programmer to ‘bake’ the file to a smaller, more distribution-friendly format. It addresses that longstanding issue of game design: once you take the time to essentially write your own engine for a game, you’ve often run out of steam for actually making the game you started out to make. In a perfect world, a game programmer should be able to get right down to what’s really important– the actual game that people will play.  The only problem is that Impact will set you back $99. On this subject my opinion’s a little mixed. I understand that part of being a developer is investing some money in the tools that are needed– I use a lot of resources that I had to pay for, and I don’t complain about them, for the most part. I know also that the talented folks who put Impact together (and they are clearly talented– I’ve yet to find another framework that is so nice straight out of the box, for pay or otherwise). While we all love to use open source, it’s not always an option. And as far as open source, comprehensive, well written HTML5 game engines go, a worthy competitor had not, as of the writing of this review, emerged.

So while my initial impulse was to reduce the score I gave this book because it requires a relatively costly tool, I instead decided to score it on its own merits. I would never, for instance, score Essential Actionscript 3.0 poorly because it requires a $600 tool. I’ll just mention that I think that for beginners– exactly those for whom this book is largely intended, $99 might be balked at. Also, it might not have hurt to mention in the title that it’s all about Impact rather than HTML5 in general.  But as far as I’m concerned, Impact and this reasonably priced, well-written book are well worth it, nit-picks aside.