RE:NODE

Návody11 min čtení

Dedikovaný server Astroneer: nastavení a porty

Provozuj dedikovaný server Astroneer: instalace, všechny klíče v AstroServerSettings.ini, port 8777, PublicIP, owner a whitelist, přenos savu a chyby při připojení.

3 čtenáři

Dedikovaný server Astroneer je bezplatný program pro Windows (Steam app 728470, anonymní stažení), který provozuje jeden save pro až osm hráčů. Konfiguruje se dvěma soubory v Astro/Saved/Config/WindowsServer/: Engine.ini, který drží port hry (ve výchozím stavu 8777 UDP), a AstroServerSettings.ini, který drží všechno ostatní - název, heslo, vlastníka, veřejnou IP, intervaly ukládání a seznam hráčů. Jediné nastavení, které rozbije většinu prvních pokusů, je PublicIP: server se u backendu hry registruje právě pod touto adresou, a pokud je špatná, server se buď nezobrazí, nebo se na něj nedá připojit. Nastav ji na adresu, na kterou se hráči skutečně připojí, otevři UDP 8777 a zbytek jsou detaily.

Jak fungují dedikované servery Astroneer#

Multiplayer v Astroneeru existuje ve dvou podobách. Hostovaná hra běží na počítači jednoho hráče a existuje jen, dokud hraje. Dedikovaný server provozuje save sám, takže kdokoli z party může hrát kdykoli a dlouho běžící automatizace jede dál.

Několik věcí je specifických právě pro Astroneer:

  • Maximálně osm hráčů. MaximumPlayerCount nemá smysl nastavovat nad 8.
  • Jen Windows. Server je AstroServer.exe. V Linuxu běží přes Wine, což mnoho lidí úspěšně používá, ale není to podporované a aktualizace ho občas rozbijí.
  • Registr serverů. Server nepoužívá klasický seznam master serverů Steamu. Registruje se u online backendu hry a hráči si ho přidávají do seznamu serverů podle adresy. Proto je PublicIP tak důležité.
  • Jen PC. Dedikované servery jsou pro hráče na PC ze Steamu a Microsoft Store. Konzolisté používají hostované sessions.

Existuje také známý komunitní nástroj AstroLauncher, který server na Windows obaluje. Spravuje konfigurační soubory, obstarává restarty a zálohy, kontroluje nastavení sítě a přidává malé webové rozhraní. Není oficiální, ale opraví dost drsných hran serveru, takže ho většina Astroneer serverů provozovaných na Windows používá. Na herním panelu tutéž roli hraje panel, takže ho tam nepotřebuješ.

Dedikovaný server, nebo hostovaná session?

Pro dva kamarády, kteří hrají vždy spolu, je hostovaná session v pořádku: kdo hostuje, spustí hru, druhý se připojí a save leží na počítači hostitele. Potíže začnou, když parta roste nebo se rozcházejí rozvrhy. Save je dostupný jen, když je hostitel online, snímková frekvence hostitele se dělí se simulací a když hostitel odejde, všichni ostatní vypadnou. Přenést save na jiného hráče znamená ručně kopírovat soubory.

Dedikovaný server každý z těchto problémů řeší. Save leží na stroji, který běží pořád, kdokoli z party se může přihlásit v jakoukoli hodinu a navázat na projekt a nikomu svět nezatěžuje počítač. Mění to i to, jakou hrou Astroneer je: automatizace, která běží jen v přítomnosti někoho - pece, výzkumné komory, obchodní platformy - může zůstat v provozu, zatímco se o ni stará jeden hráč, takže postup nečeká na celou partu.

Co se nemění, jsou limity hry. Osm hráčů je pořád strop, formát savu je stejný a server si s velkými automatizovanými základnami nevede lépe než výkonný herní PC. Pokud už tvoje hostovaná hra škube u obří základny, dedikovaný server s podobnou taktovací frekvencí bude škubat také. Přínosem je dostupnost a férovost mezi hráči, ne surový výkon.

Provoz pod Wine v Linuxu

Protože je server spustitelný soubor pro Windows, hosting na Linuxu znamená spouštět ho přes Wine. Tak ho provozuje mnoho hostingů s panelem i komunitních kontejnerových obrazů a pro soukromou partu to obvykle stačí. Než se rozhodneš, stojí za to znát nevýhody:

  • Aktualizace mohou nastavení rozbít. Aktualizace hry, která změní něco, s čím si Wine neporadí, může způsobit selhání serveru při startu, dokud se neaktualizuje verze Wine nebo obraz kontejneru.
  • Řešení potíží je těžší. Chybové zprávy procházejí další vrstvou a oficiální podpora počítá s Windows.
  • Výkon je blízký nativnímu u serveru této velikosti, takže to málokdy bývá důvod se tomu vyhnout.

Pokud potřebuješ co nejpředvídatelnější nastavení, bezpečnou cestou je stroj s Windows, který ovládáš - například VDS; volba mezi VDS a herním panelem zvažuje další administraci proti kontrole, kterou získáš.

Požadavky a využití zdrojů#

Server Astroneeru je zpočátku lehký a roste spolu se savem. Velké automatizované základny s dlouhými řetězci skladů připomínajícími dopravníky, mnoha rovery a rozsáhlými terraformovanými oblastmi zvyšují během týdnů nároky na paměť i CPU.

SaveRAMCPUPoznámky
Nový save, 1-4 hráči2-3 GB1-2 jádraPohodlný začátek
Střední fáze hry, 4-8 hráčů3-4 GB2 jádraNěkolik základen, rovery
Pozdní hra, silná automatizace4-6 GB2+ rychlá jádraVelké změny terénu, mnoho předmětů
  • CPU: simulace a fyzika se opírají o jedno hlavní vlákno, takže záleží na taktovací frekvenci. MaxServerFramerate omezuje, jak naplno běží (viz níže).
  • Disk: server se instaluje na několik gigabajtů. Savy začínají na pár megabajtech a rostou na desítky megabajtů; s automatickými zálohami mu dej 10 GB.
  • Síť: skromná šířka pásma, ale latence se projeví jako skákání roverů a zpožděné sbírání předmětů. Latence, jitter a ztráta paketů popisuje, jak je od sebe rozlišit.

Instalace a první spuštění#

Se SteamCMD ve Windows:

bash
$ steamcmd +force_install_dir C:\astro-server +login anonymous +app_update 728470 validate +quit

SteamCMD vysvětleno popisuje cyklus aktualizací a validate. Spusť AstroServer.exe jednou, nech ho plně nastartovat a pak ho zastav. Toto první spuštění vytvoří složku Astro\Saved\Config\WindowsServer se soubory Engine.ini a AstroServerSettings.ini a složku SaveGames.

Postup, který funguje:

  1. Spusť server jednou, aby se vygenerovaly konfigurační soubory.
  2. Zastav ho.
  3. Nastav port v Engine.ini a nastavení v AstroServerSettings.ini, včetně PublicIP a OwnerName.
  4. Otevři UDP 8777 (nebo zvolený port) na každém firewallu mezi serverem a internetem.
  5. Spusť server a nech se jako první připojit vlastníka.

Engine.ini: port#

Port hry je v Engine.ini, ne v nastavení serveru:

Astro/Saved/Config/WindowsServer/Engine.ini
[URL]Port=8777

Změň ho jen tehdy, když ti hosting přidělil jiný port nebo provozuješ na jednom stroji více serverů. Port je UDP. Pokud ho změníš, musí všichni hráči při přidávání serveru použít nové číslo.

Starší návody také radí přidat do Engine.ini blok [SystemSettings] s net.AllowEncryption=False - a v některých verzích i do Engine.ini hráčů - na opravu selhávajících připojení. U některých buildů to byl skutečný workaround; u současných buildů je obvykle zbytečný, ale zůstává jednou z prvních věcí, které komunita navrhne, když správně nakonfigurovaný server pořád odmítá spojení.

AstroServerSettings.ini, klíč po klíči#

Soubor obsahuje jedinou sekci. Typická upravená verze:

Astro/Saved/Config/WindowsServer/AstroServerSettings.ini
[/Script/Astro.AstroServerSettings]bLoadAutoSave=TrueMaxServerFramerate=30.000000MaxServerIdleFramerate=3.000000bWaitForPlayersBeforeShutdown=FalsePublicIP=203.0.113.10ServerName=Exo Dynamics AnnexMaximumPlayerCount=8OwnerName=NovaPilotOwnerGuid=PlayerActivityTimeout=0ServerPassword=a-long-join-passwordbDisableServerTravel=FalseDenyUnlistedPlayers=FalseVerbosePlayerProperties=TrueAutoSaveGameInterval=900BackupSaveGamesInterval=7200ActiveSaveFileDescriptiveName=SAVE_1ConsolePort=1234

K čemu které nastavení slouží:

NastaveníVýchozí hodnotaK čemu slouží
PublicIPprázdnéAdresa registrovaná u backendu; musí být dosažitelná
ServerNameobecnýNázev zobrazený v seznamu serverů
ServerPasswordprázdnéHeslo pro připojení
OwnerNameprázdnéZobrazované jméno vlastníka na Steamu
OwnerGuidprázdnéVyplní se, když se vlastník poprvé připojí
MaximumPlayerCount8Počet míst, nejvýše 8
MaxServerFramerate30Strop frekvence simulace při hráčích online
MaxServerIdleFramerate3Strop frekvence, když nikdo není online
AutoSaveGameInterval900Sekundy mezi automatickými uloženími
BackupSaveGamesInterval7200Sekundy mezi zálohovými kopiemi savu
DenyUnlistedPlayersFalseTrue udělá ze serveru whitelist-only
ActiveSaveFileDescriptiveNameSAVE_1Který save server načte
PlayerActivityTimeout0Vyhodí nečinné hráče po tolika sekundách; 0 znamená nikdy
ConsolePort1234Lokální port vzdálené konzole používaný nástroji

PublicIP

Nastav ji na adresu, kterou hráči používají k připojení k serveru - na pronajatém serveru adresu zobrazenou v panelu. U domácího serveru za routerem je to tvoje veřejná internetová adresa, ne adresa 192.168.x.x počítače. Pokud se mění (domácí připojení to často dělají), server zaregistruje špatnou adresu a hráči se nemohou připojit, dokud ji neaktualizuješ. Hostované servery tenhle problém nemají, což je jeden z poctivých argumentů popsaných v domácí self-hosting herního serveru vs pronájem.

Owner, admini a whitelist

OwnerName je zobrazované jméno na Steamu osoby, která má server vlastnit. Když se hráč s tímto jménem poprvé připojí, server zapíše jeho ID do OwnerGuid a od té chvíle je vlastníkem tento účet, ať se jeho jméno změní jakkoli.

Vlastník spravuje všechny ostatní zevnitř hry v seznamu hráčů serveru: povyšuje hráče na adminy, dává je na whitelist, vyhazuje a blokuje. Server je zapisuje do souboru nastavení jako záznamy hráčů s kategorií - Owner, Admin, Whitelisted, Blacklisted nebo Unlisted. DenyUnlistedPlayers=True pak ze serveru udělá whitelist: připojit se mohou jen hráči, kteří už jsou v seznamu. Obvyklý postup pro soukromou partu je nechat ho False, nechat se jednou připojit všechny, aby se objevili v seznamu, dát je na whitelist a pak přepnout na True.

Nastavení frekvence

MaxServerFramerate omezuje, kolikrát za sekundu server simuluje, dokud jsou hráči online. Výchozích 30 je pro většinu savů v pořádku. Zvýšení může vyhladit hru náročnou na fyziku, ale stojí úměrně CPU a přínos je malý. MaxServerIdleFramerate je frekvence, když nikdo online není; nízká hodnota znamená, že prázdný server CPU téměř nezatěžuje. Pokud chceš, aby automatizace běžela přes noc plnou rychlostí, idle frekvenci zvyš, ale počítej s tím, že se save mění, aniž by ho někdo sledoval.

Porty a připojení#

PortProtokolÚčel
8777UDPHerní provoz, nastavuje se v Engine.ini
1234TCPLokální konzole pro nástroje správy; nevystavuj

Astroneer potřebuje do internetu otevřený jen jeden herní port. Port konzole je pro nástroje na stejném stroji nebo v téže síti - není důvod ho přesměrovávat a vystavený port správy je pozvánka. Porty herních serverů vysvětleně popisuje obecný rozdíl mezi herními porty a porty správy.

K připojení hráč otevře seznam serverů ve hře, přidá server s adresou a portem (203.0.113.10:8777) a objeví se mu v seznamu s názvem a stavem. Heslo se zeptá při připojení. Pokud je server pro všechny uveden jako nedostupný, problém je téměř vždy v PublicIP nebo ve firewallu.

Přenos lokálního savu na server#

Savy z hry jednoho hráče i z hostovaných session lze přenést na dedikovaný server. Lokální savy při instalaci ze Steamu leží v:

code
%LOCALAPPDATA%\Astro\Saved\SaveGames\

Postup:

  1. Zastav server.
  2. Zkopíruj požadovaný soubor .savegame do složky serveru Astro\Saved\SaveGames - SFTP a správce souborů popisuje, jak dostat soubory na hostovaný server.
  3. Názvy souborů savů nesou popisný název následovaný znakem $ a časovým razítkem. Nastav ActiveSaveFileDescriptiveName na část před $.
  4. Spusť server a v logu ověř, že načetl právě tento save, a nevytvořil nový.

Pokud server místo toho vytvoří nový save, popisný název se neshodoval. Podívej se na přesný název souboru včetně velkých písmen a zkus to znovu. Původní soubor tam pořád je - nic se neztratilo.

Savy, zálohy a aktualizace#

Astroneer automaticky ukládá každých AutoSaveGameInterval sekund (ve výchozím stavu 15 minut) a zálohovou kopii dělá každých BackupSaveGamesInterval sekund (ve výchozím stavu dvě hodiny), obojí do téže složky SaveGames. Čisté zastavení nejdřív uloží; zabitý proces ztratí všechno od posledního automatického uložení.

Tyto vestavěné zálohy chrání před poškozením savu, ne před ztrátou serveru nebo smazáním špatné složky. Kopíruj savy mimo stroj podle plánu a občas jeden obnov, abys ověřil, že funguje - zálohy, které se opravdu obnoví vysvětluje, proč je právě tato kontrola smyslem.

Aktualizace: po patchi hry musí být server aktualizován dřív, než se mohou připojit aktualizovaní klienti. Aktualizuj přes SteamCMD, spusť server a zkontroluj, že načte existující save. Před každou aktualizací udělej zálohu; u velkých aktualizací se stávalo, že změnily zacházení se savy.

Snížení AutoSaveGameInterval na 300 sekund omezí, co stojí pád na vytíženém savu. Zadrhnutí při ukládání je u malých savů krátké a znatelné bývá až v pozdní hře.

Na RE:NODE jsou sloty záloh součástí každého herního tarifu, ukládají se mimo stroj, který chrání, a obnovují se tlačítkem, a záložka Schedules umí před restartem spustit zálohu. Server Astroneeru je jen pro Windows a není v katalogu, takže toto popisuje panel, ne tarif pro Astroneer.

Řešení potíží#

Server se v seznamu nezobrazuje jako online. PublicIP je špatná nebo prázdná, nebo je zavřený UDP 8777. Zkontroluj obojí dřív než cokoli jiného.

Hráči uvíznou na „Connecting“ a vyprší jim čas. Obvykle je port otevřený pro TCP místo UDP, nebo port v Engine.ini neodpovídá tomu, co jsi otevřel. Další věcí k vyzkoušení je výše popsaný workaround s šifrováním.

Vlastník nemá práva. OwnerName se neshodovalo se zobrazovaným jménem na Steamu, když se poprvé připojil, takže mohl být zapsán někdo jiný, nebo nikdo. Zastav server, smaž špatné OwnerGuid, nastav jméno přesně a nech se jako prvního připojit vlastníka.

Server načte nový svět místo nahraného savu. ActiveSaveFileDescriptiveName se neshoduje s názvem souboru před $.

Nastavení se po restartu vrátí. Upravoval jsi za běhu serveru. Zastav, uprav, spusť.

Rovery a předměty skáčou. CPU na limitu nebo latence. Zkontroluj graf CPU pod zátěží; u savu v pozdní hře pomůže snížit automatizaci nebo rozdělit základny víc než cokoli v konfiguraci. Viz CPU vs RAM u herních serverů.

FAQ#

Kolik hráčů pojme dedikovaný server Astroneer?

Osm. Hra je na toto číslo navržená a nastavení serveru nemá smysl dávat výš.

Mohou se na dedikovaný server připojit hráči z Xboxu nebo PlayStationu?

Ne. Dedikované servery jsou pro hráče na PC ze Steamu a Microsoft Store. Konzolisté používají hostované sessions.

Běží server Astroneer na Linuxu?

Jen pod Wine. Mnoha lidem to funguje, ale není to podporované a aktualizace už nastavení s Wine rozbily. Windows je spolehlivá volba.

Jaký je rozdíl mezi intervalem automatického uložení a zálohy?

Automatické uložení zapíše aktuální save; interval zálohy ho zkopíruje do samostatného zálohovacího souboru. Obojí zůstává ve stejné složce, takže ani jedno nenahrazuje zálohy uložené jinde.

Potřebuji AstroLauncher?

Na herním panelu ne, ten už start, zastavení, restarty a zálohy obstarává. Na samostatně spravovaném serveru s Windows je užitečný, protože automatizuje právě tyto povinnosti a kontroluje nastavení sítě.


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