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.

  1. 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.
  2. 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.
  3. 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.