This is a collection of chapters on an important topic. HTML5 is supposed to be the solution to every problem we have, including creating platform-independent games. However, using HTML5 and JavaScript to create a game is difficult if only because there are now multiple ways to attack the problem.

The first chapter attempts to put everything into context by providing an overview of the state of the art. Unfortunately it's a bit brief and really only serves to introduce the terminology and outline what exists.

Chatper 2 is also fairly dispensable if you know anything about programming games at this level. It is a semi-philosophical waffle on game design and ends up using processing.js to create a game. This isn't a bad way to create a game using JavaScript, but it probably isn't the first technology that should be considered in a book trying to get you up to speed on the whole HTML5 game creation problem. Writing in Processing is something that really should be introduced later in the order of things.

Chatper 3 is about multiplatform games using CSS and JavaScript. At the end it considers the different approaches possible - pure DOM versus Canvas. Of course there are more possibilities than this - SVG, WebGL and so on, but these are ignored.

Next we have a chapter on JavaScript techniques in general. Most of the chapter takes the form of a big example. There isn't anything particularly deep or new in the example but it is a nice object-oriented program.

Chatper 5 deals with 3D CSS. This gives an example of essentially DOM-based animation using CSS to make it look more impressive. This is interesting but mainly as a reminder that this approach is available.

Chapter 6 is where the book really became interesting for me - particle systems. This is a subject that could stretch the capabilities of JavaScript. It is a fairly straightforward introduction to 2D mechanics and implementing multiple sprites. The single example is a firework display and the estimate of 1000 particles before optimization is a useful piece of data with up to 100,000 after optimization. The way that the optimization is performed is also interesting.

Chapter 7 is a straight introduction to WebGL. It starts out from the very basics of 3D and gets you to a simple game. This is followed up by a chapter on creating a CycleBlob game. This is interesting, even if it lacks a lot of the practical detail, because it demonstrates a different way of thinking about rendering 3D shapes to create effects.

Chapter 9 moves off the topic of 3D to look at how websockets can be used to implement a multiplayer game.

The final chapter looks at the choice of technologies in detail. SVG v Canvas and HTML5 audio, websockets and so on. This really isn't definitive in any sense of the word. It certainly doesn't say "use Canvas" or "WebGL is great"; it simply does a point-by-point comparison of pros and cons. It also fails to tackle the issue that WebGL isn't supported by Microsoft or any of the IE browsers. In fact the whole question of browser compatibility, a major problem for HTML5 games, is hardly mentioned.

Overall this is a book with about three or four good chapters and the rest aren't really suitable even for the beginner. They most only get to the level of what exists and the choice of putting processing.js so early in the book throws a big doubt about its overall structure. It would have been better to start off with what most programmers consider the foundations of HTML5 games - DOM-based graphics - then cover Canvas-based graphics perhaps with a mention of the SVG alternative followed by a section on WebGL with big warnings about Microsoft not supporting it. Finally a look at some of the frameworks that exist for game creation. The only real problem here is choosing which of the many is the best one to use. If the book had some guidance on this then it would have done a service.

Overall the book is a mixed set of readings that you might find useful or you might not depending on how much you already know and what you are hoping to do. There isn't much in the book that makes it essential reading and there are better books on writing games in JavaScript - try Supercharged JavaScript Graphics for example.