| Feature | Description | |
|---|---|---|
| ๐ | 3D Space Combat | Fully realized 3D environments with asteroids, moons, and a dynamic skybox |
| ๐ | Real-time Multiplayer | Live dogfights with WebSocket sync across all connected pilots |
| ๐ฏ | Campaign Mode | Three-mission story arc with a boss capital ship, checkpoints, and a lives system |
| ๐ | Homing Missiles | Smart missiles with obstacle avoidance โ countered by flares |
| ๐จ | Ship Customization | Personalize your color scheme, saved to your pilot account |
| ๐ฎ | Gamepad Support | Full controller support via the Web Gamepad API |
| ๐ฑ | Mobile Ready | Touch-friendly HUD with virtual joystick and on-screen buttons |
| ๐ค | AI Opponents | Bot pilots with pathfinding and combat logic |
| ๐ | Pilot Accounts | Secure auth with bcrypt + JWT to track stats and customization |
| โก | 60 FPS Optimized | Frustum culling, instanced rendering, and batched WebSocket messages |
Three sequential missions, each unlocked by completing the previous one. Progress is saved locally.
flowchart LR
A([๐ Mission Select]) --> B
B["Mission 1
Asteroid Corridor"] -->|complete| C
C["Mission 2
Deep Space Push"] -->|complete| D
D["Mission 3
Capital Ship Boss"] -->|victory| E([๐ Campaign Complete])
style A fill:#1e1b4b,color:#c7d2fe,stroke:#4338ca
style B fill:#0f172a,color:#7dd3fc,stroke:#0369a1
style C fill:#0f172a,color:#7dd3fc,stroke:#0369a1
style D fill:#450a0a,color:#fca5a5,stroke:#b91c1c
style E fill:#14532d,color:#bbf7d0,stroke:#15803d
Lives system: You get 3 lives per run. Dying warp-flashes you back to the last checkpoint at 55% health โ no full restarts.
The boss is a fully animated capital ship with 4 rotating turrets, patrol movement, and 12 hitbox zones spread across its hull.
Join or create a lobby and compete against other pilots in real time. Ship positions, rotations, weapon fire, and damage are all synchronized via WebSocket.
Freeplay against AI bot opponents to sharpen your skills, or just explore the asteroid field at your own pace.
| Input | Action |
|---|---|
W / S |
Thrust forward / back |
A / D |
Roll left / right |
Mouse |
Aim and look |
Left Click |
Fire bullets |
Right Click (hold) |
Free-look camera |
F |
Fire homing missile |
Q |
Deploy flares (missile countermeasure) |
Shift |
Boost |
Space |
Drift |
| Input | Action |
|---|---|
| Left Stick | Roll / Throttle |
| Right Stick | Aim / Look |
RT / A |
Fire |
LB |
Boost |
LT |
Drift |
| Start | Menu |
Virtual joystick on the left half of the screen drives movement. On-screen buttons handle weapons, boost, and drift. A throttle slider gives fine speed control.
| Weapon | Type | Notes |
|---|---|---|
| Bullets | Rapid-fire projectiles | Short range, high rate of fire |
| Beam | Sustained energy weapon | Overheats with continuous use |
| Missiles | Homing projectiles | Navigates around asteroids; look-on-target to lock |
| Flares | Countermeasure | Deploys 20 decoys that burn ~1.8 s each burst |
flowchart LR
Fire["Fire Missile ๐"] --> Tracking["Homing\n(obstacle avoidance)"]
Tracking -->|target clear| Hit["๐ฅ Hit"]
Tracking -->|flares detected| Seduced["Diverts to flare"]
Seduced --> Miss["โ Miss"]
style Fire fill:#1e1b4b,color:#c7d2fe,stroke:#4338ca
style Hit fill:#14532d,color:#bbf7d0,stroke:#15803d
style Miss fill:#450a0a,color:#fca5a5,stroke:#b91c1c
style Tracking fill:#0f172a,color:#7dd3fc,stroke:#0369a1
style Seduced fill:#451a03,color:#fed7aa,stroke:#c2410c
graph TD
Browser["๐ฅ๏ธ Browser Client\nThree.js ยท ES6 Modules"]
Server["โ๏ธ Node.js Server\nExpress ยท ws"]
DB[("๐๏ธ SQLite\npilots.db")]
Browser <-->|"WebSocket โ positions, combat, events"| Server
Browser -->|"HTTP โ auth, static assets"| Server
Server <--> DB
subgraph client ["Client Modules"]
direction LR
Renderer["Three.js\nRenderer"]
Physics["Ship\nPhysics"]
Weapons["Weapons\nbullets ยท beams ยท missiles"]
Audio["Audio\nEngine"]
Input["Input\nKB ยท Gamepad ยท Touch"]
end
Browser --- client
โโโ public/
โ โโโ src/
โ โโโ main.js # Game loop, state, campaign logic
โ โโโ ship.js # Ship model, movement, physics
โ โโโ bot.js # AI pathfinding and combat
โ โโโ lobby.js # Lobby, matchmaking, campaign routing
โ โโโ auth.js # Client-side authentication
โ โ
โ โโโ bullets.js # Rapid-fire projectile system
โ โโโ beams.js # Sustained beam weapon
โ โโโ missiles.js # Homing missiles + flare countermeasures
โ โ
โ โโโ input.js # Keyboard / mouse / gamepad
โ โโโ touchhud.js # Mobile touch controls
โ โโโ camera.js # Third-person camera
โ โโโ customization.js # Ship customization UI
โ โโโ audio.js # Sound effects and music
โ โโโ filter.js # Post-processing visual filters
โ โ
โ โโโ asteroids.js # Asteroid generation and physics
โ โโโ skybox.js # Space background rendering
โ โโโ trails.js # Engine trail particles
โ โโโ moon.js # Moon rendering
โ โโโ mothership.js # Static mothership object
โ โโโ warp.js # Warp jump visual effect
โ โ
โ โโโ carrier.js # Aircraft carrier (team base)
โ โโโ terrain.js # Ground terrain + airfields
โ โโโ airfield.js # Landing and spawn zones
โ โโโ trees.js # Environmental foliage
โ โโโ water.js # Water surface rendering
โ โโโ clouds.js # Volumetric cloud layer
โ
โโโ server/
โ โโโ index.js # Express routes + WebSocket handler
โ โโโ db.js # SQLite interface
โ
โโโ index.html # Entry point
โโโ pilots.db # Pilot accounts database
Frontend
Backend
Auth & Security
This game and all its code, assets, and design are the exclusive property of the creators. Unauthorized copying, reproduction, distribution, or use of this game in any form is strictly prohibited.
| Role | Contributor |
|---|---|
| Game creator & Logic | Ian |
| Online play & backend infrastructure | Gheat |