Go Network Game — Multiplayer Java Desktop Game by Bilal ÇolakGo Network Game — Multiplayer Java Desktop Game by Bilal Çolak

Go Network Game — Multiplayer Java Desktop Game

Bilal Çolak

Bilal Çolak

Overview

Go Network Game is a multiplayer desktop game built with Java, Swing, and socket programming. Two players connect to a server and play a turn-based match on a 9×9 Go board, while the server maintains the official game state.

The challenge

A networked board game needs both players to see the same board and follow the same rules. The key challenge was to coordinate moves, validate actions on the server, and keep separate game sessions independent as more clients connect.

What I built

Desktop client: a Swing interface for entering connection details, interacting with the board, and viewing the current turn, score, and game status.
Authoritative server: Java sockets carry player actions to the server, which validates moves and broadcasts updated state to both clients.
Game rules: turn enforcement, occupied-point checks, liberty calculation, group capture, suicide-move prevention, passing, and simplified territory-plus-capture scoring.
Multi-client sessions: a separate handler thread per client and paired game rooms, allowing four connected clients to play in two independent matches.
Session lifecycle: opponent disconnect notifications, continued acceptance of new players after a room closes, and restart approval from both players.

Architecture and deployment

The code separates the Swing client, server connection and room management, and shared game models. The server accepts and pairs clients; clients submit moves and render the state returned by the server. AWS EC2 is used for server deployment, with Maven supporting the Java build.

Outcome

The result is a playable client-server Go implementation with synchronized turns, server-side rule validation, and multiple game rooms. It demonstrates practical network programming, concurrency, game-state modeling, and desktop UI development.
Stack: Java, Swing, Java Sockets, threads, Maven, AWS EC2.
The cover is a conceptual project graphic, not an application screenshot.
Like this project

Posted Oct 13, 2026

A Java/Swing multiplayer Go game with a 9×9 board, authoritative socket server, multiple game rooms, and AWS EC2 deployment.