Library for writing 2D games or other interactive graphics applications for the HTML Canvas.
Pull request Compare This branch is 453 commits behind GameJs:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


GameJs is a JavaScript library for writing 2D games or other interactive graphic applications for the HTML Canvas. Its API is modeled after the successful PyGame library.

  • Runs in modern browsers
  • Mature, well documented API with a decade of patterns and documentation
  • Philosophy: Ease of use > Completeness
  • Write your games in CommonJs

Gamejs is early in development. The API will change though it will converge to a sensible translation of PyGame concepts to JavaScript.


GameJs is a Ringo application. Once you have Ringo installed the other components are easy to get with Ringo's package managment.

Details on how to install Ringo:

Once you have Ringo get the necessary dependancies with ringo-admin:

ringo-admin install hns/ringo-modulr
ringo-admin install hns/stick

Git clone GameJs to a convinient location:

cd ~
git clone git://

Finally symlink GameJs into Ringo's packages directory:

ln -s ~/gamejs /usr/share/ringojs/packages/

(Do not ringo-admin install gamejs. That would not work.)

Try example apps

Start the GameJs web server:


.. and access it in your browser:


Several links to example apps should show up. The source to those apps is in the apps/ directory of your GameJs installation.

Writing games with GameJs

main.js in such an app directory is called by GameJs to bootstrap your game in the browser. A couple of example apps are provided to get you started.

See the GameJs API as well as the Mailing List for more help.