T L Butler
I pre-ordered this book and had high hopes for it. My hopes were realized. My major desire was to find a good book that I can use in a course
where we will build a game engine using webgl technologies. I would have liked perhaps an additional chapter about webgl, but am quite pleased
with the chapter that is present. Also, the other chapters are informative and helpful, e.g. those describing web sockets, local storage, etc. I
downloaded the software from the publisher website and ran many of the samples. In one case, I had to make a change to the code to accept 0 (zero)
from an xmlhttprequest where the code was only accepting a 200 as a valid return code. Otherwise, things that I tried ran unchanged. At one point I
was confused by a reference to "BC" in the Index. A quick email to the author got an almost immediate reply in which he told me that the acronym
referred to Bonus Content, and that the content would be added to the downloads at the website. He emailed me later when the content was available.
While I will probably provide some websites as supplements to be visited by my students, I am completely satisfied with the book and am currently
planning to use it in my course this summer.
I've now read five titles on HTML5 game development, and while each has their redeeming qualities and high points, Jacob Seidelin's fine work is an absolute must-have. This isn't for the novice or beginning dev looking to add a new arrow to their web programming quill - this is a healthy discussion that tackles specific challenges in creating rich, engaging games for the browser environment. Seidelin greatly emphasizes the web's key advantage of being accessible via browsers on the desktop, smartphones, tablets, and hopefully soon, interactive TVs.
The book doesn't spend time discussing game theory and doesn't go into exhaustive detail with APIs for canvas and multimedia, it states the objective in building a puzzle game and then attacks the problem by building-out each of the components and subsystems. Each chapter is very logically-organized and well-written, neither too short nor not overly verbose. It leverages techniques for multiplayer games like Web Sockets and Web Workers and uses slick techniques to take advantage of local storage for a real console feel. The animation and WebGL chapters are very much appreciated, too.
But the book's finest hour is its hearty chapter dealing with the nuances of mobile games for iOS and Android. This chapter is essential reading, featuring material not found in wide distribution with most titles out there at the moment.
This book is so good, I'd recommend owning it AS A BOOK. With maybe an electronic copy as a backup. :)
Michael J. Greenhut
I recommend typing in all the code yourself, chapter by chapter, with the possible exception of Chapter 11's WebGL - I skipped most of that for the time being; if you're a professional game programmer, you most likely won't be creating your own 3D art. If you're really interested in WebGL (which is still in its infancy and not widely supported), I'd go through the rest of the book first, then tackle that chapter later on.
Don't expect to memorize it all in one go. Use the code as a reference for when you design and develop your own games and make extensive use of JS, CSS and canvas.
There are 3 errors in the code (at least in the print edition) that I've caught and posted about elsewhere, but these errors are fixed in Jacob's code samples. If you're banging your head against the wall and can't figure out what's wrong, compare your version to his.
Overall, you'll definitely want this if you're going to make and publish serious HTML5 games.
Clint V Franklin, aka theraje
(January 29, 2012 -- Beyond this point is my original review of "HTML5 Games: Creating Fun with HTML5, CSS3, and WebGL." Please note that the content below was written prior to completing "Chapter 10: Creating Audio for Games." I will complete this review once I have gone through the rest of the book.)
When I first heard Jacob Seidelin (the mastermind behind the NihiLogic Web site and the famous "HTML5 Canvas Cheat Sheet") was working on a book that was to cover game development using HTML5, I got excited. The current crop of HTML5 game programming books is, to put it bluntly, quite underwhelming. However, I knew if the book Mr. Seidelin was working on is near the caliber of the content on his Web site -- I'd be in for a real treat.
The book, "HTML5 Games: Creating Fun with HTML5, CSS3, and WebGL," meets my expectations.
In Part 1 of the book, you start out by learning a bit about the history of HTML5, and gaining some ideas about how HTML5 can be used for gaming. In Chapter 2, after a primer on the game you will be building (a puzzle game along the lines of "Jewel Quest"), you get to the nitty-gritty and start the HTML/CSS files (along with a few scripts) necessary for the game -- including coverage of Web Fonts.
Part 1 concludes with a chapter on techniques to help your project translate well on mobile devices. This chapter is a gold-mine of tips and tricks that will get you going if you want your games to work well on Apple mobile devices and Android systems.
Then, in "Part 2", you get into the thick of it. Chapter 4 has you build the game-board module, including move-validation (so that one cannot make illegal moves), finding sets-of-three, and clearing/refilling the game board. Chapter 5 covers Web Workers, and does so well -- Mr. Seidelin does a good job of explaining why workers can be helpful, and in what situations they perform (or don't perform) well.
In Chapter 6, you will be introduced to Canvas -- the scriptable graphics element introduced in HTML5. Everything is covered -- shapes/paths, transformation/scaling/rotation, rendering text and images, and real-time rendering (such as shadows, and my personal favorite -- compositing). Chapter 7 extends the game by showing you how to pre-load game assets (and display a progress bar in the meantime), and adding a "fallback" rendering method using CSS sprites and the DOM to control the game view.
Chapter 8 covers input. In addition to mouse and keyboard input, Jacob will explain to you how touch events work on devices with touch screens, and how to interpret them in the game. Chapter 9 covers animating the game, and includes a handy "fallback" script that imitates the functionality of requestAnimationFrame() for browsers without support for the function built-in.
Part 3 (which I have not delved into -- yet) covers the Audio element in Chapter 10, whereas Chapter 11 will guide you through adding WebGL rendering to the game project.
Part 4 covers more of the advanced functions introduced in HTML5, such as Local Storage and WebSockets. The book winds down in Chapter 14 with a list of resources -- everything from external libraries (Box2D, Impact, and Three are covered), to app deployment/sales (for both desktop and mobile devices), and so on.
In summary, this book is pretty much going to take you from 0 to 60 in about 430 pages. Jacob has a really great writing style, in that he explains things very well without being overly verbose -- he says a lot by saying a little. This makes it much easier to grasp even difficult concepts. His use of modules such as Modernizr and Sizzle is, in my opinion, a good thing (jQuery is more popular, but would add a bit of unnecessary bloat, unfortunately). I'm really impressed with the editing -- I have only come across one instance of mangled code, and it is minor. (I had the error marked and planned to point it out; unfortunately, the marker I used fell out of the book...)
"HTML5 Games: Creating Fun with HTML5, CSS3, and WebGL" by Jacob Seidelin gets five well-deserved stars from me.
Amazon Vine レビュー