RE:NODE

Veřejná testovací větev Valheimu na dedikovaném serveru

Text: Tým RE:NODE
12 min čtení


Chceš-li na dedikovaném serveru provozovat veřejný testovací build Valheimu, nainstaluj betu serveru public-test s heslem, které Iron Gate zveřejňuje - historicky yesimadebackups - do samostatné složky, nasměruj ji na kopii svého světa v samostatném adresáři se savy a nech každého testera přepnout vlastní hru na stejnou větev ve Steamu. Testovací a release servery se navzájem nevidí: hráč na testovacím buildu se nemůže připojit na normální server a naopak. Až test skončí, hráči se odhlásí z bety ve Steamu a ty se prostě vrátíš k nedotčené release instalaci. Jediné, co nikdy nedělej, je otevřít svůj skutečný svět na testovacím buildu, protože svět uložený novější verzí se na starší nemusí načíst.

Tento článek prochází celý cyklus: k čemu testovací větev je, instalaci přes SteamCMD, klient Steam, Docker nebo panel, nastavení jednorázové kopie světa, co se stane s mody a jak všechny vrátit ke stabilní verzi, aniž by o něco přišli.

Co je veřejná testovací větev#

Před velkou aktualizací dává Iron Gate build na betu ve Steamu zvanou public-test pro hráče, kteří ji chtějí vyzkoušet dřív a hlásit chyby. Test může běžet dny nebo týdny a build na něm se během té doby mění - někdy i několikrát týdně - než konečná verze půjde ke všem.

Pro server to znamená tři věci:

  • Verze se musí shodovat přesně. Testovací klient mluví jen s testovacím serverem stejného buildu, takže každá záplata testovací větve znamená aktualizovat server i všechny klienty.
  • Savy mohou změnit formát. Velká aktualizace může změnit, jak se zapisují světy a postavy. Jakmile je svět uložen testovacím buildem, release build ho může odmítnout nebo se s ním chovat divně, než aktualizace dorazí do release.
  • Nic není konečné. Obsah, vyvážení, generování světa v nových oblastech i chyby se mohou změnit. To, co postavíš v testu, může další testovací záplata znehodnotit.

Rada samotných Iron Gate je v heslu: nejdřív zálohuj. Testovací větve jsou pro zvědavost a pro ověření, že nastavení tvé party záplatu přežije - ne pro hraní hlavní kampaně.

Proč se majitel serveru namáhá

Dva dobré důvody. Zaprvé zjistit před release, jestli velká záplata nerozbije něco na tvém světě - základnu v nově změněném biomu, uzel portálů, silně terénně upravenou oblast. Zadruhé, a častěji, dát aktualizacím od autorů modů náskok: pokud tvá parta používá mody, testovací období je doba, kdy zjistíš, které se rozbijí, takže den vydání není překvapení. Špatný důvod je hrát nový obsah dřív s celou partou na svém skutečném světě. Tak končí světy zaseknuté na verzi, kterou nikdo nespustí.

Než začneš: zálohuj svět a postavy#

Udělej to i tehdy, když máš v úmyslu použít kopii, protože kopie vzniká z originálu a chyba v cestách může otevřít originál.

  1. Zastav release server čistě, aby byl svět na disku aktuální. Počkej na řádek o uložení v logu.
  2. Zkopíruj oba soubory světa - Name.db a Name.fwl - z worlds_local někam mimo složky serveru. Přibal i soubory .old, pokud chceš i předchozí uložení.
  3. Udělej úplnou zálohu svým obvyklým způsobem, ne jen kopii. V panelu je to záloha na požádání, ideálně zamčená, aby ji rotace nemohla odstranit.
  4. Řekni každému testerovi, ať si zálohuje postavy. Postavy žijí na stroji každého hráče, ne na serveru, a testovací klient je zapisuje ve formátu, který používá testovací build. Ve Windows jsou to soubory .fch v %USERPROFILE%\AppData\LocalLow\IronGate\Valheim\characters_local\, nebo ve Steam Cloudu v characters.

Zálohu postav lidé zapomínají. Kopie světa chrání svět; nic na serveru nechrání postavu hráče před uložením testovacím klientem. Kde leží savy na jednotlivých platformách, je v článku savedir a umístění souborů a důvody, proč mít obnovu, která opravdu funguje, jsou v článku zálohy serveru Valheim a poškození světa.

Instalace testovacího buildu serveru#

Dedikovaný server (896660) má vlastní bety, oddělené od bet herního klienta. Použij samostatný instalační adresář, aby se release instalace nikdy nedotkla.

Přes SteamCMD v Linuxu:

bash
$ steamcmd +force_install_dir /home/valheim/ptb \    +login anonymous \    +app_update 896660 -beta public-test -betapassword yesimadebackups validate \    +quit

Příznak -beta vybírá větev, -betapassword ji odemyká a validate zkontroluje každý soubor. Stejný řádek spusť znovu pro každou další testovací záplatu. Než název větve a heslo použiješ, ověř si je v oznámení Iron Gate k danému testu; jsou stabilní roky, ale změnit je může jen Iron Gate. Jak příznaky bet fungují napříč hrami, vysvětluje článek app ID a bety v SteamCMD.

Ve Windows s klientem Steam se dedikovaný server objeví v knihovně pod Tools jako „Valheim Dedicated Server“. Klikni pravým tlačítkem, otevři Properties, pak Betas, zadej kód a vyber public-test. Steam pak stáhne testovací build do stejné složky jako tvůj release server, což je přesně to, čemu se chceš vyhnout. Pokud jdeš touto cestou, nejdřív zkopíruj složku release serveru jinam, ať máš obojí, nebo nainstaluj testovací build přes SteamCMD do jeho vlastní složky.

U image Dockeru lloesche/valheim-server se dodatečné argumenty SteamCMD dávají do proměnné prostředí. Spusť druhý kontejner s vlastními svazky, místo abys přenastavoval ten hlavní:

ptb.env
SERVER_NAME=Ravenhold PTBWORLD_NAME=MidgardTestSERVER_PASS=spare-anvil-03SERVER_PUBLIC=falseSTEAMCMD_ARGS=-beta public-test -betapassword yesimadebackups validate

Název proměnné i její výchozí hodnota se za život image měnily, takže si je ověř v README toho image. Svazky pokrývá článek Valheim v Dockeru.

U hostingu s panelem je čistým řešením druhý server pro test, ne přepínání hlavního. Pokud instalace Valheimu v panelu má proměnnou pro betu nebo větev na záložce Startup, použij ji tam; pokud ne, možná půjde příkaz SteamCMD spustit samostatně, ale to závisí na hostingu. Na RE:NODE se před změnou větve svého hlavního serveru zeptej podpory; samostatný levný testovací server udrží tvůj skutečný svět zcela mimo dosah.

Testovací server na kopii světa#

Testovací server by měl být vlastní ostrov: vlastní instalace, vlastní adresář se savy, vlastní port a ideálně vlastní název světa.

bash
$ cd /home/valheim/ptb$ ./valheim_server.x86_64 -nographics -batchmode \    -name "Ravenhold PTB" -port 2466 -world "MidgardTest" \    -password 'spare-anvil-03' -public 0 \    -savedir /home/valheim/ptb-saves -logFile /home/valheim/logs/ptb.log

Před čím která volba chrání:

ArgumentProč
Samostatná instalační složkaBinárka release serveru zůstane na release buildu
-savedir do nové složkyTestovací server nemůže skutečný svět vidět ani přepsat
Jiný název v -worldI když je cesta špatně, nemůže odpovídat skutečným souborům
-port 2466Běží vedle release serveru, který si nechá 2456
-public 0Zůstane mimo seznam komunity; testeři se připojí adresou
Jiné hesloZabrání připojení na špatný server ze zvyku

Chceš-li použít kopii skutečného světa, přejmenuj zkopírovanou dvojici na název testovacího světa - Midgard.db se stane MidgardTest.db, Midgard.fwl se stane MidgardTest.fwl - a dej je do worlds_local uvnitř testovacího adresáře se savy. Pak spusť testovací server a v logu hledej Load world: MidgardTest. Pokud píše, že generuje nový svět, názvy souborů nesedí. Přejmenování dvojice funguje, protože se název světa z -world páruje s názvem souboru; pokud tvá verze ukládá název i dovnitř .fwl a stěžuje si, vytvoř testovací svět od nuly se stejným seedem.

Dva servery na jednom stroji potřebují oddělené porty a oddělené adresáře se savy a v nastavení s crossplay dostane každý vlastní join kód. Delší verze je v článku více světů na jednom hostiteli a počítání portů - každý server používá svůj port a ten o jedna vyšší - je v článku porty Valheimu 2456-2458.

Zkopíruj seznam adminů, pokud chceš mít na testovacím serveru práva admina: adminlist.txt, bannedlist.txt a permittedlist.txt leží v adresáři se savy, takže nový -savedir začíná bez nich.

Jak dostat testery na testovací build#

Každý tester přepne vlastní hru. Ve Steamu: pravým tlačítkem na Valheim, Properties, Betas, zadat kód, vybrat public-test. Steam stáhne testovací build a od té chvíle hra startuje na něm, dokud se nepřepne zpět.

Co by testeři měli vědět, než to udělají:

  • Nemohou se připojit na normální server, dokud jsou na testovacím buildu. Vyber testovací večer, místo abyste přepínali tam a zpět.
  • Musí zůstat aktuální. Když se testovací větev aktualizuje, Steam aktualizuje klienta a server je třeba aktualizovat také. Řádek o nesouladu verzí v logu vypíše obě čísla a řekne ti, která strana zaostává.
  • Hráči na konzolích a Game Pass se obvykle nepřipojí. Veřejné testy byly historicky na Steamu. Počítej s tím, že testovací server bude jen pro Steam, i když tvůj hlavní server běží s crossplay, a ověř si to v oznámení k testu, který provozuješ.
  • Postavy by se měly nejdřív zálohovat, nebo použít novou.

Pokud tester dostane „Incompatible version“, jeden z dvojice je na špatné větvi nebo o záplatu pozadu. Chybu obecně pokrývá článek aktualizace serveru a nesoulad verzí.

Mody na testovací větvi#

Samotný BepInEx obvykle záplatu hry přežije; mnohé mody nad ním ne. Veřejný test je nejlepší včasné varování, jaké dostaneš.

  1. Nainstaluj mody na testovací server a testovací klienty přesně jako v release nastavení. Pokud tvá parta používá profil r2modman, exportuj ho a pro test importuj kopii, aby release profil zůstal nedotčený - viz Thunderstore a r2modman pro party.
  2. Spusť server a přečti si výstup BepInEx. Pluginy, které se nenačtou, to při startu obvykle řeknou. Poznamenej si které.
  3. Zahraj si části, kterých se mody dotýkají. Mod se může načíst čistě a přesto se rozbít při použití své funkce - craftění, vlastní tvor, pravidlo portálu.
  4. Zkontroluj stránky modů a issue trackery. Autoři často zveřejňují stav vůči testovací větvi a někteří vydávají aktualizace zaměřené na testovací build ještě před release.

Výstupem je seznam: které mody fungují, které se rozbíjejí, u kterých čeká oprava. V den vydání ti tento seznam řekne, jestli release server aktualizovat hned, nebo ho nechat na staré verzi, dokud rozbité mody nedoženou. Obecný postup je v článku co dělat, když aktualizace modu něco rozbije.

Návrat ke stabilní verzi#

Pokud jsi dodržel radu se samostatnou instalací, není skoro co vracet. Release server se nikdy nezměnil; zastav testovací server a testeři se ve Steamu odhlásí z bety - Properties, Betas, vyberou „None“ nebo výchozí větev - a Steam stáhne release build. Pak se mohou připojit na release server jako dřív.

Pokud jsi instalaci přepnul na místě, vrať ji na výchozí větev přes SteamCMD:

bash
$ steamcmd +force_install_dir /home/valheim/server \    +login anonymous \    +app_update 896660 -beta public validate \    +quit

-beta public pojmenovává výchozí větev. SteamCMD se při přepínání zpět v průběhu let chovalo různě; pokud řádek s verzí serveru i po tomto stále ukazuje testovací build, smaž instalační složku (ne adresář se savy) a nainstaluj znovu bez jakéhokoli příznaku -beta. Instalace má asi 2 GB a trvá pár minut; svět v ní není.

Svět je těžší otázka. Vrácení binárky nevrací save:

  • Pokud se skutečný svět nikdy neotevřel na testovacím buildu, není co dělat.
  • Pokud ano, release build ho může odmítnout nebo načíst s problémy. Obnov zálohu pořízenou před testem. Postup udělaný během testu je ztracen; to je cena.
  • Pokud chceš postup z testovacího světa, musíš počkat, až aktualizace dorazí do release, a pak ten svět načíst na aktualizovaném release serveru. Soubory testovacího světa si do té doby bezpečně uchovej.

S postavami je to stejné. Postavu uloženou testovacím klientem lze znovu použít až tehdy, když release build dožene. Proto testeři při odchodu z testu obnovují své zálohy postav, nebo od začátku používají postavu jen pro test.

Až test skončí#

Když aktualizace jde do release, testovací větev ji obvykle následuje na stejnou verzi a testovací klienti se mohou obvykle znovu připojit na normální servery, jakmile jsou obě strany aktualizované. Nepředpokládej, že testovací svět může prostě nahradit tvůj hlavní: test mohl generovat nové oblasti podle raných pravidel a testovací záplaty mohly nechat objekty ve stavech, které release verze zpracuje jinak. Hlavní svět si nech, aktualizuj release server a testovací svět archivuj - nebo ho nech nějakou dobu běžet jako pískoviště, pokud se někomu líbil.

Na RE:NODE je druhý, malý server Valheim rozumné testovací pracoviště: zálohy jsou v každém plánu a obnovují se tlačítkem, zamčená záloha je během testu v bezpečí před rotací a konzole testovacího serveru ukazuje řádek s verzí, výstup BepInEx i join kód bez nutnosti přístupu k shellu. Až skončíš, smaž ho, a pamatuj, že smazáním serveru se smažou i jeho zálohy.

FAQ#

Jaké je heslo k veřejnému testu Valheimu?

Historicky yesimadebackups, pro větev public-test, pro hru i dedikovaný server. Iron Gate ho zveřejňuje s každým oznámením testu; před použitím si ověř aktuální, protože jeho změna je jejich věc.

Mohou se hráči na release verzi připojit na veřejný testovací server?

Ne. Klient a server musí být na stejném buildu a testovací build je jiná verze. Hráči musí ve Steamu přepnout hru na větev public-test, aby se připojili, a přepnout zpět, aby se připojili na normální servery.

Zničí testování můj svět?

Jen pokud skutečný svět otevřeš na testovacím buildu. Svět uložený novější verzí se na starším release buildu nemusí načíst. Testuj na kopii v samostatném adresáři se savy a skutečný svět se nikdy nedotkne.

Mohou s námi testovat hráči na Xboxu?

Veřejné testy byly historicky jen pro Steam, takže testovací server je obvykle jen pro PC, i když tvůj hlavní server běží s crossplay. Ověř si to v oznámení ke konkrétnímu testu.

Jak se po testování vrátím ke stabilní verzi?

Testeři vyberou výchozí větev na záložce Betas ve Steamu. Na serveru buď přepni zpět na nedotčenou release instalaci, nebo spusť app_update 896660 -beta public validate. Pak obnov zálohu světa před testem, pokud se skutečný svět otevřel na testovacím buildu.