Workshop proposal: creating multiplayer games with HTML5 and JavaScript

As a result of my work with multiplayer HTML5 gaming, I propose a series of workshops that teach people how to make these games themselves. I need your feedback to make them happen, so make sure to read the full proposal and leave a comment.

As a result of my work with multiplayer HTML5 gaming, I propose a series of workshops that teach people how to make these games themselves. I need your feedback to make them happen, so make sure to read the full proposal and leave a comment.

A little background information

Over the last two years or so I've been creating games in some shape or form. I originally started with augmented reality in ActionScript, but this quickly moved into creating browser-based games with HTML5 and JavaScript as a direct result of my work with canvas. My most recent work has been with a multiplayer space shooter called Rawkets, created using nothing but the open Web technologies mentioned previously, as well as others like Node and MongoDB (apart from audio, but I have a reason for that).

My proposal

I've learnt a lot over the course of these projects and it's now time to give something back. To do this I propose a series of multi-day workshops in which I will teach a small group of people how to create a multiplayer game from start to finish using HTML5 and JavaScript. Simples!

The purpose of the workshops will be to teach you the fundamental concepts and issues surrounding game development, specifically with multiplayer. You'll learn everything needed to create a multiplayer game; from the initial set up, right up to the final spit and polish required to get everything working nicely. Yes, you'll end the workshop with a fully functional multiplayer game, but the point is more about learning the how and why behind what's going on, not to leave with a bunch of code that you don't understand. It's a tall order to achieve in just a few days, but one which I think that can be pulled off with anyone eager to learn.

Putting on a workshop like this is also a good excuse to show off the epic 2 metre tall Rawkets banner and to sell copious amounts of my book on canvas (that's a joke, but seriously, buy it).


Eventually these workshops will happen in a variety of cities across the UK, but for the first one I will keep things simple and put it on in the beautiful sea-side resort of Bournemouth. Who doesn't want to develop a multiplayer game in close proximity to a 9-mile beach?

If they prove popular, and all goes well, there is also scope for taking the workshops outside of the UK. Let's not get ahead of ourselves though.


Each workshop will be limited to a small number of attendees, probably in the range of 10 to 15 people. The reason behind this is that I want to offer one-to-one support for any issues and complications that arise during the event and there's only one of me, surprisingly.

Taking a leaf from Seb Lee-Delisle's amazing Creative JavaScript workshops, these smaller groups tend to work well for group bonding and communication. It's also easier for organising food and other logistical issues, like a venue.

Who should come?

I'm not going to lie, this isn't something for programming novices. As much as I'd love to, I won't have the time to teach the fundamentals of JavaScript programming alongside the game development. I will be assuming that you know about things like data types and concepts like object oriented programming. I will also assume that you at least know about HTML5, but you don't need to have used it.

On the flip-side, you won't need to be a super nerd either (damn those super nerds!). The workshops will be structured to suit both hardcore developers, as well as Web developers and general programmers who are interested in creating games. In short, the workshops are for anyone who knows how to code.


I'm in a fortunate position where I don't need to make a profit from these workshops (I love my job). However, that doesn't mean that they are free to actually organise and put on, so I'm currently in negotiations with Mozilla (my employers) and potential sponsors about negating the cost of the event so that I can offer it to you for free, or as cheap as possible.

However, an issue with the free model is that there are no ramifications to attendees for taking a place on the workshop (which are severely limited) and than cancelling at the last minute. I need to come up with a way that works for me, so I can be sure about who is actually going to turn up, and that works for you, the attendees, so that you don't miss out on a place. This may require me to charge a small fee to guarantee you a place on the workshop, unless another solution can be devised. I'm all ears!

Workshop structure

Here is a rough outline of some of the things that you can expect to learn during the workshop. This list is by no means definitive and it's highly likely to change as I plan further.

  • The core elements needed to create a game
  • The fundamentals of multiplayer game development
  • Common issues with multiplayer gaming and the subsequent solutions
    • How cheating can happen
    • Preventing cheating with the authoritative server model
    • Optimising network communication to reduce bandwidth
    • Dealing with latency through client-side prediction and interpolation
  • Using Node to perform game logic on the server
  • Using Socket.IO for WebSocket network communication between client and server
  • Using a server-side storage system to persistently store game data (probably MongoDB)
  • Visualising the game world on the client with HTML5 canvas
  • Implementing sound with HTML5 audio (if looping is fixed in time, otherwise with Flash)

This is where you come in

So now it's down to you guys. What do you think about this proposal? Do you want to see a workshop like this happening? If it has to cost, how much would be too much to charge? What cities would you want to see the workshop put on at?

Please use the comments below to give me your feedback and questions, or email me.

Got something to say?

Just want to share this article?