This post is more than 2 years old.
I've said on more than one occasion that it was gaming that initially got me into programming. Initially just cheating at games (I hacked my Bard's Tale save and I modified the source code in Lemonade Stand), but what I really wanted to do was create my own games. That dream pretty much went away when I left the computer science program in college and discovered the web, but I've toyed with the idea of building my own web-based games from time to time. A while back, I was lucky enough to get a copy of "Build an HTML5 Game" by Karl Bunyan.
As you can imagine, the book walks you through the process of building a game using web standards. The game, a simple bubble shooter you can play here, is built iteratively throughout the chapters. You start building each piece one at a time, gradually adding more features and logic to the game. It felt like a good pace to me and I only really struggled during some of the mathematical parts. (I'm a bit ashamed to say that, actually. I was pretty good at math growing up but since I haven't really used complex math since my early college career it's all wasted away.)
Finally, the book wraps up by talking a bit about more advanced topics, like performance tuning, WebGL and deployment issues. This is a good section, but pretty slim. I think in the next edition this could be expanded significantly. The book's definitely packed with information now, but making this last portion even larger could make a great book even better.
If you have any interest at all in learning how to build games with web standards, then I definitely recommend checking it out. You can find out more about the book, including seeing the table of contents, at the book's web site: http://buildanhtml5game.com/
p.s. As a slightly off topic aside, this was my first introduction to Modernizr. While I had certainly heard of it before, I had never actually used it. The game you develop in the book makes heavy use of it and I'm happy I had a chance to actually use it. I didn't know it had a loader feature with fallback support. That was pretty darn neat.