This project migrates the original Express + Socket.io + Three.js game to a Next.js app while preserving realtime gameplay and keeping the runtime fully TypeScript-based.
- multiplayer movement + shooting
- bullets and wall collisions
- score and health tracking
- death event + latest news feed
- GLTF tank model rendering (
public/models/tank2.glb)
npm install
npm run devnpm run dev starts server.ts (via tsx) so Next.js and Socket.io share one HTTP server.
/landing page/lobbylobby + nickname setup/game3D battle scene/api/socketsocket path
- centralized socket event constants
- dead flow handling with redirect to lobby
- key repeat guard for shooting/movement
- shadcn-style component migration for lobby and HUD
- health progress, badges, structured cards, chat input
- mobile touch controls for movement + shoot
- room/lobby plumbing (
join-lobby,players-update) - in-game leaderboard panel
- basic chat broadcast
- spectate mode toggle
- match timer feed