Nowadays peer-to-peer networks are getting more and more popular. Among other reasons, this is also because peer-to-peer networks are excellent in load balancing between the users that share their resources. Currently released computer games are able to provide multiplayer matches over the internet and a demand is rising for developing a distributed networking solution for them. The game developers are looking for a way to decrease the upkeep cost of their online game services and they see a great potential in peer-to-peer networks to arrange online matches.
The subject of this thesis is implementing a generic peer-to-peer network on which various types of game software can rely. The software gathers the players to create their own game session, and then it leaves them to manage the game. Moreover, the system constantly monitors the players' network resources and based on these measurements tries to optimize the bandwidth usage. This network system also provides a messaging service with timestamps for the game application. Whenever a player leaves the group, the management logic tries to keep the network alive.
During my project laboratory I developed the initial version of the implementation. This version had a number of flaws which have been solved in this release. In addition, several new features were added. While I worked on my thesis, I made a thorough research in many areas related to the topic. A clean and accurate documentation of the network was also carried. The correctness of the software artifacts were constantly checked through various test cases.