CS162 Project Overview -- The Game of Go
The project for the semester is to design and implement a distributed,
multi-threaded game of Go. The players for each game will be machine
players. There are three project phases.
- Project 1: Implement a single-machine, single-process,
multi-threaded Go game (server and client machine players) that
supports multiple simultaneous two-player games with single-threaded
machine players running as separate threads. There should be one thread
for each client (machine player) and game.
- Project 2: Partition the Go server and clients into separate
processes running on the same machine. Implement each machine player as
a separate multi-threaded process communicating with the Go server
using TCP streams.
- Project
3: Move the Go server to an Amazon EC2 instance adding secure,
authenticated communication and a backend database for storing game
history and state.