Game jamming with Akihabara

by Darren Torpey on January 22nd, 2011

With the 2011 Global Game Jam coming up next weekend, I wanted to take some time to help those who would like to try their hand at HTML5 game development at this year’s GGJ. In this article, I will explain why Akihabara is a good candidate for game jamming and how to set yourself up in the days before the jam (or at the very least right at the beginning of the jam) to be an effective jammer with Akihabara.

Akihabara is a set of libraries, tools and presets designed to help you create pixelated indie-style 8/16-bit era games in Javascript that runs in your browser without any plugins, making use of a small small small subset of the HTML5 features, commonly available among most modern browsers (read: not IE). Akihabara can make it much easier to create classic-style videogames like platformers, Zelda-style games, and more. All you need to make games with it is a modern browser (Firefox or Chrome recommended) and a plain text editor of any kind, preferably with syntax highlighting for Javascript. The simplicity of Akihabara development and focus on small games and 2D art make it a good candidate for game jamming.

A lot of the advice I’ll offer in this guide is generally relevant to having a happy, fun, and effective game jam as a programmer regardless of whether you use Akihabara, but I will tailor this guide to working with Akihabara. This guide will be geared toward helping those who plan to act as programmers in their jam team, but I will try to not assume too much advanced programming understanding.

What to learn

Here are some things that will be useful to learn or learn more about to prepare for jamming with Akihabara.


Javascript is a very unique and powerful language, but like all languages it’s quirky and it helps to learn not only basic usage of Javascript but also some of its odder, but most important features (like how functions are used as constructors).

For a somewhat dry but thorough introduction to the basic elements  of Javascript, check out Mozilla’s Javascript Guide. I’m linking to the first page in the guide that actually talks about the language elements you’ll need to know about. Read that page, which covers values, variables, and literals, and then click “Next” at the bottom to continue reading through the guide.

Once you start actually using Javascript for your own projects, you may find Mozilla’s Javascript Reference useful for looking up basic information about using Javascript.


Akihabara’s graphical capabilities are all based upon the CANVAS element, as introduced in the HTML5 spec.

If you’d like to learn more about HTML5 tech, including audio, check out the excellent website HTML5 Rocks. It’s a completely free site that provides 100% developer-oriented tutorials, samples, and even a “code playground” to help you learn pragmatic HTML5.

Javascript Text Editor

While any text editor will suffice to program Javascript, it will help you a lot to have a text editor that works well for editing multiple files within a common project directory and that provides good syntax highlighting for Javascript. It does not need to be anything fancy: just an effective text editor.

If you’re programming on a Mac, I cannot recommend TextMate strongly enough. Unlike all the other tools I recommend in this guide, it is not free, but it is well worth the cost.


Obviously, if you plan to use Akihabara at a jam, it pays to learn it ahead of time.

Start by going to the Akihabara website and reading up on the framework there. In particular, check out the demos Kesiev (the author) provides to give you a taste of what Akihabara can do without too much trouble, right out of the box.

After that, I recommend going through the tutorials that Darius Kazemi & I wrote on this site, which you can find here. They walk you step-by-step through creating a simple game from scratch in Akihabara.

Setting up a great environment

Here are some tips for setting up a great collaborative environment to reduce friction in development and let your team always focus on the work at hand and getting as much fun/awesome into your game as possible.

Git (source control)

First of all, let me be very clear: USE SOURCE CONTROL. Full stop. It’s not hard to setup or use and I’ve seen several projects fail because major amounts of code were lost when no source control was in use. USE SOURCE CONTROL.

Now that that’s been said, I strongly recommend you use Git. Git is a simple, flexible, and (once you get to know it) straightforward source control system that is especially well-suited for loosely-structured collaborations like game jams. One huge advantage of using Git is that you can set up a repository in minutes, for free, on GitHub makes it easy to share your source code with others after the jam as well as see changes that each team member has made in a nice visual format.


If you’re working with any artists, writers, or sound engineers, it will help to have an easy way for them to share their files with you. Dropbox is an excellent solution for this (thoroughly field-tested at recent Boston Game Jams, I assure you!), and you and your team members can make a free account there in minutes. It’s easy to learn how to share directories, as well.

I’ve found that the zen of file sharing with Dropbox comes from the fact that team members can drop their files in there and can also update them whenever they want without any need for direct technical intervention. I used to trade around files via USB thumbdrives, but that required both team members to interrupt what they were doing… every time! With Dropbox it’s as simple as saying “hey, new file is dropped [or updated]”.

What’s more, you could share your entire project directory in your Dropbox space, thus allowing your artists, writers, and sound engineers to add and update content that can then trivially be added to source control by the programmers.

Good luck!

Good luck on your game. I hope this guide helps you hit the ground running and keep your process fun and creative. Have a great Global Game Jam!

Leave a Comment

Previous post:

Next post: