The Last Spike Online / 2026. július 15.
Online társasjátéknál a böngésző nem lehet a bíró
A multiplayer átállásnál a legfontosabb döntés az volt, hogy a szerver legyen az autoritatív játékállapot gazdája. A kliensek szándékot küldenek, nem kész igazságot.
A helyzet
Lokális játékban természetes, hogy a kliens kezeli a teljes állapotot. Online szobánál viszont két böngésző ugyanabban a pillanatban mást hihet a körről, a pénzről vagy egy rejtett kártyáról. Ha a kliensek egymás állapotát próbálják szinkronizálni, hamar megjelenik a versenyhelyzet és a csalható protokoll.
A megoldási út
A WebSocket szerver kapta az autoritatív state machine-t. A kliens parancsot küldött, a szerver validálta, alkalmazta a determinisztikus motoron, majd a jogosult nézetet broadcastolta. A reconnect és persisted room logikát is erre építettem, így egy újracsatlakozó játékos nem a saját régi memóriájából próbálta rekonstruálni a partit.
Mi lett belőle
A többjátékos működés stabilabb lett, és a későbbi hidden-information szűrésnek is lett egyértelmű helye. Ugyanaz a domain motor szolgálta a helyi, AI és online játékot, de az online igazság egyetlen szerveroldali állapotból származott.