A Final Fantasy-style Active-Time Battle engine in HTML5 Canvas
JavaScript CSS
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



An implementation of a mid-late 1990's "Active-Time Battle" engine, built with HTML5 Canvas and much Javascript.

Currently, ATBattler can function as either a Node.js server/client app or as a pure-in-browser implementation with an emulated server.

In the pure browser case, the server operates within the browser, but the communication protocol between server and client is simulated by direct reads/writes to local 'message queues' (arrays).


Included implementation is for Node server/client only. Requires Node.js v0.8.9 or later.

  1. Run npm install to install node dependencies.
  2. Start server: node server.js
  3. Open client.html in a browser and click the 'start game' button.

The game can be played with either mouse (click the menus) or keyboard (arrow keys to navigate, enter/space to select).

Note that once the game is over, you will need to restart the server and refresh the client page to play again.

Browser Support

ATBattler runs on any relatively up-to-date version of Chrome or Firefox. It also runs in IE9+ (Console must be enabled for now). It has not been tested in Opera or Safari.


A quick rundown on the implemented features in ATBattler:

  • Gameplay
    • Player readiness gauge; ready status
    • Player death status
    • HP and SP
    • Command input - Fight, Defend (skip turn), Skill, and Item
    • Spells/Skills (currently as randomly-assigned commands)
    • Items with rudiementary inventory (no quantity tracking)
    • Stupid AI (randomly attacks non-dead players)
    • Game over condition
  • Client-server gameplay via Websockets.
    • Server hosts game instance and AI client instance
    • Client connects to Server to start game
    • Game Pause/Resume

Node Dependencies

  • async 0.1.22
  • connect 2.7.2
  • sockjs 0.3.5
  • underscore 1.4.3
  • stitch 0.3.3 for generating client-side JS dist

Browser Libraries