Void Client is a work-in-progress rewrite of the Starblast.io game client.
The goal is to rebuild the client-side part of the game from scratch, using my own code, after studying and understanding how the network protocol works.
The current version includes a simple web menu, local WebSocket communication, game mode selection, custom game links, and server-side network helpers.
- Simple browser menu to start a game
- Game mode selection:
team,survival,invasion, anddeathmatch pro - Custom game link support
- Team selection flow for team mode
- Local WebSocket connection between the browser and the Node.js server
- Server discovery and ping comparison logic
- Basic packet parsing and game data export
- JavaScript
- Node.js
- Express
- ws
- HTML
- CSS
Void-Client/
├── src/
│ ├── public/
│ │ ├── css/
│ │ │ └── style.css
│ │ ├── html/
│ │ │ └── index.html
│ │ └── js/
│ │ └── index.js
│ └── server/
│ ├── network/
│ │ ├── FindGame.js
│ │ ├── JoinGame.js
│ │ └── gameData.js
│ └── server.js
├── package.json
├── package-lock.json
└── README.md
Clone the repository:
git clone https://github.com/Senko74/Void-Client.git
cd Void-ClientInstall the dependencies:
npm installStart the local server:
node src/server/server.jsThen open the app in your browser:
http://localhost:9000
For development, you can also run the server with nodemon:
npx nodemon src/server/server.js- The browser connects to the local server with WebSockets.
- The player chooses a game mode or enters a custom game link.
- The Node.js server looks for a valid Starblast.io game server.
- If the selected mode is
team, the client asks the player to choose a team. - When the connection is ready, the client switches from the menu to the game canvas.
- Some received network packets are parsed and exported as JSON.
This project is currently marked as ISC in package.json.