← Docs home
Tower Defence (LIVE)
Status: LIVE – promoted from BETA on 2026-08-16.
Overview
Tower Defence is a multiplayer tower‑defence game where players build towers
on their territory to defend their base from waves of enemies. The last player
with surviving base HP wins, or the player with the highest score after all 5
waves are cleared wins.
Scoring
Each enemy killed earns +10 points. Each remaining base HP at the end is
worth +5 points. Each remaining gold coin is worth +1 point. The player with
the highest total score wins. Clearing all 5 waves awards a bonus of +50 gold.
Screenshots
Host Settings
Host Playing
Host Mid-game
Host Victory
Host Lobby
Controller 1 Settings
Controller 2 Settings
Controller 1 Playing
Controller 2 Playing
Controller 1 Mid-game
Controller 2 Mid-game
Controller 1 Victory
Controller 2 Victory
Controller 1 Lobby
Controller 2 Lobby
How to play
- Join the host (big screen) from your phone.
- Walk into the Tower Defence portal in the lobby.
- During the settings phase, choose the number of AI opponents, then tap Start Game.
- Once the game starts, walk to one of your territory pads and build a tower.
- Tap the "Start Waves" button to begin the first wave of enemies.
- After each wave is cleared, tap the next wave button to continue.
- You can also send enemies to your opponents by using the "Send Enemies" actions.
- The game ends when only one player is left standing or after all 5 waves are cleared.
- The game automatically returns everyone to the lobby after the victory screen.
Technical notes
- Built with Three.js (3D scene) and a shared JSON descriptor phone controller.
- The game uses the
Stage pattern (TowerDefStage in frontend/js/stages/towerDefStage.js).
- Towers and enemies are currently procedural Three.js primitives, not GLTF models.
- Verified via Playwright with a real host + 2 real controller browsers, real WebRTC join, and every action (settings, building, wave start) sent from the controller pages – see
tests/tower-defense.spec.js.