Jakby ktoś nie wiedział, Valheim to taka gierka sandboxowa w klimacie wikingowym :slight_smile:
Jakiś czas temu postawiłam serwer dla znajomych, jakiejś większej komplikacji przy tym nie ma. Zostawiam notatki, a nuż się komuś przydadzą :>
Nie jest to perfekcyjna instrukcja, zapewne da się coś ulepszyć. Gra też się rozwija, więc potrzebne zasoby traktujcie z przymrużeniem oka, obserwujcie zużycie przez htop.
1. Składniki
- VPS
- jakiś Linux na tym VPS
- trochę RAMu
- serwer nie potrzebuje dużych zasobów do działania
- ok. 4GB RAM styka na początek, jak się gra w większej grupie (testowane na 4 osobach) to już warto mieć zapas do tych 6GB RAM
- chodzi o zasoby potrzebne do startu, jak już wszystko wystartuje to ostatecznie serwer zużywa mniej, ładowanie mapy i graczy kosztuje :harold:
- podstawowa znajomość w linuxy
- gotowość do zaorania całości i postawienia od nowa jak zrobisz coś nie tak
2. Przygotowanie
2.1 Instalacja SteamCMD
Do tej operacji potrzebujemy być na koncie root. Po kolei wykonaj cztery komendy podane poniżej.
add-apt-repository multiverse
dpkg --add-architecture i386
apt update
apt install lib32gcc1 steamcmd Gdyby ktoś był ciekawy skąd taka a nie inna kombinacja komend to zapraszam do źródła.
2.2 Symlink
Symlink (skrót od symbolic link) to, najbardziej łopatologicznie rzecz ujmując, skrót do pliku. Tylko taki linuxowy.
Żeby nam się łatwiej korzystało ze SteamCMD to warto zrobić sobie symlink do pliku wykonywalnego.
ln -s /usr/games/steamcmd steamcmd2.3 Osobny użyszkodnik
Ostatnia rzecz którą zrobimy spod root'a i uciekamy z niego :slight_smile:
Poniższa komenda utworzy nam użytkownika steam. Jeśli chcesz nazwać użytkownika jakoś inaczej to wystarczy że podmienisz steam na cokolwiek innego.
adduser steamJeżeli powyższa komenda jakimś cudem nie działa to użyj:
useradd -m steamFlaga -m doda katalog domowy użytkownikowi.
Co za różnica useradd czy adduser?
Różnica jest spora. useradd po prostu doda użytkownika, bez "dodatków" - czyli bez hasła, bez katalogu domowego, bez grup. adduser jest narzędziem które działa na "wyższym poziomie", wszystkie bajery są od razu tworzone gdy odpalimy komendę.
Obie komendy
useradd steam
adduser steamostatecznie zrobią to samo, utworzą użytkownika steam, ale w inny sposób i z innymi podstawowymi dodatkami.
TL;DR
useradd powinno zadziałać bez problemu dla wszystkich linuxów, po prostu trzeba dodać odpowiednie flagi aby komenda zadziałała w zbliżony sposób do adduser
3. Instalacja serwera
3.1 Żegnamy root'a
su - steam
# opcjonalnie użyj poniższej komendy
bash3.2 Machnij osobny folder do gry
Porządek musi być.
mkdir /home/steam/valheim/3.3 Instalacja właściwa
Działa bez logowania do Steam.
./steamcmd +force_install_dir /home/steam/valheim/ +login anonymous +app_update 896660 validate +quitTo tyle, serwer jest zainstalowany :slight_smile:
4. Konfiguracja
4.1 Edycja skryptu startującego serwer
Jeżeli nic się nie zmieniło i nie zepsuło to skrypt powinien być w folderze wraz z innymi plikami gry.
Wejdźmy do środka i zobaczmy co da się tu zmalować.
nano /home/steam/valheim/start_server.shPoniżej opis linijek od linii 7 (chyba).
# jak będzie widoczny serwer na liście serwerów
-name “My server”
# domyślny port, działa, nie dotykać
-port 2456
# nazwa pliku save'a, wielkość liter ma znaczenie!
-world “Dedicated”
# hasło, minimum 5 znaków, warto zmienić żeby randomy nie wbiły na serwer
-password “Secret”
# domyślnie serwer jest widoczny na liście i tej flagi nie ma w pliku konfiguracyjnym
-public 1
# jeżeli chcesz mieć serwer dostępny tylko spod przycisku Join IP w grze to zmień wartość z 1 na 0
#-public 04.2 Save'y
Jeśli nie masz wcześniejszych zapisanych plików świata to nic straconego. W start_server.sh wpisujesz cokolwiek w flagę world, odpalasz serwer, a serwer wygeneruje wszystkie potrzebne foldery i pliki.
Jeśli masz własny save i chciałbyś z niego skorzystać to sugeruję i tak raz odpalić serwer. W ten sposób dostajemy cały śmietnik układ folderów i plików i łatwiej będzie namierzyć gdzie i co wrzucić. :D
Gdzie znaleźć i gdzie wrzucać save'y, czyli ścieżki
Na Windows
C:\Users\%USERPROFILE%\AppData\LocalLow\IronGate\Valheim\worlds
Na Linux
/home/$HOME/.config/unity3d/IronGate/Valheim/worlds/
Co skopiować
Do przerzucenia będą 2-4 pliki (te z .old mogą być a może ich nie być)
- nazwasejwa.db
- nazwasejwa.db.old
- nazwasejwa.fwl
- nazwasejwa.fwl.old
Metod wrzucania plików jest kilka, choćby scp, rsync... Jak masz Windowsa to też jest kilka programów które w tym pomogą (nawet i PuTTy).
Fajnie je wrzucić od razu dla użytkownika którego utworzyło się, bo jak wrzucisz na (przez?) root'a to potem trzeba będzie bawić się chmodem żeby zmienić uprawnienia i grupy. Nie pytajcie skąd wiem :face_with_open_eyes_and_hand_over_mouth:
Po wrzuceniu plików na VPS pamiętaj aby zaktualizować nazwę save'a w pliku konfiguracyjnym, tak żeby skrypt startowy wiedział co ma odpalić.
5. Użytkowanie
To tyle, można odpalać skrypt startowy i wbijać na serwer :slight_smile: