Serveronderhoud zonder spelers eruit te gooien
Wat gebeurt er eigenlijk met de spelers als we de server moeten updaten? Het simpele antwoord zou zijn: stekker eruit. Wij bouwden het betere antwoord — en het is een van mijn favoriete functies, ook al merk je er idealiter bijna niets van.
De aankondiging. De server kan een onderhoudsbericht naar elke draaiende wereld sturen. In het spel verschijnt dan een banner met aftelling: “Serverherstart over 10 minuten.” Het bericht moet actief worden weggeklikt — maar pas na een paar seconden, zodat niemand het in het heetst van de strijd per ongeluk wegklikt.
De nette herstart. Als de aftelling afloopt, wordt de wereld ordelijk afgesloten: spelstatus opslaan, spelers wegsturen met een uitleggend afscheidsscherm (in plaats van een cryptisch “verbinding verbroken”), de container stoppen. Bij de volgende toegang wordt de wereld weer gewekt met de nieuwe versie — de opslag is er natuurlijk nog.
De techniek erachter: een beveiligd beheerderseindpunt accepteert aankondigingen — beschermd met een token dat alleen de server kent. Is er geen token ingesteld, dan staat de functie helemaal uit; een openstaand aankondigingseindpunt zou een uitnodiging voor kattenkwaad zijn. Voor beheerders zijn er bovendien chatcommando's direct in het spel en een knop per wereld in het beheerpaneel.
Een onverwacht bijeffect: sinds het systeem bestaat, doen we updates rustiger — en dus vaker. Goede onderhoudstools verbeteren niet alleen het onderhoud, ze verbeteren het hele project.
Opmerkingen