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.
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.