Skip to content


Subversion checkout URL

You can clone with
Download ZIP
GameJs is a thin library on top of the HTML canvas element. In addition to the drawing functions it has a set of generally helpful modules for game development.
JavaScript HTML CSS Shell
Failed to load latest commit information.
doc version bump and changelog
examples bump version
src merge
tests fix Audio.stop and add Audio.pause
utils see doc/changelog; lots of major changes
.gitignore see doc/changelog; lots of major changes
.jshintrc see doc/changelog; lots of major changes
.npmignore npm ignore
Gruntfile.js see doc/changelog; lots of major changes Create typo and simplify see doc/changelog; lots of major changes


GameJs is a JavaScript library for writing 2D games or other interactive graphic applications for the HTML Canvas.


Drawing on the screen

  • image loading image files
  • graphics image transformation (rotate, transform,...) and drawing with geometric shapes
  • font rendering text

Mouse and keyboard

  • event Recieve events for user input


  • audio Playback with multiple channels

Game logic




See the examples directory for working examples.


HTML File loads GameJs and sets the main module:

<script src="./public/gamejs.min.js"></script>

The main module javascript/main.js starts the application:

var gamejs = require('gamejs');
gamejs.ready(function() {
    var display = gamejs.display.getSurface();

GameJs as a CommonJs package with browserify

GameJs is a CommonJs package published on NPM. To use it with browserify install the GameJs package in your game's directory:

$ npm install gamejs

And install browserify, if you don't already have it.

$ npm install -g browserify

You can then bundle your application ("main.js") with all its dependencies - including GameJs - like so:

$ browserify ./main.js --out bundled.js

More Help

See the GameJs Website for more help or drop us an email in the Mailing List.

Example application can be found in the examples/ directory.

Development - How to build

GameJs consists of CommonJs modules in ./src/ which we build and jshint with grunt. If you don't already have node and npm, install those. You will also need java on your path for building the distribution file.

Install grunt:

$ npm install -g grunt-cli

In the GameJs folder you cloned, install the dependencies to build using npm:

$ npm install

Build GameJs:

$ grunt

This will create the gamejs-VERSION.js file and a minified gamejs-VERSION.min.js which you can use standalone in the browser, as demonstrated in the examples.

Something went wrong with that request. Please try again.