WONO-AIR is a vertical scrolling shooter that runs in a web browser. You fly one fighter aircraft against waves of enemy units. The game works on desktop computers and on phones.
- Install the dependencies with
npm install. - Start the development server with
npm run dev. - Open the address that the terminal prints.
To build the game for production, do npm run build. Then test the build with npm run preview.
Your aircraft fires its gun automatically. You move the aircraft, and you dodge the enemy fire. You also use two special actions: boost and the EMP bomb. Follow these rules:
- Destroy enemy units to score points.
- Collect the power-ups that destroyed enemies drop.
- Dodge enemy bullets. Collisions with enemy units also damage your aircraft.
- Survive as long as you can. The game ends after your last life.
| Action | Keys |
|---|---|
| Move | W A S D or the arrow keys |
| Boost | Shift |
| EMP bomb | Space or B |
| Pause | P or Esc |
| Mute the sound | M |
| Start or retry | Enter or Space |
On a phone or tablet, the left half of the screen shows a joystick. Drag the joystick to move. The right side of the screen shows the BOMB and BOOST buttons.
Press Shift to boost. A boost makes your aircraft much faster for 0.9 seconds. You cannot take damage during a boost. The boost recharges in 4 seconds.
Press Space to fire an EMP bomb. The bomb clears every enemy bullet on the screen. It also deals 60 damage to every enemy and stuns them for 1.2 seconds. You start with 2 bombs and can hold a maximum of 4. Each new sector gives you 1 bomb.
Your aircraft has an armor value of 100. Enemy fire and collisions reduce the armor. When the armor reaches 0, you lose 1 life. You start with 3 lives. When you respawn, your weapon level decreases by 1, and you are invulnerable for 2.5 seconds.
Destroyed enemies drop power-up badges. When you fly close to a badge, the badge moves toward you.
| Badge | Effect |
|---|---|
M |
Increases the weapon level by 1, up to level 5. |
H |
Fires homing missiles for 20 seconds. |
L |
Fires a laser beam for 8 seconds. The laser also destroys enemy bullets. |
D |
Adds a drone wingman that fires with you, up to 2 drones. |
S |
Adds a shield for 10 seconds. Each absorbed hit removes 2.5 seconds from the shield. |
E |
Adds 1 EMP bomb, up to 4 bombs. |
| Enemy | Behavior | Points |
|---|---|---|
| Drone | A small swarm unit that descends in a wave pattern. It fires single shots. | 100 |
| Fighter | An interceptor that stops and strafes. It fires bursts of 3 shots. | 250 |
| Bomber | A heavy gunship. It moves slowly and fires fans of plasma orbs. | 800 |
| Stealth | An elite unit that fades in and out. It dashes and fires precise twin shots. | 600 |
| Missile | A fast missile that follows your aircraft. You can destroy it in flight. | 150 |
Each enemy gives a fixed number of points. Kills within 2.5 seconds of each other build a combo. Each combo kill adds 5 percent to the score multiplier, up to a maximum of 3x. Each collected power-up gives 50 points. The browser stores your best score.
A new sector starts every 55 seconds. Four sectors cycle in order, and the cycle then repeats at a higher difficulty:
- NEO METROPOLIS
- COASTAL BLOCKADE
- SANDSTORM OUTPOST
- ORBITAL CYBER GRID
Each sector increases the health and the speed of the enemies. New enemy types appear in later sectors. The game gives you 1 EMP bomb at the start of each sector.
- Three.js renders the game with an orthographic camera.
- Vite serves the game during development and builds it for production.
- Every sprite is drawn in code onto a canvas. The game loads no image files.
- Every sound is synthesized with Web Audio. The game loads no audio files.