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