Skip to content
An adventure game in 9x9 pixels, including a clone of TinyHack
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



NanoHack is an HTML5 and javascript port and extension of the TinyHack game
( originally written in Flash by Rob
Beschizza of BoingBoing.

TinyHack is a minimalist RPG adventure game where the entire game interface is
a 9x9 array of pixels.  The player has to fight monsters, find gold and
special items, and eventually overcome the perils of the last dungeon.
NanoHack takes the TinyHack concept, and turns it into a javascript library
for implementing similar games.  NanoHack extends TinyHack to allow multiple
maps, and adventures written in NanoHack can easily extend existing objects
to produce new types of terrain, items or game behaviour.

The code consists of a fairly generic and extensible JavaScript library
for building TinyHack-like games, together with a simple web-page which
uses the nanohack.js library to create a TinyHack clone.


Currently this is known to work on Chrome on OS X and seems to work on Safari.
It will probably work on Chrome on any platform.  The audio files are .mp3
format, so sound probably won't work on Firefox.

My primary language for writing software is Python, and it probably shows in
the way that I write javascipt.

I deliberately wrote this without using any of the major javascript
frameworks, but in the future this may need to change to provide better
cross-browser support (in particular, a good audio library would be a
worthwhile dependency, it seems).


This work is licensed under a Creative Commons
Attribution-NonCommercial-ShareAlike 3.0 Unported License.

NanoHack and the javascript port of TinyHack were written by Corran Webster.

The files in the image and sound directories are all by Rob Beschizza.

The original TinyHack was written by Rob Beschizza.

The original TinyHack source code is available at
You can’t perform that action at this time.