RE:NODE

Návody10 min čtení

Kontrolní seznam pro den aktualizace herního serveru

Kontrolní seznam na den, kdy hra dostane patch: nejdřív záloha, kontrola modů a pluginů, aktualizace přes SteamCMD, test, informování hráčů a čistý návrat zpět, když se něco rozbije.

1 čtenář

Když hra dostane patch, bezpečné pořadí je vždy stejné: udělej zálohu dřív, než se serveru cokoli dotkne, zjisti, jestli tvoje mody nebo pluginy fungují na nové verzi, aktualizuj soubory serveru, spusť ho a ověř, že opravdu načte tvůj svět, a teprve potom řekni hráčům, že je hotovo. Na vanilla serveru to zabere patnáct minut. U modovaného to může znamenat čekat den na autory modů a těžké je odolat nutkání aktualizovat stejně, protože se hráči ptají. Tento seznam prochází každý krok, pořadí, které ti nepřipraví o svět, a způsob, jak se vrátit zpět, když aktualizace dopadne špatně.

Proč v den patche servery padají#

Téměř každá multiplayerová hra vyžaduje, aby klient i server běžely na stejném buildu. Když Steam aktualizuje klienty hráčů, nemohou se připojit na server, který zůstal na starém - vidí „version mismatch“, „server is outdated“ nebo se prostě nepřipojí. Tlak na aktualizaci serveru tak začíná ve chvíli, kdy patch vyjde.

Aktualizace serveru ale může rozbít tři věci, které aktualizace klienta nerozbije:

  • Mody a pluginy, které zasahují do herního kódu. Frameworky jako BepInEx, Oxide a Carbon, SourceMod a Metamod, CounterStrikeSharp, RocketMod a pluginy pro Paper závisejí na interním herním kódu, který patche mění. Dokud je jejich autoři nedohoní, shazují server, nenačtou se, nebo - nejhorší případ - načtou se a tiše poškozují data.
  • Save. Některé patche při prvním načtení migrují formát světa. Jakmile nový server do savu zapsal, starý server ho může odmítnout přečíst, a z neúspěšné aktualizace se tak stává ztracený svět, pokud jsi předtím nezálohoval.
  • Konfigurační soubory. Nové verze přidávají, přejmenovávají nebo odstraňují nastavení. Server může nastartovat s výchozími hodnotami pro přejmenovaný klíč a běžet s nastavením, které sis nezvolil, aniž by to ohlásil chybou.

Zbytek článku je o tom, jak tyto tři věci pohlídat.

Než patch dorazí#

Nejlepší dny aktualizace jsou ty, které se připravují dřív, než patch existuje.

Vědět, jak hra oznamuje aktualizace. Rust dělá force wipe a aktualizaci první čtvrtek každého měsíce; většina her zveřejňuje poznámky k patchi na Steam news krátce před vydáním nebo po něm; vydání Minecraftu přicházejí se snapshoty a pre-release verzemi týdny předem. Sleduj oznamovací kanál hry a kanály svých klíčových modů.

Vypni automatické aktualizace na modovaných serverech. Na vanilla serveru je aktualizace při každém restartu pohodlná a většinou bezpečná. Na modovaném znamená, že první plánovaný restart po patchi nainstaluje verzi, kterou tvoje mody nepodporují. Většina panelů a startovacích skriptů má přepínač automatické aktualizace; u modovaných serverů patří vypnutý a aktualizace se dělají ručně. Kdy je automatizace bezpečná, popisuje Automatizace aktualizací herních serverů.

Veď si seznam toho, co je nainstalováno. Názvy modů, verze a odkud pocházejí. Když patch dorazí, musíš zkontrolovat každý z nich a z paměti ti unikne přesně ten, který se rozbije.

Měj testovací server, pokud je komunita dost velká, aby ho potřebovala. Kopie produkce na vlastním malém tarifu ti umožní aktualizaci nejdřív vyzkoušet. Jak malý může být, popisuje Testovací server vedle produkčního.

Kontrolní seznam#

V den aktualizace v tomto pořadí:

  1. Přečti poznámky k patchi. Hledej slova jako „save“, „world“, „format“, „server“, „config“ a „breaking“. Balanc patch a migrace savu jsou dva různé dny.
  2. Zkontroluj mody a pluginy. Podívej se na stránku každého klíčového z nich, na GitHub releases nebo Discord. Napsal autor, že funguje na nové verzi, nebo vydal aktualizaci? Pokud klíčový mod není aktualizovaný, tady skonči a řekni to hráčům.
  3. Řekni hráčům, co se děje. Krátká zpráva: patch vyšel, server se aktualizuje v tolik hodin, nebo počká na mody. Hráči zpoždění s vysvětlením zvládají mnohem líp než ticho. Formulace, které fungují, má Oznamování údržby a výpadků.
  4. Zastav server čistě. Čisté zastavení uloží svět. Zabití procesu ne.
  5. Udělej zálohu teď. Ne včerejší - takovou, která vznikla po čistém zastavení, takže obsahuje nejnovější stav. Pokud to hosting umožňuje, zamkni ji proti rotaci, aby ji týden plánovaných záloh nevytlačil.
  6. Poznamenej si aktuální build. Build id z logu serveru nebo ze SteamCMD (app_status <appid> ho ukáže). Potřebuješ ho pro návrat zpět.
  7. Aktualizuj soubory serveru. Přes volbu aktualizace nebo přeinstalace v panelu, nebo přes SteamCMD s app_update <appid> validate.
  8. Aktualizuj mody a pluginy na verze, které podporují nový build.
  9. Porovnej konfigurační soubory. Pokud aktualizace dodala nové výchozí konfigurace, porovnej je pomocí diffu s těmi svými kvůli novým nebo přejmenovaným klíčům.
  10. Spusť a čti log. Sleduj ho až po řádek „ready“. Hledej chyby od loaderů modů, hlášku „creating new world“ (znamená, že nenašel tvůj svět) a varování o neznámých nastaveních.
  11. Připoj se a zkontroluj. Přihlas se, podívej se na známou základnu nebo stavbu, zkontroluj inventář, spusť admin příkaz. Pět minut kontroly je lepší než večer hlášení od hráčů.
  12. Řekni hráčům, že server běží.

Odhalení změn v konfiguraci

Krok 9 je ten, který lidé přeskakují, a způsobuje nejtišší problémy. Hry se změněnou konfigurací nakládají jedním ze tří způsobů: přidají nový klíč s výchozí hodnotou a tvůj soubor nechají být, přepíšou tvůj soubor čerstvou výchozí verzí (vzácné a nepříjemné), nebo přečtou tvůj starý soubor, klíč, který už neznají, ignorují a pokračují. V posledním případě server nastartuje, nic si nestěžuje a nastavení, na které ses spoléhal, tiše přestalo fungovat.

Levná obrana je schovat si kopii každého konfiguračního souboru, který jsi měnil, před aktualizací a po ní je porovnat. Většina správců souborů v panelech umožňuje stáhnout soubor jedním kliknutím; na vlastním stroji porovnání zvládne diff:

bash
$ diff -u serverconfig.xml.before serverconfig.xml

Ve výstupu hledej tři věci: klíče, které zmizely, klíče, které se objevily s výchozími hodnotami, jaké bys nezvolil, a změněné formáty hodnot (číslo, které se stalo slovem, seznam, který se stal blokem). Potom v poznámkách k patchi nebo ve výchozí konfiguraci hry zjisti, co nové klíče dělají. Pět minut takové práce po každém větším patchi zachytí hlášení „proč je od úterý špatný loot“ dřív, než ho někdo napíše.

Aktualizace přes SteamCMD#

U serverů distribuovaných přes Steam je samotná aktualizace jeden příkaz. Na vlastním stroji:

bash
$ steamcmd +force_install_dir /home/game/server +login anonymous \    +app_update 896660 validate +quit

validate zkontroluje každý soubor proti manifestu Steamu a nahradí cokoli, co se liší. To je dobré pro opravu poškozené instalace a špatné pro cokoli, co jsi upravil uvnitř herních složek - ty úpravy se vrátí. Konfiguraci drž v souborech a složkách, které hra považuje za tvé, ne zadrátovanou do dodaných souborů.

Potom ověř, že se build změnil:

bash
$ steamcmd +force_install_dir /home/game/server +login anonymous \    +app_status 896660 +quit

Hry, které místo anonymního přihlášení potřebují skutečný Steam login (Arma 3, DayZ a některé další), vyžadují účet, který hru vlastní. V panelu je aktualizace obvykle přeinstalace nebo restart se zapnutým přepínačem aktualizace; panel pod tím spouští stejný příkaz SteamCMD. Přepínače a chyby popisuje SteamCMD vysvětlený.

Hry mimo Steam

Ne všechno se aktualizuje přes Steam:

HraJak se server aktualizuje
Minecraft (Paper)Stáhni nový build Paperu pro cílovou verzi
FiveMNahraď artefakty serveru novějším buildem
TerrariaStáhni nový zip dedikovaného serveru
FactorioNový headless build z factorio.com
BeamMPNové vydání serveru od projektu BeamMP

Každá má vlastní rytmus. Minecraft je extrém: nová verze může znamenat čekat týdny na Paper a pluginy a mnoho serverů záměrně zůstává o verzi pozadu a pomocí ViaVersion umožňuje připojení novějším klientům. Tuto cestu popisuje Upgrady verzí Minecraftu a doporučené buildy FiveM Aktualizace serveru FiveM a artefakty.

Když mody nejsou připravené#

Tohle je rozhodnutí, které určuje den patche na modovaném serveru. Máš tyto možnosti:

Počkat. Nech server na starém buildu. Hráči s aktualizovanými klienty se nepřipojí, dokud se server neaktualizuje, takže je fakticky nedostupný, ale svět a mody jsou v bezpečí. U populárních modů čekání často trvá den nebo dva. Buď k hráčům upřímný.

Zůstat na staré verzi přes beta větev. Některé hry zveřejňují předchozí buildy jako Steam beta větve - 7 Days to Die tak drží dostupné starší hlavní verze a Valheim měl veřejnou testovací větev. Hráči si mohou přepnout klienta na stejnou větev a všichni pokračují. Funguje to jen tam, kde to vývojář nabízí, a názvy větví se mění; vypisují je oznámení hry. Jak větev vybrat, popisuje App ID ve SteamCMD a beta větve a co jde a nejde zafixovat, vysvětluje Fixace verzí a návrat zpět u herních serverů.

Aktualizovat bez rozbitých modů. Vypni mody, které nejsou připravené, aktualizuj a jeď se zbytkem. Bezpečné jen u modů, které do světa nic nepřidávají - filtr chatu nebo prohlížeč mapy. Odstranění modu, který přidal předměty, bloky nebo tvory, je může ze světa smazat nebo zabránit jeho načtení.

Aktualizovat stejně. Občas mod funguje, i když není označený jako aktualizovaný. Vyzkoušej to na kopii, nikdy ne na jediném světě, který máš.

Špatná odpověď je ta nejčastější: aktualizovat všechno najednou, protože hráči jsou netrpěliví, zjistit, že server při startu padá, a pak to opravovat pod tlakem. Pro případ, že se to už stalo, je tu průvodce Co dělat, když aktualizace modu rozbije server.

Návrat zpět#

Pokud aktualizace dopadla špatně, potřebuješ dvě věci: starý build hry a save z doby před aktualizací. Záloha z kroku 5 obsahuje save. Starý build je těžší:

  • Na Steamu jsou staré buildy dostupné jen přes beta větve, které vývojář zveřejní, nebo stažením konkrétního manifestu depotu příkazem download_depot - jde to, je to pracné a ne každý panel to nabízí.
  • Některé panely a zálohy zahrnují celou složku serveru, včetně herních souborů. Obnova takové zálohy vrátí starý build i save, což je nejjednodušší návrat zpět, jaký existuje.
  • U her mimo Steam si archiv předchozího buildu nech, dokud nový týden čistě neběží.

Ať zvolíš jakoukoli cestu, obnov obojí společně. Starý server se savem, který už nová verze zmigrovala, ho může odmítnout načíst, a nový server se starým savem ho může zmigrovat znovu. Zálohy, které se opravdu obnoví a Vyzkoušej obnovu dřív, než ji budeš potřebovat jsou důvod, proč krok 5 není volitelný.

noyesbrokenPatch releasedMods ready?read notes, check authorsWait or pintell playersClean stopworld savedBackuplockedUpdate and startread the logRestore backupif it fails
Den patche bez ztráty světa

Po aktualizaci#

Záleží i na dni poté.

  • Hlídej pomalá selhání. Některé rozbití se ukáže jen pod zátěží nebo po několika hodinách: paměť roste rychleji než dřív, pád při načtení určité oblasti, předmět, který zmizí po opětovném přihlášení. Přečti si logy druhý den ráno.
  • Nech zálohu před aktualizací zamčenou alespoň týden, dokud si nejsi jistý, že se nic nepokazilo.
  • Aktualizuj seznam modů o nové verze, aby příště začínal z přesného záznamu.
  • Obnov plán. Pokud jsi při práci vypnul plánované restarty nebo zálohy, zapni je zpět. Které úlohy obnovit, vypisuje Plánované úlohy, které stojí za to mít.
  • Poznamenej si, co se pokazilo. Pokud na aktualizaci modu trvalo týden, zvaž, jestli na něm chceš záviset. Pokud byl průběh aktualizace bolestivý, zapiš si kroky, které fungovaly, na příští měsíc.

FAQ#

Proč se po aktualizaci hry nikdo nemůže připojit na můj server?

Protože se klienti aktualizovali a server ne, takže verze nesedí. Zastav server, zálohuj ho, aktualizuj soubory serveru a spusť ho znovu. Pokud používáš mody, nejdřív zkontroluj, že podporují novou verzi.

Mám na herním serveru zapnout automatické aktualizace?

Na vanilla serveru je rozumné aktualizovat při každém restartu. Na modovaném je to riskantní, protože první restart po patchi nainstaluje verzi, kterou tvoje mody nemusí podporovat. Modované servery aktualizuj ručně, po kontrole.

Jak dlouho mám čekat na aktualizaci modů?

Oblíbené, aktivně udržované mody se často aktualizují do dne nebo dvou. Menší mohou trvat týdny nebo se neaktualizují vůbec. Pokud mod, na kterém závisíš, není po týdnu stále aktualizovaný, počítej s tím, že pojedeš bez něj.

Můžu zůstat na staré verzi hry?

Jen pokud vývojář zveřejňuje staré buildy jako Steam beta větve, nebo pokud sis ponechal staré soubory. Hráči si také musí na klientech přepnout na stejnou větev. Mnoho her nenabízí cestu zpět vůbec.

Musím po aktualizaci wipovat svět?

Obvykle ne. Většina aktualizací existující světy načte bez problémů. Některé velké aktualizace doporučují nebo vyžadují nový svět, aby se vygeneroval nový obsah, a několik jich vynutí wipe. Poznámky k patchi to uvádějí, když na tom záleží.


Komentáře

Zcela anonymně: žádný účet, žádný e-mail, žádné cookie. Ukládáme jen jméno, které napíšeš, text a čas - nic dalšího. Počet odkazů je omezený a značkování se nevykresluje.

0/2000