Koncepty a triky real-time her více hráčů

Koncepty a triky real-time her více hráčů

Letos včetně ručně malovaných SVG diagramů

Ondřej Žára, @0ndras

Motivace

Everything is awesome

Motivace

Worst

Plán přednášky

#1: autoritativní server

Autoritativní server

Distribuce vstupů

Chytrý klient

Od chytrého klienta vyžadujeme:

Distribuce stavu

Autoritativní server: je nutný?

#2: synchronizace času

Synchronizace času

Server: T2 Client: T1 T3 L L

Synchronizace času

O kolik se liší čas na serveru?

  1. Klient pošle žádost o odpověď a poznamená si svůj T1
  2. Server pošle odpověď a doplní ji o svůj čas T2
  3. Klient přijme odpověď v čase T3
  4. One-way latence je L = (T3−T1) / 2
  5. V čase T3 bylo na serveru T2+L ⇒ známe rozdíl hodin

Synchronizace času

#3: zpoždění na klientu

Extrapolace (dead reckoning)

Extrapolace

TN TN-1 TN+L

Interpolace

Interpolace

T−1 T+1 TN T client delay

Interpolace

#4: zpoždění na serveru

Lag compensation

#5: okamžitý feedback

Client-side prediction

Užitečné odkazy a zdroje

Prostor pro otázky