For CSC 564: Research Topics in Computer Networks, we were tasked with coming up with a research project and writing a mock conference paper for it. I have always been interested in how online multiplayer games work (in my opinion, the fact that they work as well as they do is a miracle), so I took this opportunity to do some research on online multiplayer solutions. Specifically, I wanted to see how the client/server model and the peer to peer model compared against each other.
HybridNet is a basic online multiplayer game that has two modes: a client/server mode, where the server is a dedicated remote machine, and a client as host mode, where one of the clients runs the server code on their own machine. HybridNet allows for swapping between these two modes on the fly.
This project is a demonstration of how versatile Python is. I created the game using PyGame, I added online multiplayer using Python's sockets library, I added the ability to remotely start the dedicated server using Flask, etc. Python is pretty great.
I already wrote ten pages about the project for the conference paper, so if you're interested in more details, you can download the paper below.