Build your own MMO with Vampire Survivors-style combat, real-time multiplayer, and instanced dungeons.
Quick Start โข Documentation โข Features โข Contributing
crawler.mp4
This is a fully-featured MMO game boilerplate designed as a foundation for building multiplayer games. It includes complete implementations of core MMO systems that would typically take months to build from scratch.
Perfect for:
- ๐ฎ Game developers wanting a multiplayer foundation
- ๐ Developers learning real-time game architecture
- ๐ Startups prototyping multiplayer game ideas
- ๐ง Anyone interested in Socket.IO/WebSocket game patterns
|
|
|
|
| Layer | Technologies |
|---|---|
| Frontend | React 18, Three.js, Tailwind CSS, Vite, Zustand |
| Backend | Node.js, Express, Socket.IO |
| Database | SQLite (easily swappable to PostgreSQL/MongoDB) |
| DevOps | Docker, Docker Compose, Jest, Playwright |
| Architecture | MMO-style state sync with server authority |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DUNGEON CRAWLER MMO โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Profile โ Profile โ Game โ Game Client โ
โ Client โ API โ Server โ (React/Three.js) โ
โ (React) โ (Express) โ (Socket.IO) โ โ
โ Port 3000 โ Port 3001 โ Port 3030 โ Port 5173 โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โข Login UI โ โข Auth API โ โข Gameplay โ โข 3D Rendering โ
โ โข Register โ โข Sessions โ โข Combat โ โข Real-time Game UI โ
โ โข Dashboard โ โข SQLite DB โ โข Parties โ โข WebSocket Client โ
โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ View Full Architecture Documentation โ (850+ lines of detailed system design)
# Clone the repository
git clone https://github.com/ClaytonWas/dungeon-crawler.git
cd dungeon-crawler
# Start all services
docker-compose up
# Access the application
# Profile UI: http://localhost:3000
# Game Client: http://localhost:5173# Terminal 1 - Profile Server (Auth API)
cd client
npm install && npm start
# Terminal 2 - Game Server (Socket.IO)
cd server
npm install && npm start
# Terminal 3 - Game Client (Vite + React)
cd client/game-client
npm install && npm run devThis project includes 4,700+ lines of comprehensive documentation:
| Guide | Description |
|---|---|
| ๐ ARCHITECTURE.md | Complete system design, data flow, and component interactions |
| ๐ค CONTRIBUTING.md | Development workflow, code standards, and PR guidelines |
| ๐ WORLD_CREATION_GUIDE.md | Create custom game worlds with JSON schemas |
| โ๏ธ WEAPON_GUIDE.md | Design and implement new weapon systems |
| ๐ค CHARACTER_GUIDE.md | Character creation, stats, and progression |
| ๐ฌ SCENE_QUICK_START.md | Quick reference for scene configuration |
| ๐งช TESTING_GUIDE.md | Testing strategies, Jest, and Playwright setup |
๐ Create a New World
# Create a new scene file
cd server/scenes
touch my_dungeon.jsonScene files support hot-reload โ no rebuild needed!
โ๏ธ Add a New Weapon
// server/systems/weaponDefinitions.js
myWeapon: {
type: 'myWeapon',
name: 'Fire Sword',
baseStats: {
attackRadius: 5.0,
attackCooldown: 1000,
baseDamage: 20,
damageVariation: 5,
maxTargets: 2
},
upgradePath: { /* ... */ }
}๐ See WEAPON_GUIDE.md for complete weapon creation docs.
๐จ Customize the UI Theme
Edit client/game-client/tailwind.config.js to customize colors, fonts, and spacing.
dungeon-crawler/
โโโ ๐ client/
โ โโโ ๐ profile-client/ # Login/Register UI (React + Vite)
โ โโโ ๐ game-client/ # Game UI + Three.js rendering
โ โโโ ๐ apiServer.js # Auth API (Express)
โ โโโ ๐ db/ # SQLite database & schemas
โ
โโโ ๐ server/
โ โโโ ๐ gameServer.js # Main game logic (Socket.IO)
โ โโโ ๐ systems/ # Combat, weapons, characters, upgrades
โ โโโ ๐ scenes/ # World definitions (JSON)
โ
โโโ ๐ docker-compose.yaml # 4-service orchestration
โโโ ๐ Documentation # 4,700+ lines of guides
# Run all tests
npm test
# Backend tests only
npm run test:backend
# Frontend tests
npm run test:frontend
# E2E tests with Playwright
npm run test:e2e
# Coverage report
npm run test:coverageContributions are welcome! This is a template repository โ fork it to build your own game, or contribute improvements to the boilerplate.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๐ See CONTRIBUTING.md for detailed guidelines.
View production readiness checklist
Before deploying to production:
- Replace SQLite with PostgreSQL/MongoDB
- Add input validation (Zod schemas)
- Implement rate limiting
- Add comprehensive error handling
- Set up logging (Winston/Pino)
- Configure CORS properly
- Use environment variables for secrets
- Set up Redis for shared state
- Implement anti-cheat measures
- Add monitoring and alerting
๐ See TESTING_GUIDE.md for testing strategies.
This project is licensed under the MIT License โ see the LICENSE file for details.
You are free to use this boilerplate for personal and commercial projects.