This project was created by Blake Caven, James Lindell, and Justin Yatsuhashi
The Client GUI was built with curses
Python Server that creates individual room servers when requested. Each client first connects to the central server which then creates the requested room if necessary and sends the client to that new server.
The rooms were laid out in the following way so clients could walk from one room to the next.
All data is available in the data folder
The server cluster is capable of handling an arbitrary number of clients thanks to the poll system call.
The throughput of the server increased as the number of clients increased before leveling off.
Since starting a new room potentially meant starting a new server, it is recorded in its own graph:
We chose to build in a timeout function for requests so in particularly high-latency scenarios, clients would simply retry a request instead of waiting for an unknown amount of time. This cutoff was 10 seconds when gathering this data.