Multiplayer Chess
A client-server chess game with LAN networking, turn logic, and a Qt interface, built for a Computer Networks course.
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.