A real-time multiplayer game where players guess locations on images uploaded by the host.
The game can be tested here, but be patient as its a free server that will spin down with inactivity, which can delay requests by 50 seconds or more.
This is a multi device version of my game repository that was designed to be played on one device (tablet) and passed around.
- Create/join games with custom codes
- Upload and share images
- Real-time multiplayer functionality
- Dark mode support
- Interactive map guessing
- Distance-based scoring
- Live player rankings
- React + Vite (Frontend)
- Node.js + Express (Backend)
- Socket.io (Real-time communication)
- Tailwind CSS (Styling)
# Clone repository
git clone https://github.com/mschnati/Location-Guessing-Multidevice.git
cd location-guessing-game
# Install dependencies
npm run install-client # Install frontend dependencies
npm run install-server # Install backend dependencies
# Terminal 1 - Start server
cd server
npm run dev
# Terminal 2 - Start client
cd client
npm run dev
Server runs on http://localhost:3000. This IP is not needed to join
Client runs on http://localhost:5173 and other IP-addresses that will be shown in the terminal that you can use to join from other devices
- Host creates game (optional custom code)
- Players join with game code
- Host uploads image and sets target
- Players make guesses
- Host reveals results
- Rankings shown based on distance
PORT=3000, 5173
Can be changed in the config files or via a .env file
/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/
│ │ │ └── game/ # Game components
│ │ └── App.jsx # Main app
│ └── package.json
├── server/ # Node.js backend
│ ├── config/
│ │ │ └── config.js # File to change port/address
│ ├── server.js # Express + Socket.io
│ └── package.json
└── package.json # Root scripts
{
"install-client": "cd client && npm install",
"install-server": "cd server && npm install",
"build-client": "cd client && npm run build",
"build": "npm run install-client && npm run install-server && npm run build-client",
"start": "cd server && npm start"
}