The GMP Javascript Game Engine

GMP is a fast, free, javascript game engine, dual licenced under GPLv2 and MIT licenses. It’s small, simple, and easy to learn and use.

Getting Started

  • Read the rest of this introduction.
  • Download the code.
  • Read the tutorial, and familiarize yourself with the API.
  • Start making your own game.
  • Don’t forget to read the rest of the manual for more help, and feel free to dissect my games for ideas and chunks of code.


GMP is great for making sprite-based, 2-D games, and it can easily power most retro-style arcade game designs. It is also well suited to making puzzles such as sudoku or gogopop. Check out the games on this site to see what it can do.

Professional game developers will find GMP useful for making rapid prototypes during their game development cycle. Set up is quick, and changes can be viewed by anyone with a browser.

Game hobbyists will find GMP easy to learn and hack. It’s simple enough to use as a learning tool, and powerful enough to run the back-end of production-quality games.

Plus, it’s easy to share your games: just put them in a web page.

You’ll need to be familiar with javascript, HTML and CSS to use GMP. Experience making games is an asset, but is not essential to getting started.

GMP features

GMP builds upon the architecture used by your web browser to build and manage dynamic HTML pages. Many game coding tasks are quite similar to making a dynamic web page.

The API also provides a wrapper around many web page architecture features. This changes the way events and UI rendering are handled, and makes them more game-engine oriented.

GMP provides the following:

  • A ready-to-go, self-booting game loop
  • Easy-to-use mouse and keyboard input managers
  • Robust classes for organizing your game code and making all your game widgets and sprites
  • Complete API documentation, and a user manual with tutorials

Sadly, there are some things that GMP doesn’t do:

  • No sound API. Browsers don’t manage sound well enough to include this feature in the engine. That’s not to say there aren’t options: if you want sound, check out Scott Schiller’s flash widget, SoundManager.
  • No 3-D API. Sorry. GMP is all about 2-D. That said, with a little planning and design, you should be able to do 2.5-D quite nicely.


GMP began in December, 2006, as the back-end code for my browser-based pinball game puckerball, and quickly developed into a standalone engine.

The engine changed frequently in its first two years, becoming simpler and more streamlined, focusing on using readily available, free and open resources: HTML, Javascript, and CSS.