GameNewt - framework pro replikaci stavu v multiplayer hrách s využitím determinismu
GameNewt - framework for determinism-based state replication in multiplayer games
bachelor thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/193005Identifiers
Study Information System: 267104
Collections
- Kvalifikační práce [11322]
Author
Advisor
Referee
Šimůnek, Petr
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Computer Science with specialisation in Computer Graphics, Vision and Game Development
Department
Department of Distributed and Dependable Systems
Date of defense
5. 9. 2024
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
Czech
Grade
Excellent
Keywords (Czech)
netcode|herní knihovna|rollback netcode|determinismus|.NETKeywords (English)
netcode|game library|rollback netcode|determinism|.NETCílem této práce bylo vyvinout knihovnu pro replikaci stavu v malých kooperativních online hrách pro .NET platformu, která by vývojáři umožňovala vývoj síťové hry jako by hra byla lokální. Výsledkem práce je knihovna, která je nezávislá na zvoleném herním enginu či frameworku. Řešení využívá replikaci založenou na determinismu a používá model klient-server. Ke snížení vnímaného input lag je užita metoda rollback netcode. Řešení implementuje synchronizaci hodin klienta se serverem, která zaručuje, že vstupy klient odesílá serveru akorát včas. Funkčnost celého systému byla důkladně ověřena testy jednotlivých komponent a systému jako celku. Systém pro synchronizaci byl podroben testování, které ujistilo, že funguje pro reálné síťové podmínky s latencí, efektem jitter i s omezenou ztrátovostí packetů. Součástí práce jsou návody a příklady použití.
The goal of this thesis was to develop a library for state replication for small coopera- tive games on the .NET platform, which would make online game development as simple as local game development. The result of the thesis is a library not dependent on the selected game engine or framework. The solution employs determinism-based replication and a client-server model. Rollback netcode is used to lower perceived input lag. The solution implements client and server clock synchronization, which guarantees that client input is sent to the server just in time. The entire system's functionality has been val- idated with unit tests and tests for the system as a whole. The synchronization system has been tested to ensure it works for real network conditions with latency, jitter, and limited packet loss. Tutorials and examples are provided within the thesis.