A complete, real-time, multiplayer web application that faithfully recreates the "Deathroll" game from World of Warcraft.
- Real-time Multiplayer: Up to 8 players per room using Socket.IO
- Authentic WoW Experience: Dark fantasy theme with WoW-inspired UI/UX
- Game Mechanics: Faithful recreation of the Deathroll gameplay
- Live Chat: Real-time chat with game event notifications
- Room System: Create or join game rooms with unique IDs
- Game History: Complete log of all rolls and game events
- Responsive Design: Works on both desktop and mobile
Frontend:
- Vue.js 3 with Composition API
- Vite for build tooling
- Tailwind CSS for styling
- Socket.IO Client for real-time communication
- Tone.js for sound effects
- Pinia for state management
Backend:
- Node.js with Express.js
- Socket.IO for real-time communication
- In-memory game state management
- Node.js (version 16 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/Pippobaudoicon/deathroll-wow
cd deathroll-wow- Install server dependencies:
cd server
npm install- Install client dependencies:
cd ../client
npm install- Start the server (from the
serverdirectory):
cd server
npm run devThe server will start on http://localhost:3040
- Start the client (from the
clientdirectory):
cd client
npm run devThe client will start on http://localhost:5173
- Open your browser and navigate to http://localhost:5173
- Starting: The host creates a room and waits for 2-8 players to join
- First Roll: A random player starts by rolling 1-1000
- Subsequent Rolls: Each player rolls 1 to the previous roll result
- Elimination: Rolling a 1 eliminates the player
- Victory: Last player standing wins
- New Game: Host can start a new game with the same players
deathroll-wow/
├── client/ # Vue.js frontend
│ ├── src/
│ │ ├── components/ # Vue components
│ │ ├── stores/ # Pinia stores
│ │ ├── views/ # Page views
│ │ ├── assets/ # Static assets
│ │ └── utils/ # Utility functions
│ ├── public/ # Public assets
│ └── package.json
├── server/ # Node.js backend
│ ├── src/
│ │ ├── controllers/ # Game logic
│ │ ├── models/ # Data models
│ │ ├── services/ # Business logic
│ │ └── socket/ # Socket.IO handlers
│ ├── server.js # Main server file
│ └── package.json
└── README.md
The server runs on port 3040 and provides:
- RESTful API endpoints
- Socket.IO real-time communication
- Game state management
- Room management
The client is built with Vue.js 3 and includes:
- Responsive WoW-themed UI
- Real-time game updates
- Sound effects and animations
- State management with Pinia
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is for educational purposes and is inspired by World of Warcraft. All game assets and references are property of Blizzard Entertainment.