Building a Network Protocol for Synchronizing Multiplayer Games

Jeppe Stougaard Faber, Michael Piepgras Neergaard, Alexander Varnich Hansen, Bertram Pelle Metcalf & Peter Christian Tolsager Nøhr

Studenteropgave: Fagmodulprojekt

Abstrakt

This paper details an implementation of a multiplayer game networking protocol that synchronizes
game-states in real-time. We decided to implement the networking protocol as a client-server
setup that has clients synchronize their game-state with an authoritative server. To send packets
between the server and client, we chose the UDP communication protocol to allow for uninterrupted
rapid packet-flow. To optimize the packet-flow between the client and the server, we
decided to have clients send their keystrokes to the server, while the server sends complete gamestates
back. To properly test our networking protocol, we needed a game to be synchronized.
This game was developed using the LibGDX framework which provided various libraries to
simplify the game development process. In addition, we developed a bare-bones backend for a
hosting service that allows users to easily find and connect to running game-servers. We call this
a Lobby.
The final implementation of the game and its networking systems, includes synchronization of
a game between 4 players without noticeable delay, but is still severely lacking in various functionality
that limits practical usage, such as the proper closure of the Lobby and the lack of a The
circular buffer for synchronization.

UddannelserDatalogi, (Bachelor/kandidatuddannelse) Bachelor
SprogEngelsk
Udgivelsesdato28 maj 2018
Antal sider43