Muhammed Gelgör

Multiplayer Chess

A client-server chess game with LAN networking, turn logic, and a Qt interface, built for a Computer Networks course.

Pixel-art diagram of two chess client windows connected through a central game server
PythonQt (PySide6)SocketsClient-Server Repository ↗

Multiplayer Chess is my Computer Networks course project: a full chess game where two players connect to a shared server and play over the local network.

How it works

A server hosts games and keeps the authoritative board state. One client creates a game and gets a game id; the second client joins with that id. Every move is sent to the server, checked against the rules, and broadcast to both players.

The project was built in stages, each one tested before the next:

  • chess pieces and board state
  • move generation and the core chess rules
  • turn logic
  • the local/LAN connection flow between server and clients

Two ways to play

The Qt client (PySide6) draws the board in a window: click a piece and then its destination, or drag and drop it. There is also a terminal client for quick testing:

create
join <game_id>
move e2e4

Running it

python3 scripts/run_server_local.py
python3 scripts/run_client.py --ui qt --name white
python3 scripts/run_client.py --ui qt --name black

The source and tests are on GitHub.