Check out my
new book!
HTML5 Games book
Book link correction It appears that the link mentioned in the book is incorrect. I've contacted my publisher to get this fixed but until then, you can download the project and sample files at:

If you have bought the book and like it, please consider leaving a (hopefully positive!) review on Amazon. Thanks!
⇓ 27 comments Anonymous

I'm buying it tonight! I hope it's good for semi-beginners. I've got a grasp on Javascript, HTML, and CSS, but that's about it. It looks awesome!

January 8, 2012 at 12:20 PM
Jacob Seidelin

Great! I hope you will like it. I'm sure you'll be fine. Leave an Amazon review if you enjoy the book!

January 8, 2012 at 12:28 PM

I have uploaded your example to my android phone and it does not work. Bought your book on amazon but having a hard time reading it when I can't get your example code to work. Also does not work on android emulator. Would be interested in any ideas.

January 25, 2012 at 10:16 AM

Seems I may have to get phone gap implemented. Sorry. Great book. I'll figure it out. I'm a newbie.

January 25, 2012 at 10:43 AM

I just bought the book on Amazon. I've been developing websites using JS and HTML5 and would like to see what else these browsers can do! :-)

January 27, 2012 at 2:53 PM
Jacob Seidelin

@Chad: Sweet, hope you will enjoy it.

@wvmack: Either put the files on a web server and access them with the mobile browser or experiment with something like Phonegap.

January 27, 2012 at 3:19 PM

Please be aware that Amazon (US) has the ENTIRE book available for preview on their buy might want to let them know.

February 6, 2012 at 11:10 AM
Jacob Seidelin

@robw963: thanks for the heads up!

February 6, 2012 at 12:05 PM

Hi Jacob,
Interesting book. Is there an errata page for this book? I notice a couple of things wrong in the book so i wanted to know if they have been reported?

February 6, 2012 at 11:06 PM

To give u one, on page 213 of the digital edition, you say that the dot product and the multiplication are same. This is wrong. The multiplication operator multiplies each element with the corresponding element of the other vector. The dot product function however multiplies and then sums all of the products to return a scalar. So the given example should be
vec2 v0 = vec2(3.5, 4.0);
vec2 v1 = vec2(2.0, 0.5);
float v0Dotv1 = dot(v0,v1); //returns 9
and if you assign this to a vec2 the result would be
vec2 v2 = dot(v0, v1); //returns vec2(9,9)

Just updating you on this error.

February 6, 2012 at 11:11 PM
Jacob Seidelin

Hmm, I can't find an errata page, actually. I'll have to look into that. Thanks for the heads up!

February 10, 2012 at 1:33 AM

The book looks great and I am considering it for my web games course. Would there be any pedagogical materials available particularly running cases and additional exercises/projects?

Many thanks!

March 10, 2012 at 2:21 PM
Jacob Seidelin

Hi Frank,

I'm working on some stuff now, actually. The materials will include a set of slides for each chapter, covering the concepts and tech introduced in the chapter. There will also be a set of questions for each chapter; mostly simple questions, however - no extra exercises. I'll make an update here on the site when they're available.

March 11, 2012 at 12:45 PM

Thanks for your response, Jacob.

Some exercises related to each chapter would be most helpful, even if no answers are provided. If you have any casual game projects finished or unfinished to share with the adopting instructors, it would be helpful as well.

March 11, 2012 at 1:26 PM
James Butler

Hey Jacob, can you get your publisher, Wiley, to put the book on Safari Books Online?

April 9, 2012 at 8:25 AM
James Butler

Hey Jacob, can you get your publisher, Wiley, to put the book on Safari Books Online?

April 9, 2012 at 8:34 AM

On the page "About the Author", there is an error of spelling "withbackend". ^^

May 8, 2012 at 2:51 AM

Hi Jacob,

I just finished chapter 3 of your book and noticed some errata on page 33. There's a line:

dom.removeClass(screen, "active");

That should have been:

dom.removeClass(activeScreen, "active");

I can prove that's a mistake, because your code samples have the latter version. :) Might want to let your publishers know.


July 13, 2012 at 12:09 PM

Hi Jacob,

I come to chapter13 but couldn't get the code to work. I set up the node server on a Ubuntu box, installed worlize websocket library. But the chat server js cannot be executed on the server. I wonder if you could post the exact procedure to run the example.



July 19, 2012 at 1:46 PM

Jacob, one more thing. I'm a little confused about the opening text on page 243. It talks about some kind of call to scale() with a negative y value, but I see no scale call and no negative number in the code that it's (supposed to be?) addressing. All I see in that code is a drawJewel() call, and without the fourth scale parameter. What am I missing? Thanks,

July 25, 2012 at 9:48 AM
Jacob Seidelin

@Michael: Thanks for the "bug reports". About the text on page 243, it does look like something is wrong there. I think the text references some code that was rewritten and I guess that paragraph was not updated.

@Frank: You'll need to be more specific about your problem.

July 28, 2012 at 6:12 AM

No problem, here's two more. Page 380, listing 12.21 is missing the 'announce ("Game over")' call, but the text beneath it references it as if it's present (there's no ... or anything either). I did guess that it went above the setTimeout function, and the code seems to confirm that.

Page 374, in the if (useActiveGame) block:
gameState.level = gameState.level;
gameState.score = gameState.score;

Your code again confirms that it should be:
gameState.level = activeGame.level;
gameState.score = activeGame.score;

August 1, 2012 at 5:39 PM
Mark Savarese

Having trouble running the chapter 1 code:
On Chrome, in loader.js:
the line Modernizr.load([
shows an error
"Uncaught TypeError: 'Object' #<'Object'> has no method 'load'"

In IE9, the "window.addEventListener" call gets the error:
SCRIPT438: 'Object' doesn't support property or method 'addEventListener'

Any suggestions would be appreciated.

August 6, 2012 at 12:16 PM
Mark Savarese

O.k., my previously mentioned problems were fixed by getting a new download of Modernizr with ALL of the modules they offer.

August 9, 2012 at 8:51 AM
Lior Bar-David

Hi Jacob,

I've just purchase your book, I've started reading and have made my way though the first steps few chapters. The link you've posted to the companion website where codes and book errata are made available does NOT work. I spent the last few hours debugging a script error made on page 33, which you don't know exists till page 56. For anyone who has been there the snippet is as follows:

// Listing 2.8 The Initial Game Module
if(activeScreen) {
dom.removeClass(screen, "active"); // Does not work
dom.removeClass(activeScreen, "active"); // Does work!

Please let us know where or if the companion website is working. Could have saved me a lot of time. Guess that's all for today, but so far, the book is entertaining and moves at a good pace for someone with my level of experience.

January 14, 2013 at 10:31 PM

Hi Jacob,

bought your book and love it! Thanks for your great work.
Right now I run into troubble after the Chrome 24 update.
Obviously something has been changed on the "requestAnimationFrame" and you code is not working anymore. I dont know how to fix it properly and would really appreciate your help and an updated code to work with chrome > v24.

Many thanks,

February 9, 2013 at 9:40 AM
Saglik Birey

Sivilce nasıl geçer | Basen Eritme | Karın Yağları Nasıl Erir işte tüm bunlara link denir.

May 22, 2014 at 4:58 PM
Post a Comment