Skip to content

Latest commit

 

History

History
49 lines (24 loc) · 2.01 KB

README.md

File metadata and controls

49 lines (24 loc) · 2.01 KB

Multiplayer Game Server

This project was created by Blake Caven, James Lindell, and Justin Yatsuhashi

Clients

example client

The Client GUI was built with curses

Server Architecture

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.

drawing of architecture

The rooms were laid out in the following way so clients could walk from one room to the next.

room setup

Performance

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.

throughput

average time per operation

Since starting a new room potentially meant starting a new server, it is recorded in its own graph:

average time to go to a new room

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.

max time per operation

old links

project proposal

progress report

final report