Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dhruvikdonga/wordsbattle
text based games more to come
https://github.com/dhruvikdonga/wordsbattle
gameserver golang vuejs websocket
Last synced: about 2 months ago
JSON representation
text based games more to come
- Host: GitHub
- URL: https://github.com/dhruvikdonga/wordsbattle
- Owner: DhruvikDonga
- Created: 2023-05-06T04:04:18.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-06T13:05:26.000Z (about 1 year ago)
- Last Synced: 2024-09-07T08:00:12.143Z (5 months ago)
- Topics: gameserver, golang, vuejs, websocket
- Language: Go
- Homepage: http://www.miniwordgames.com
- Size: 4.31 MB
- Stars: 23
- Watchers: 2
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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](http://miniwordgames.com).
## Tech Stack
![Go](https://img.shields.io/badge/go-%2300ADD8.svg?style=for-the-badge&logo=go&logoColor=white) ![Vue.js](https://img.shields.io/badge/vuejs-%2335495e.svg?style=for-the-badge&logo=vuedotjs&logoColor=%234FC08D) ![Vuetify](https://img.shields.io/badge/Vuetify-1867C0?style=for-the-badge&logo=vuetify&logoColor=AEDDFF) ![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white) ![AWS](https://img.shields.io/badge/AWS-%23FF9900.svg?style=for-the-badge&logo=amazon-aws&logoColor=white)## Features
- **Real-time Battles:** Challenge your friends or random opponents to fast-paced word battles.
- **WebSocket Integration:** Enjoy seamless and instant communication between players for a responsive gaming experience.
- **Golang Backend:** Utilizes the power of Golang to handle server-side logic efficiently.
- **Vue.js Frontend:** A dynamic and interactive user interface designed with Vue.js for a smooth gaming experience.
- **Dockerized Multistaged Deployment:** Easily deploy and manage the application using Docker containers which are small and lightweight.## SimplySocket
Wordsbattle uses simplysocket package for better rooms,events and message [link](https://github.com/DhruvikDonga/simplysocket)
## Architecture
```mermaid
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
Manage the lobby for random rooms| H[Room Server id:-axGrw]
E -->|Usecases
Lobby server for random games connect two users create a room|G
G -->|Usecases
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
]
- Game algorithm
- Send Game State to the
UI client on time ticker- Process the data of the user
H -.->|Send game state data
<-ticker.C to all clients in a room|F
```
## Demohttps://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 [email protected]:DhruvikDonga/wordsbattle.git
cd miniwordgamesdocker-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
- [@Dhruvik D.](https://www.github.com/DhruvikDonga)