MiniWordGames is an engaging multiplayer word game that combines the thrill of real-time battles with the challenge of word creation. This project utilizes Golang for the backend server, Vue.js for the frontend application, WebSocket for real-time communication, and Docker for easy deployment. The game is hosted under the domain miniwordgames.com.
graph TD
A[Vue Client] --> B[Go Server]
B --> C[HTTP server]
B ==> D[Websocket client upgrader]
D ==> E[Concurrent client reader]
D --> F[Concurrent client writer]
B ==> G[Game Server]
G -.->|manage the rooms and clients <br> Manage the lobby for random rooms| H[Room Server <small><i>id:-axGrw</i></small>]
E -->|Usecases <br>Lobby server for random games connect two users create a room|G
G -->|Usecases <br>Give user notificatons incase of room is not connected due to reasons|F
B --> H
E ==>|send the data from client to room server| H
H ==> F
F ==>|Send data to all the clients in list| A
H <--> I[Game State Manager <br> <small><ul><li>Game algorithm</li><li>Send Game State to the <br>UI client on time ticker</li><li><b>Process the data of the user</b></li></ul> </small>]
H -.->|Send game state data <br> <-ticker.C to all clients in a room|F
https://youtu.be/-9HrFUU_jfs?si=RhmSZE6-uSq-6M8f
Live :- http://miniwordgames.com
wordsbattle uses Docker for deployment and project creation you can find docker-compose.yaml in repo .
git clone git@github.com:DhruvikDonga/wordsbattle.git
cd miniwordgames
docker-compose build
docker-compose up
Checkout this issue :- https://github.com/DhruvikDonga/wordsbattle/issues/12 Dev Branch :- https://github.com/DhruvikDonga/wordsbattle/tree/WB-8