Snowball Fight is a real-time online multiplayer game built with Phaser. Players can move around the map, throw snowballs, and battle with others in a fun, fast-paced arena! The project uses a modern frontend-backend separation: the frontend is built with Vite + TypeScript + Phaser, and the backend uses Node.js + Colyseus for real-time communication.
.
├── client/ # Frontend (Phaser game)
├── server/ # Backend (Colyseus room management, API)
├── design/ # Art & sound resources
├── .gitignore
- Node.js 16+
- Recommended: pnpm/yarn/npm as package manager
Install dependencies for both frontend and backend:
# Frontend
cd client
npm install
# Backend
cd ../server
npm install
cd server
npm run start
# Default port: 2567
cd client
npm run dev
# Default port: 3000
Open your browser and visit http://localhost:3000 to register/login and enjoy the snowball fight!
- Frontend: Phaser 3, TypeScript, Vite, i18next (multi-language)
- Backend: Node.js, Colyseus, Express, TypeScript
- Real-time: Colyseus room sync
- Art/Sound: See
design/
directory
- Real-time online multiplayer battles
- Snowball throwing, collision detection, kills & respawn
- Player registration, login, authentication
- Map zoom, minimap, chat system
- Supports English & Chinese (switchable in-game)
- Rich art and sound resources
In-game screenshot: Intense snowball action!
- `