Back to Projects
2025Game DevelopmentCompleted

Space Rush

Arcade-style 2D space shooter with endless levels, boss battles, and cloud accounts.

A modern arcade-style 2D space shooter with a React + TypeScript frontend running a custom Canvas 2D engine and a Node.js Express + SQLite backend. The game features 5 enemy types, 4 boss encounters, 5 weapon systems, 6 power-ups, 5 unlockable planes, and a 10-level upgrade system for health, damage, speed, fire rate, and armor. Cloud accounts support Gmail registration, progress persistence across devices, achievements, and global leaderboards — secured with bcrypt password hashing, JWT session tokens, and rate limiting.

Tech Stack

ReactTypeScriptViteCanvas 2DWeb Audio APIExpressSQLiteJWT

Features

  • Endless procedurally-difficult levels
  • 5 enemy types: Drone, Fighter, Bomber, Stealth Jet, Elite
  • 4 epic bosses cycling every 5 levels with stat multipliers
  • 5 weapon systems: Machine Gun, Laser, Rockets, Plasma, Triple Shot
  • 6 power-ups: Health, Shield, Double Damage, Rapid Fire, Coin Magnet, Extra Life
  • 5 unlockable planes: Falcon, Eagle, Raptor, Phantom, Stealth-X
  • 10-level upgrade system for Health, Damage, Speed, Fire Rate, Armor
  • Cloud accounts with Gmail registration and cross-device progress sync
  • Achievements and global leaderboards with encrypted score submission
  • Mobile touch controls with virtual joystick and multi-touch support
  • Parallax background with 10 color schemes and shooting stars
  • Visual effects: glow, particles, screen shake, hit flashes

Challenges

  • Building a custom game engine on Canvas 2D inside a React component lifecycle
  • Separating the game loop and input handling from React rendering for consistent 60fps
  • Designing an Express + SQLite API with authentication, saves, achievements, and leaderboards
  • Securing the backend: bcrypt hashing, JWT sessions, CORS, helmet, and rate limiting
  • Implementing mobile touch controls alongside keyboard input

Solutions

  • Kept the game engine framework-free inside React, using requestAnimationFrame and delta time
  • Used Zustand for UI state and a singleton engine module isolated from re-renders
  • REST API with better-sqlite3, bcrypt password hashing, and 30-day JWT session tokens
  • Production hardening with helmet security headers, CORS allow-lists, and login rate limits
  • Dual input system: keyboard (WASD/arrows) and virtual joystick for touch

What I Learned

  • Architecting a React + TypeScript game with a custom Canvas 2D engine
  • Game loop design, frame-independent physics, and render optimization
  • Building a production REST API with Express and SQLite
  • Authentication and authorization: registration, login, session management
  • Backend security practices: password hashing, rate limiting, security headers
  • Procedural difficulty scaling and boss encounter design