Home > Store > Web Services > XML
Learning HTML5 Game Programming: A Hands-on Guide to Building Online Games Using Canvas, SVG, and WebGL
- By James L. Williams
- Published Sep 25, 2011 by Addison-Wesley Professional. Part of the Learning series.
- Copyright 2012
- Dimensions: 7" x 9"
- Pages: 256
- Edition: 1st
- Book
- ISBN-10: 0-321-76736-5
- ISBN-13: 978-0-321-76736-3
Register your product to gain access to bonus material or receive a coupon.
Product Author Bios
James L. Williams is an experienced developer and speaker who has given presentations worldwide on Java, user interfaces, and Google Wave. He is the creator of SwingXBuilder, a DSL for creating user interfaces using SwingX components, and a co-despot of Griffon, a framework to make rich applications using Groovy.
Get Started Fast with HTML5 Online Game Programming!
HTML5 will transform web and mobile gaming. As new browsers rapidly adopt it, HTML5 will do everything “legacy” technologies such as Flash and Silverlight have done—and much more. In Learning HTML5 Game Programming, pioneering developer James L. Williams gives you all the knowledge, code, and insights you’ll need to get started fast!
Williams combines detailed explanations of HTML5’s key innovations with examples, including two case study applications that address the entire development process. He guides you through setting up a state-of-the-art HTML5 development environment; making the most of HTML5’s canvas tag, SVG vector graphics, and WebGL 3D; and targeting diverse mobile and social platforms. It’s all here: from the essentials of online game design to the nitty-gritty details of performance optimization.
About the Website
All code samples and answers to chapter exercises are available for download at www.informit.com/title/9780321767363 and on Github at https://github.com/jwill/html5-game-book.
Coverage includes
· Understanding the HTML5 innovations that make it possible to create amazingly rich games
· Setting up a state-of-the-art open source HTML5 game development environment
· Using JavaScript to drive sophisticated interactions between users and games
· Building basic games fast, with the prototype-based Simple Game Framework (SGF)
· Generating movement and gameplay with the canvas tag and surface
· Creating games with SVG vector graphics using the RaphaëlJS Javascript library
· Using Three.js to build powerful WebGL 3D games with far less complexity
· Developing games without JavaScript, using Google Web Toolkit (GWT) or CoffeeScript
· Building a complete multiplayer game server using Node.js and WebSockets
· Planning and choosing tools for mobile game development with HTML5
· Optimizing game performance with offline cache, minification, and other techniques
Learning HTML5 Game Programming is the fastest route to success with HTML5 game development—whether you’re a long-time game developer or a web/mobile programmer building games for the first time.
Downloads
Download free online files here
Related Articles
"The Best Programming Advice I Ever Got" with James Williams
Creating a Simple Photo Editor with Chrome
Creating Cross-Platform Java and JavaScript Games with Amino
Creating Cross-Platform Java and JavaScript Games with Amino, Part 2
Creating Games with Google+ Hangouts
Creating Google Chrome Extensions
|
17 of 18 people found the following review helpful
This review is from: Learning HTML5 Game Programming: A Hands-on Guide to Building Online Games Using Canvas, SVG, and WebGL (Paperback)
Since April 2011, I've been exploring developing games utlizing HTML5 out of interest.My resource from this time on has been what others have posted on the Internet. I was excited to hear about the book "Learning HTML5 Game Programming" and even more excited to read it. Below is my brief analysis of every chapter, but overall I found this book to be quite value to anyone interested in learning HTML5 programming but haven't really explored it, they should really get this book. I am not a professional HTML5 game developer, but as a hobbyiest I found this quite beneficial. It is well written, well organized, and covers what I feel are very important topics. Compared to what books that are currently out there, this is definitley one of best books to get on this subject to my knowledge. Chapter 1, "Introducting HTML5", give a nice history of Web technologies and a nice background of the technologies through the years. While it's not... Read more
5 of 5 people found the following review helpful
By Kitt (Brooklyn, NY United States) - See all my reviews
This review is from: Learning HTML5 Game Programming: A Hands-on Guide to Building Online Games Using Canvas, SVG, and WebGL (Paperback)
I'm currently up to chapter 4 and my conclusion is that this book is either not very helpful for learning or that it is aimed at a very specialized audience that is not me. It may be for people who are already very experienced with web development and therefore assumes that you know a lot about other related subjects already. Many things are just skimmed over without any explanation of what they are. It's also possible that it's more appropriate for people accustomed to creating web games using Flash who just need to know the specific comparable HTML5 tools. Either way, if you're starting from scratch this book isn't going to be particularly comprehensible.This book tells you ABOUT its topic but doesn't teach you how to do it. If you're happy just downloading the accompanying files and reading them along with the book as a learning technique then you'll like this book. If you want more hands-on how and why this is not that book. In addition, the book isn't set... Read more
6 of 7 people found the following review helpful
By
This review is from: Learning HTML5 Game Programming: A Hands-on Guide to Building Online Games Using Canvas, SVG, and WebGL (Paperback)
At first a little disappointed by this book, as I found it maybe too much scattered (covering too much topics), I finally found it very useful as it actually allowed me to expand my field of knowledge on each of the subjects. For sure this book do not provide any ancient secret knowledge to become a guru, but it will however show you the magic, and how to use it with some real examples. Which at the end is more than enough to give you a first overview of the various possibilities around HTML5.So would I recommend this book ? If you are an advanced JS/HTML5 developer looking to push your knowledge further : maybe not. But if you don't have a clue about how to start with HTML5, this book will come very handy in giving you the right kickstart to get you up and running in no times. |
› See all 10 customer reviews...
Online Sample Chapter
Introducing HTML5 for Building Online Games
Sample Pages
Download the sample pages (includes Chapter 1 and Index)
Table of Contents
Chapter 1 Introducing HTML5 1
Beyond Basic HTML 1
JavaScript 1
AJAX 2
Bridging the Divide 2
Google Gears 3
Chrome Frame 3
Getting Things Done with WebSockets and Web Workers 4
WebSockets 4
Web Workers 4
Application Cache 5
Database API 6
WebSQL API 6
IndexedDB API 7
Web Storage 7
Geolocation 8
Getting Users’ Attention with Notifications 10
Requesting Permission to Display Notifications 11
Creating Notifications 11
Interacting with Notifications 12
Media Elements 13
Controlling Media 13
Handling Unsupported Formats 14
HTML5 Drawing APIs 15
Canvas 15
SVG 16
WebGL 16
Conveying Information with Microdata 16
Chapter 2 Setting Up Your Development Environment 19
Development Tools 19
Installing Java 19
Installing the Eclipse IDE and Google Plugin 20
Google Web Toolkit 22
Web Server Tools and Options 23
Google App Engine 23
Opera Unite 23
Node.js and RingoJS 23
Browser Tools 24
Inside the Chrome Developer Tools 24
Chrome Extensions 25
Safari Developer Tools 26
Firebug 26
HTML5 Tools 27
ProcessingJS 27
Inkscape 27
SVG-edit 27
Raphaël 28
3D Modeling Tools 29
Blender 29
Chapter 3 Learning JavaScript 31
What Is JavaScript? 31
JavaScript’s Basic Types 31
Understanding Arithmetic Operators 32
Understanding JavaScript Functions 32
Functions as First-class Objects 33
Comparison Operators 34
Conditional Loops and Statements 35
Controlling Program Flow with Loops 36
Delayed Execution with setTimeout and setInterval 38
Creating Complex Objects with Inheritance and Polymorphism 38
Making Inheritance Easier with the Prototype Library 39
Learning JQuery 41
Manipulating the DOM with Selectors 42
JQuery Events 43
AJAX with JQuery 43
Cross-Site Scripting 44
JSON: The Other JavaScript Format 44
JavaScript Outside of the Browser 45
Mobile Platforms 45
JavaScript as an Intermediary Language 45
JavaScript on the Desktop 46
Server-Side JavaScript 48
Chapter 4 How Games Work 51
Designing a Game 51
Writing a Basic Design Document 51
Deciding on a Game Genre 52
The Game Loop 53
Getting Input from the User 53
Representing Game Objects with Advanced Data Structures 54
Making Unique Lists of Data with Sets 54
Creating Object Graphs with Linked Lists 56
Understanding the APIs in Simple Game Framework 57
Core API 57
Components API 58
Resources API and Networking APIs 58
Building Pong with the Simple Game Framework 59
Setting Up the Application 59
Drawing the Game Pieces 61
Making Worlds Collide with Collision Detection and Response 63
Understanding Newton’s Three Laws 63
Making the Ball Move 64
Advanced Collision Detection and Particle Systems with Asteroids 66
Creating Competitive Opponents with Artificial Intelligence 67
Adding AI to Pong 68
Advanced Computer AI with Tic-Tac-Toe 68
Chapter 5 Creating Games with the Canvas Tag 71
Getting Started with the Canvas 71
Drawing Your First Paths 72
Drawing Game Sprites for Tic-Tac-Toe 73
Drawing Objects on the Canvas with Transformations 75
Ordering Your Transformations 76
Saving and Restoring the Canvas Drawing State 77
Using Images with the Canvas 78
Serving Images with Data URLs 78
Serving Images with Spritesheets 78
Drawing Images on the Canvas 78
Animating Objects with Trident.js 79
Creating Timelines 80
Animating with Keyframes 81
Creating Nonlinear Timelines with Easing 81
Animating Game Objects with Spritesheets 83
Simulating 3D in 2D Space 84
Perspective Projection 84
Parallaxing 85
Creating a Parallax Effect with JavaScript 85
Creating Copy Me 87
Drawing Our Game Objects 87
Making the Game Tones 88
Playing MIDI Files in the Browser 89
Playing Multiple Sounds at Once 90
Playing Sounds Sequentially 91
Drawing Our Game Text 91
Styling Text with CSS Fonts 92
Chapter 6 Creating Games with SVG and RaphaëlJS 95
Introduction to SVG 95
First Steps with RaphaëlJS 97
Setting Up Our Development Environment 97
Drawing the Game Board 98
Drawing Game Text 99
Custom Fonts 100
Specifying Color 103
Loading Game Assets 104
Converting SVG Files to Bitmap Images 105
Creating Our Game Classes 105
Shuffling Cards 107
Drawing and Animating Cards 107
Creating Advanced Animations 110
Paths 110
moveto and lineto 110
curveto 111
Exporting Paths from an SVG File 112
Animating Along Paths 113
Extending Raphaël with Plugins 113
Adding Functions 113
SVG Filters 113
Speed Considerations 114
Chapter 7 Creating Games with WebGL and Three.js 117
Moving to Three Dimensions 118
Giving Your Objects Some Swagger with Materials and Lighting 119
Understanding Lighting 120
Using Materials and Shaders 120
Creating Your First Three.js Scene 122
Setting Up the View 123
Viewing the World 128
Loading 3D Models with Three.js 129
Programming Shaders and Textures 131
Using Textures 134
Creating a Game with Three.js 136
Simulating the Real World with Game Physics 137
Revisiting Particle Systems 140
Creating Scenes 141
Selecting Objects in a Scene 142
Animating Models 142
Sourcing 3D Models 143
Benchmarking Your Games 144
Checking Frame Rate with Stats.js 144
Using the WebGL Inspector 145
Chapter 8 Creating Games Without JavaScript 147
Google Web Toolkit 147
Understanding GWT Widgets and Layout 148
Exposing JavaScript Libraries to GWT with JSNI 149
RaphaëlGWT 150
Adding Sound with gwt-html5-media 151
Accessing the Drawing APIs with GWT 151
CoffeeScript 153
Installing CoffeeScript 153
Compiling CoffeeScript Files 153
A Quick Guide to CoffeeScript 154
Basics 154
Functions and Invocation 154
Aliases, Conditionals, and Loops 156
Enhanced for Loop and Maps 156
Classes and Inheritance 157
Alternate Technologies 158
Cappuccino 158
Pyjamas 158
Chapter 9 Building a Multiplayer Game Server 161
Introduction to Node.js 161
Extending Node with the Node Package Manager 162
Managing Multiple Node Versions 162
Making Web Apps Simpler with ExpressJS 163
Serving Requests with URL Routing 163
Managing Sessions 165
Understanding the ExpressJS Application Structure 165
Templating HTML with CoffeeKup 166
Persisting Data with Caching 168
Managing Client/Server Communication 169
Communicating with Socket.IO 169
Setting Up a Simple Socket.IO Application with Express 170
Making Web Sockets Simpler with NowJS 171
Debugging Node Applications 172
Creating a Game Server 173
Making the Game Lobby 173
Creating Game Rooms with NowJS Groups 174
Managing Game Participants and Moving Between Game Rooms 175
Managing Game Play 175
Chapter 10 Developing Mobile Games 179
Choosing a Mobile Platform 179
iOS 179
Android 180
WebOS 180
Windows Phone 7 180
Flick, Tap, and Swipe: A Quick Guide to Mobile Gestures 181
Deciding Between an Application and a Website 181
Storing Data on Mobile Devices 183
Relaxing in Your Lawnchair: An Easier Way to Store Data 183
Getting Started with Lawnchair 184
Client-Side Scripting Simplified with JQuery and Zepto 185
Using JQuery Variants 185
Using Zepto.js 187
Architecting Your Applications with JoApp 187
Choosing an Application Framework 188
PhoneGap 188
Diving into the PhoneGap APIs 189
Appcelerator Titanium 191
Diving into the Appcelerator Titanium APIs 191
Packaging Android Applications with Titanium and PhoneGap 191
Packaging an Application with Titanium 193
Packaging an Application with PhoneGap 195
Chapter 11 Publishing Your Games 199
Optimizing Your Game’s Assets 199
Minification with Google Closure Compiler 199
Running Applications Offline with Application Cache 201
Hosting Your Own Server 203
Deploying Applications on Hosted Node.js Services 204
Publishing Applications on the Chrome Web Store 205
Describing Your Application’s Metadata 206
Deploying a Hosted Application 207
Deploying a Packaged Application 208
Testing Your Applications Locally 208
Uploading Your Application to the Chrome Web Store 208
Configuring Your Application 210
Deciding Between Packaged and Hosted Chrome Apps 212
Publishing Applications with TapJS 212
Creating a TapJS Application 213
Packaging an Application for TapJS 215
Publishing a TapJS Application to Facebook 215
Publishing Games with Kongregate 217
Publishing HTML5 Applications to the Desktop 217
Index 219
Errata

This book includes free shipping!
This book includes free shipping!
eBook (Watermarked)
$23.99
$19.19
Includes EPUB, MOBI, and PDF
About eBook Formats
This eBook includes the following formats, accessible from your Account page after purchase:
EPUBThe open industry format known for its reflowable content and usability on supported mobile devices.
MOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.
PDFThe popular standard, used most often with the free Adobe® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.
- Request an Instructor or Media review copy.
- Corporate, Academic, and Employee Purchases
- International Buying Options
Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.

