Skip to content

Real-time multithreaded game server with sequential consistency

Notifications You must be signed in to change notification settings

BCaven/multiplayer-game-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Real-time multithreaded game server with sequential consistency

Topics

Resources

Stars

Watchers

Forks

Languages