I will deal with a very topical issue in my thesis. Developing programs that use network communication becomes more and more important nowadays. This trend can be observed in the field of computer games too. Nowadays almost every game has multiplayer game modes, moreover, more and more games can be played online only. By creating and re-using frameworks game developers can accelerate game development. To create a good networking framework, we have to know the network communication protocols and some other technologies, which can be added to the framework to make it easier to use.
Firstly, I will present the basic network communication technologies, starting with four serialization methods (binary, XML, JSON, and Protocol Buffers). I will review the major protocols used by network communications: TPC, UDP, HTTP, XML WS and WCF, which allows us to transfer serialized data. In addition, I write about encryption (3 DES, RSA, SHA-1) and compression (GZIP) algorithms, which can be useful extra features of networking frameworks. I compare the theoretical performance of these technologies; performance is extremely important for games.
I talk about a few game networking frameworks that can be found on the Internet (e.g., RakNet and APP WARP) and two games, game engines (Battlefield 4 / FrostBite 3.0, Crysis / CryEngine), these problems that affect gameplay.
In the second half of my paper I will present the network framework I have built that beside of the network communication, provides additional special services (serialization, encryption, public interfaces) for the users. Furthermore I write about some challenging development and programming problems that I met.
The performance of the framework also measured multiple times with a variety of settings (different sized data packets sent and different extra features used). The results are described in detail.