For my masters final project I decided to create a simple MMORPG, with a test of a system I'd thought of while playing World of Warcraft.
This system I nicknamed Arbitor is a way of combining Client server game play with Peer to Peer, allowing in theory servers to pass off some load to the clients while still maintaining a "One true state".
The engine is written in C# and Xna as these were familial to me and C#'s networking is strong.
Excerpt from my paper:
"The goal of the Arbitor system will be to handle the creation of a peer to peer network between clients and to monitor the progress of the players in the dungeon. It will act as the one true state, taking updates from the clients and monitoring for cheating and desynchronization of the clients.
To put this in the Byzantine generals metaphor the Arbitor would act like the king positioned outside of the battle sending his orders and judging on commands.
The update rate will be a lot lower than a server client model, allowing most of the crucial game packets to be handled in a peer to peer fashion with only occasional checks to the server.Hopefully by limiting in this manner the Arbitor will be able to use less bandwidth and processing power on the server, allowing for more players on the same hardware with lower costs per player."
The graphics are taken from the game Warcraft 2: Tides of Darkness, property of Blizzard.
I was successful in creating a simple version of what I had planned and was able to successfully test multiple clients connecting into multiple Peer to Peer networks controlled by a single Arbitor.
Download paper: http://dl.dropbox.com/u/11992346/Final%20Report.doc