The game is heavily inspired by game called Space Impact originaly released in 2000 as mobile game by company called Nokia.
The game uses similar game graphics assets and logo (recreated to look as it’s displayed in low resolution) to the original game. The inspired game also includes sound effects (taken from freesound).
This game only contains subset of the functions of the original game. The gameplay and the goal of the are mostly different.
The game is by default set for one player (singleplayer). The goal is to clear all levels without getting the ship damaged. The player must avoid (or shoot) enemies and thier missiles. For each shot enemy or missile the user gets score points.
User may control his ship using following keys:
Key | Action |
---|---|
Arrow Up |
Moves ship up |
Arrow Down |
Moves ship down |
Arrow Right |
Moves ship to the right |
Arrow Left |
Moves ship to the left |
Spacebar |
Shoots the missile |
There is also option to add secondary player to the game.
The game is enaled by the M
key.
Controls for secondary user are following:
Key | Action |
---|---|
Key |
Moves ship up |
Key |
Moves ship down |
Key |
Moves ship to the right |
Key |
Moves ship to the left |
Key |
Shoots the missile |
Both users share same life points.
Game sources are located in src
directory.
The game is implemented using TypeScript language as a web app.
To run app localy, follow these steps:
-
Clone content of this repository into your local folder
-
Install Node Package Manager and yarn
-
Execute command
yarn install
andyarn run start
-
Open
localhost:1234
in your browser
The game has following features:
-
Player’s ship movement (in all directions)
-
Player’s ship shooting
-
Different enemy types (with different movement and shooting)
-
Collision deteciton
-
Single & multi-player (one or two players)
-
Game levels
-
Spawning enemies using "wave" pattern
-
Levels information, game end information
-
Configuration and level creation using external file (
static/config.json
) -
Score points (differs by hit target)
-
Player lives
-
Automatic restart after game end
-
Sound effects
-
Component architecture, messaging communication
-
Game introduction