My Adventures Talking About HTML5 Gaming
I’ve just returned from Toronto where I spoke and did a workshop at the “Future. Innovation. Technology. Creation.” (FITC) conference. This marks my second FITC talk and is easily one of the most successful talks I have ever done! Not only did I get to speak about a topic that I am incredibly passionate about, but I ended up with a packed room for both my talk as well as my workshop. My workshop and talk were on my own experiences with HTML5 game development, and I wanted to share some highlights as well as give people my own insight to the future of HTML5 gaming.
My Workshop
On day one of the conference I did an “Introduction to HTML5 Games with Impact” workshop. It was great to have another sold-out workshop with 30 registered attendees. This marks the fourth workshop I have done on this topic with my one at Microsoft’s New York office being the largest with over 100 registered attendees. I have full- and half-day versions of my workshops now and have ironed out all the kinks.
I split my workshop into two parts, theory and code review, with a break in the middle for lunch. The amount of material I try to cover is truly massive, and it’s next to impossible to do any live coding. I focus on teaching people how to think about game development, go over a real, fully functioning game and analyze why I set things up in specific ways so that when people leave the workshop they have everything they need to go home and continue their learning. I also hand out copies of my book so that people can go through all the code examples at their own pace after the workshop, and I encourage people to play with the supplied code during the workshop to get a feel for how everything works.
I have been thinking about turning this into a two-day workshop so I can have more time to let people experiment and actually make their own game. Since most of the people who take my intro workshop have never built a game before, I even had a person who never even coded before, it’s incredibly difficult to expect them to be able to make a game from scratch without going through all my material in-depth. Making games is not an easy task, which is why I also focus on how to think through an idea to make a game along with answer peoples’ questions about how to build things in Impact.
My Talk
The day after my workshop I got to do an hour-long talk on “My Adventures in HTML5 Gaming.” This is the second time I have done this talk, and for FITC I gutted about 70% of my original slides and redid them from scratch. I was trying to do the entire talk off of my iPad, from slides to code examples, to show off how powerful HTML5 really is, but I just couldn’t pull it off in time so I simply ran the presentation from my laptop. As I have mentioned, I spoke to a packed room and being able to follow someone like Grant Skinner is an honor. Grant is really doing a lot to help push HTML5 forward. I, on the other hand, have narrowed my focus on the platform to a few specific areas, one of which is game development with the Impact framework. I wanted to share some of the material from my talk for those who couldn’t make it out in person to see me present.
I start my talk out with the following quote:
“Success consists of going from failure to failure without loss of enthusiasm.”
- Winston Churchill
I love this quote, and it really highlights my experience trying to make games with HTML5 as well as development in general. I am not a professional game developer, and I wouldn’t argue that I am even a good game designer. I make this very clear in the beginning of my talk. I use game development in a much different way than most people would think. I have always loved making games but ended up doing agency and enterprise development for my day job. For me, games are one of the most challenging programing systems to build, and I use games to teach/push me to be a better developer. Whenever I learn a new language, I always start by making a game first and, when it comes to my day job, I use everything I have learned from games to help me be a better application developer. Game development teaches you how to simplify complex systems, optimization and advanced graphic techniques, all of which can be applied to any type of development, especially enterprise.
I have my talk broken up into five parts:
Part 1
Game Design – In this part of my talk, I go over the basics of game design, what a Game Design Doc (GDD) is and tips on how to organize your own game ideas. I talk about how I use a game journal to keep track of the parts of games I play that I like as well as my daily code warmups. A code warmup is a 30-minute coding exercise I use to learn new techniques, try out new APIs or SDKs and vet out ideas while forcing myself to produce something in half an hour.
Part 2
Why Use Impact? – In this part of my talk I go over why I chose Impact to make HTML5 games. Impact is incredibly powerful and one of the best JavaScript game frameworks out there. Most people dismiss it since there is a $100 licensing fee but, once you pay the fee, you get the source code, example games and a level editor, which is worth the price of admission. I also cover how modules, classes and extensibility work in Impact, which is helpful for those developers coming from ActionScript, Java or C# and looking for more structure in their code.
Part 3
Automate Everything – In this part of my talk I go over how I use automation for my asset pipeline and creating deployment builds of my Impact game. I am a big proponent of building automation scripts for all my projects, especially in Photoshop, so I take some time to go over how I created a sprite sheet generator for Photoshop. I also talk about how I use Ant to build out versions of my game for the Web, iOS, Win 8 and the Chrome Web Store. Impact runs almost anywhere so, by taking advantage of the power of Ant, I am able to simplify generating each build I need for all the platforms I want my game to run on. If you are interested in learning more about how I use Ant with Impact, you should check out the post I wrote on my site called “Automating Impact with Ant.”
Part 4
Games I’ve Built – In this talk I go over the games I have built with Impact. I have four examples and talk about each one, what I learned from them and end with a project I have been working on in my spare time for a crowd-sourced rogue game called Tile Crusader. Here are some highlights of my games:
Alone

Alone was created during my first Ludum Dare competition. The game is built around an Edgar Allan Poe poem and is devoid of any visuals except for the words themselves, allowing the players to imagine the game’s visuals in their own head.
Jetroid

In Jetroid, you land on a planet to look for lifeforms and artifacts while trying to make it back to your ship before you run out of air. As you explore the underground caves, you will find power-ups (air, life and energy), new alien lifeforms and artifacts.
Resident Raver

Resident Raver is Super Crate Box meets Elevator Action. The goal of the game is to survive wave after wave of raver zombies that have taken over the dorms at FSU.
I spend some extra time talking about Resident Raver, since it is the example game I wrote for my book, and talk about how I built on top of the book example with more advanced level designs.

I also talk about some of the more advanced features of Impact’s level editor, such as setting up triggers and connecting entities together to create elevators and spawners.

Tile Crusader – Coming Soon
Tile Crusader is a crowd-sourced, coffee break, rogue-like game that gives anyone the ability to pick up and play a random crusade in just a couple minutes. What makes Tile Crusader unique is that the players can also create their own custom levels to share with others.
Since this is an unfinished game, I talk about how I go from
sketch to design to final HTML page.
My initial sketch:
< 
My first design in Photoshop:

Refining my first design in Photoshop:

My final design for the game built out in HTML:

The other thing that is interesting about this project is that I have connected the Impact level editor to WordPress so that each level of the game is basically a post, so I have created the first RPG blog ever!
Screen shot of Impact’s level editor inside WordPress:

As you can see, I have been incredibly busy making games with Impact, but it’s important to remind people that making good games is not easy. It takes a lot of trial and error when you are starting out, and game design/development is like any skill, you need lots of practice before you become good at it.
Part 5
What I Have Learned – The final part of my talk focuses on four bullet points of what I have learned while doing HTML5 game development. For the most part, they are self explanatory:
- JavaScript can be fun when you are making games.
- HTML5 games are the future.
- This is just the beginning; it’s only going to get better.
- Be a leader, not a follower.
I was never a big fan of JavaScript, but I have grown to enjoy it while making games. When learning new languages it’s important to find a fun project to explore how everything works, and nothing touches all parts of a platform like a game. When it comes to HTML5 games being the future, I illustrate how important the iPad is now. I can run all my games on the iPad from the browser and, while there are still issues with sound and performance, most clients aren’t interested in starting a new Web project unless it will run on the iPad. It’s only a matter of time before HTML5 games mature on the Web and we start to see the same proliferation of the platform as we did with Flash. We are still in the early stages of HTML5 game development, and I remember making games in Flash 4 with AS1 and how primitive that was. That was 13 years ago. In another three to five years HTML5 games will easily be on par with what Flash can do today, especially with accelerated canvas and WebGL.
The final part of my talk is the most important. Be a leader, not a follower. This really goes for anything but is especially important when it comes to HTML5. Those people who are pushing the technology forward, sharing what they learn and talking about it are the ones who will be ahead of the curve. Don’t wait for a platform to mature; there will always be something new and better to replace it. If you don’t have the luxury of pushing technology at your day job then spend your free time sharpening your skills. The way I see it is that if you are going to spend your valuable free time learning something new then have fun with it. For me having fun means making games!
Conclusion
It’s been an amazing experience to be able to travel and talk about something I truly love, which is making games. For me it’s all about following your passions, and people will notice and reward your for inspiring them. I am very grateful to have this opportunity to speak at conferences as part of my job at Roundarch Isobar. A big thanks to Dominic, for creating Impact, and for letting me give out free licenses of Impact at my workshops. It’s incredibly hard to find a balance between doing these workshops, my work responsibilities and being home for my family, but so far it has been working out. And, the best part about learning a new technology via building games is that I also get to sneak in some extra practice time on my game design skills. Please check out Impact, and I will be speaking at the end of May in San Francisco at the Fluent conference if you would like to see my talk in person.
Also if you would like to see my slides I have them hosted on Speaker Deck:
