TARGET

ABOUT THE GAME

The game is a fast paced, bright & energetic action game. TARGET has a large number of increasingly difficult levels & there is a range of differently levelled achievements & it stores the user's high scores to encourage competition. It uses both the mouse & the keyboard for playing (though the latter mainly for menus).

HOW TO PLAY

You can find out how to play by pressing 'h' on the main menu. The idea of the game is stop incoming lines (threats) from reaching the TARGET. This is done by drawing your own lines (defenses) using the mouse - pressing the mouse button to start drawing a line, dragging and releasing to end & draw the line. The controls for each menu are detailed at the bottom of each screen.

As the levels change, the size of the TARGET changes & the rate at which new threats come in increases, as well as the speed of each threat. The game does has a difficulty spike after the twelfth level, but this is to make the achievement for getting to the fifteenth level more valuable. Implemented achievements are SURVIVOR for surviving a certain number of levels without losing a life and COMPLETIONIST for generally completing levels. There are different levels of each for each three levels.

DESIGN OVERVIEW

The game is written in a manner inspired by the Model View Controller design pattern, though it doesn't follow it to a key. This inspired the filenames of the JavaScript files & and the function names. The game uses an awful lot of loops (setInterval) for menus, animation and game mechanics in general, but maintains performance - critical in a fast paced game - by stopping each as soon as they're no longer needed.

SOUND

The game uses open license music taken from Free Music Archive. The game gives the user the option to mute music by pressing 'm' at any time, it might get repetitive the track listing is only four long:

The game also makes use of sound effects, also with an open license, taken from Freesound. These are used for destroying threats, levelling up, losing a life & game over.

EXTERNAL SOURCES

In terms of libraries, the game makes use of jQuery & Mousetrap. Both are linked from CDNs as these are likely to already be in the browser's cache (faster than hosting myself).

The game also uses the API of the Colourlovers to get colour palettes to generate the styles for each level. This has its pros & cons - it means lots of possible nicely colour co-ordinated levels, but it can end up with very difficult levels due to contrast. It also is another dependency on another website & due to its asnychronous nature (limited by the fact it's cross-domain JSONP), it can make the game break if the player starts the game before it finishes loading.

Also thanks to Joshua Bird for ideas & technical discussion.

OTHER NOTES

The game has been tested with recent versions Chromium, Chrome & Firefox - all of which find it working perfectly fine.

Validated HTML(5) & CSS.