DhruvikDonga / wordsbattle

text based games more to come
http://www.miniwordgames.com
25 stars 4 forks source link
gameserver golang vuejs websocket

WordsBattle

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.

Tech Stack

Go Vue.js Vuetify Docker AWS

Features

Architecture

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

Demo

https://youtu.be/-9HrFUU_jfs?si=RhmSZE6-uSq-6M8f
Live :- http://miniwordgames.com

Project Setup

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

Interested to contribute

Checkout this issue :- https://github.com/DhruvikDonga/wordsbattle/issues/12 Dev Branch :- https://github.com/DhruvikDonga/wordsbattle/tree/WB-8

Authors