Pro HTML5 Games

Pro HTML5 Games - Aditya Ravi ShankarI started writing games in 1993 when I was first introduced to the world of computers and programming.

At the time, I had no access to the internet or online tutorials and my first game was written in GW-BASIC by painstakingly copying lines from a book that I found in the local library.

My father further encouraged me by buying me my first computer, but told me that I was only allowed to play games on it if I had written them myself.

Of course, this meant I had to start writing games just to show him that I could.

I have come a long way since then.

Command and Conquer HTML5 ScreenshotOne of my more recent game projects that has received a lot of attention is single-handedly recreating Command and Conquer entirely in HTML5.

While generating a lot of traffic and discussion in online media, this project proved beyond any doubt that HTML5 is ready for the next generation of games.

You can play Command and Conquer – HTML5 over here.

AdityaRaviShankar.com - Traffic Screen ShotThe fact that I wrote the game alone and in less than four weeks sparked a lot of excitement and interest among other developers who had lots of questions for me.

While I wanted to help everyone, I wasn’t really sure about the best way to go about it. I had already started sharing little nuggets of information in my HTML5 game programming articles.

Around the same time, I was approached by Apress who had heard about my game and seen my articles and wanted to know if I was interested in writing a book on HTML5 game programming for them. I said yes, and this is how Pro HTML5 Games was born.

In writing Pro HTML5 Games, I wanted to create the resource that I wish someone had given me when I was starting out writing games. Pro HTML5 Games takes readers through the process of building two complete games – a Box2D Engine based Angry Birds clone and a realtime strategy (RTS) game with multiplayer support.

With dedicated chapters on HTML5 Basics, the Box2D Engine, Pathfinding and Steering, Sounds Effects and Music, Combat and Effective Enemy AI, and Multiplayer using Node.JS with WebSockets, I still think you will get a lot from this book no matter how much game programming experience you have.

I cover all the essentials needed to build these games from scratch so readers can follow along and learn to design large, professional games entirely on their own. I point to resources for free artwork and sound, and reference material for further learning so you can continue learning and go on to build your own games. My goal with this book was to prove that you don’t need to be a large game company to build amazing looking games.

The first game in the book, Froot Wars, is a Box2D Engine based game similar to the very popular Angry Birds.

In the process of creating this game, we look at building splash screens, game menus, levels and an asset loader to load sounds and images. We then have a detailed look at the Box2DWeb engine and how to use the engine to manage the game physics. Finally, we integrate the physics engine into our game, add sound and background music to build a complete game. You can play Froot Wars here.

The second game in the book, Last Colony, is an RTS game with both a single player campaign mode as well as a multiplayer mode. I’d like to specifically thank Daniel Cook (lostgarden.com), who graciously shared the artwork from one of his earlier game projects for use in this book.

The single player campaign includes an economy with buildings, vehicles, aircraft along with an over arching storyline told using scripted events. We look at adding intelligent unit movement using pathfinding and steering, and combat using a combination of scripted events, and finite state machines.

We then look at adding multiplayer using the WebSocket API and Node.JS. We look at everything from the basics of WebSocket and Node.JS, to details such as compensating for network latency while keeping the player games synchronized.

You can play Last Colony here.
At the end of this book, I hope that you will walk away with the confidence and the resources to start making some amazing games of your own in HTML5.

I highly recommend this book to anyone wanting to make “real” games in HTML5. I have at least thumbed through basically every HTML5 game development book available today, and none can offer the skills this one does. This book will likely be your bible as you work through your first major project. – Review By T. Crouch on Amazon.com

This book is now available for purchase at Amazon (Pro HTML5 Games on Amazon), Barnes & Nobles (Pro HTML5 Games on Barnes & Noble) as well as the Apress Site (Pro HTML5 Games on Apress).

If you know anyone who you think will find this book useful, please do let them know about this book. You can even gift them this book to help them get started with game programming.

Aditya has written a much needed book. Even if your Javascript is not very strong, the book holds your hand through two complete games so there is no reason to not learn as you go. The author’s line by line explanation of the programs, progressive addition of complex features and sharing the motivation behind every particular approach make the reader feel like she is actually part of the game development process rather than just reading a book.
- Review By Somesh Chakrabarti on Amazon.com

I would be grateful if you could share this page on your favorite social website, Facebook-Like this page, or Tweet about it so that more people hear about this book.

If you have questions about this book or any feedback, I would love to hear from you. You can ask any questions in the Pro HTML5 Games Forum or leave feedback in a comment below.

If you have already purchased the book and enjoyed it, I would be grateful if you took the time to leave me a review on Amazon (Pro HTML5 Games on Amazon)

 

Note:

One important consideration I would like to add for all my readers, is my choice not to include  workflow techniques like Source Code Versioning Control and Unit Testing. This was an intentional choice. While Source Control, and Testing are essential parts of development, I wanted to stream line this book to focus on just creating games without overwhelming the reader or allowing them to lose their enthusiasm.

In this book, I wanted to take people with beginner-intermediate level JS skills through a journey where they got excited about creating games instead of getting bogged down or overwhelmed by the details, and to realize that they too could create “professional looking” and structured games of their own.

I consciously removed things that I felt the user should learn elsewhere in more detail, at a later stage. I didn’t want the reader to see any cryptic looking commands without thoroughly building up and explaining the basics behind them.

Once you have gone through this book, and feel you are ready to start building big games of your own, I would strongly recommend taking the time to integrate these into your everyday workflow.