GameNewt - framework pro replikaci stavu v multiplayer hrách s využitím determinismu
GameNewt - framework for determinism-based state replication in multiplayer games
bakalářská práce (OBHÁJENO)

Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/193005Identifikátory
SIS: 267104
Kolekce
- Kvalifikační práce [11326]
Autor
Vedoucí práce
Oponent práce
Šimůnek, Petr
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Informatika se specializací Počítačová grafika, vidění a vývoj her
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
5. 9. 2024
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Čeština
Známka
Výborně
Klíčová slova (česky)
netcode|herní knihovna|rollback netcode|determinismus|.NETKlíčová slova (anglicky)
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.