Skip to content


Subversion checkout URL

You can clone with
Download ZIP
ArashiJS is a Tempest-clone in JavaScript / HTML5
JavaScript Python Shell
tree: 9ff6cc327d

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


ArashiJS is a (work-in-progress) Tempest-clone written in JavaScript and HTML5.

ArashiJS is adapted from Project ARASHI for the Apple Macintosh. Project Arashi is available at:


The game is incomplete at the time of writing.

To launch, simply open arashi.html in a browser.


ArashiJS is licensed GNU GPL version 2. See the COPYING file for details.

Directory structure

  • src contains all the JavaScript source code.
  • snd contains the WAV PCM conversions of the original sounds.
  • img contains the SVG and PNG conversions of the original images.
  • util contains some utilities used in conversion and by the Makefile.
  • dist contains distributables created by make.


The game loop is found in src/engine.js. The engine basically keeps track of the game state, and calls the related handler method each frame. These methods in turn live in the source files underneath src/gamestates/.

All other files are basically utilities for getting things done:

  • The src/vakit/ directory contains drawing utilities (which stem from the VAKit library in the original Project ARASHI).

  • The src/soundkit.js library is a minimal abstraction for playing sound effects.

  • The src/random.js library contains a pseudo-random number generator. The most significant feature of this is that it is seedable. (This is necessary for playback of recordings.)

  • The src/grid.js library contains the code for reading and drawing the level's grid, and includes definitions for levels converted from the original.

A Makefile is included, which fulfills some optional development tasks:

  • make lint runs JSLint on all source files. Before each source file is processed, the file util/lint.head.js is concatenated. This file contains the default JSLint options used throughout the source code. You can override the environment variables RHINO and JSLINT if the defaults don't work for your set-up.

  • make dist creates the compressed JavaScript and CSS distributables under dist/. The file util/dist.head.js is concatenated to the input of the compressor. You can override the environment variables JAVA and YUICOMP if the defaults don't work for your set-up.

  • make clean is your run-off-the-mill cleaning target for the above two.

Something went wrong with that request. Please try again.