Was du brauchst
- Betriebssystem: ein 64-Bit-Linux-Rechner (der Linux-Dedicated-Server braucht
start_server.sh) oder Windows (der Entwickler hat in Build 174.2 einen Windows-Dedicated-Server hinzugefügt).
- Hardware: Der Entwickler veröffentlicht keine Anforderungen für den Dedicated Server. Die Steam-Seite nennt nur, was der Spiel-Client braucht.
- Netzwerk: der Spielport, im Beispiel unten 7777, muss aus dem Internet erreichbar sein. In unseren Tests meldete der Server seinen Spiel-Listener als UDP auf diesem Port. Seit B897 sagt der Entwickler, dass der Serverbrowser die Server per TCP anpingt und ihren Status ausliest, ohne den Port zu nennen.
- Steam-Konto: zum Herunterladen des Servers nicht nötig. Unser Installationsbefehl nutzt
+login anonymous.
- Das Spiel: Puck ist auf Steam für Windows, macOS und Linux kostenlos spielbar, deine Freunde müssen also nichts kaufen.
Die Server-Software ist kostenlos. Du zahlst für Rechner, Strom und Bandbreite, nicht für die Software.
Option 1: selbst hosten
Es gibt zwei Wege, einen eigenen Server zu betreiben. Der schnelle ist ins Spiel eingebaut: Seit Build 174.2 hat das Menü New Server einen Tab SELF HOSTED, der einen Server auf deinem eigenen PC hostet, und Puck versucht, die Ports per uPnP weiterzuleiten, was manche Router und Internetanbieter nicht erlauben. Für einen Server, der dauerhaft läuft, nimm den Dedicated Server unten.
Linux (Debian oder Ubuntu)
- Installiere die Bibliothek, die SteamCMD braucht, und curl für den nächsten Schritt.
sudo apt-get update
sudo apt-get install lib32gcc-s1 curl
- Lege einen Benutzer
steam an und installiere SteamCMD als dieser Benutzer. Valve warnt, dass SteamCMD als root ein Sicherheitsrisiko ist.
sudo useradd -m steam
sudo -iu steam
mkdir ~/Steam && cd ~/Steam
curl -sqL "https://client-update.steamstatic.com/installer/steamcmd_linux.tar.gz" | tar zxvf -
- Lade den Server herunter.
~/Steam/steamcmd.sh +quit
~/Steam/steamcmd.sh +force_install_dir /home/steam/puck +login anonymous +app_update 3481440 validate +quit
Die erste Zeile lässt ein frisches SteamCMD sich selbst aktualisieren, bevor der eigentliche Download startet. Unser Installationsskript macht dasselbe und versucht es danach bis zu dreimal, weil Steam manchmal "Failed to install app (Missing configuration)" meldet und SteamCMD trotzdem mit "success" endet. Prüfe, ob /home/steam/puck/steamapps/appmanifest_3481440.acf existiert. Wenn nicht, starte den Download erneut.
- Schreibe eine Konfigurationsdatei namens
server_config.json in /home/steam/puck. Das ist die Datei, die der Server in unseren Tests beim Start gelesen hat (sein Log sagt Deserializing server config from file (./server_config.json)) und die unsere Installation anlegt:
{
"port": 7777,
"name": "My Puck Server",
"maxPlayers": 12,
"password": "",
"tickRate": 200,
"isPublic": true,
"useVoip": false,
"useWhitelist": false,
"mods": [],
"gameMode": "public",
"level": "default"
}
Ein leeres password bedeutet, dass jeder mit der Adresse beitreten kann. Setze isPublic auf false, damit der Server nicht im Serverbrowser erscheint: Seit Build 174 respektiert der Browser diesen Schalter.
- Server starten mit dem Launcher, nicht mit der alten ausführbaren Datei. Seit Build 202 braucht der Linux-Server
start_server.sh, damit die Steam-API-Bibliothek geladen wird. Das Skript reicht alle Argumente an Puck weiter.
cd /home/steam/puck
chmod +x start_server.sh
./start_server.sh
Wenn dein Build die Datei in diesem Ordner nicht findet, lässt sich laut Entwickler der Konfigurationspfad mit dem Startargument --serverConfigurationPath setzen (Build 174) und der Pfad der Bannliste mit --bannedSteamIdsPath.
- Öffne die Ports. Erlaube deinen Spielport in der Firewall des Rechners (mit ufw:
sudo ufw allow 7777, das öffnet ihn für TCP und UDP) und leite ihn dann am Router an diesen Rechner weiter. Das Spiel selbst lauscht auf UDP. Der Entwickler sagt, dass der Serverbrowser Server per TCP erreicht, aber nicht auf welchem Port. Wenn Direct Connect funktioniert und der Browser deinen Server nicht listet, ist diese Verbindung also die Stelle zum Prüfen.
- Teste es. Suche deinen Servernamen im Serverbrowser von Puck oder nutze Direct Connect mit deiner öffentlichen IP und dem Port. Der Entwickler hat Direct Connect in Build 1153 zu einem nativen Button gemacht, die F5-Debug-Tools braucht es dafür nicht mehr.
Windows
- Installiere SteamCMD von
https://client-update.steamstatic.com/installer/steamcmd.zip in einen Ordner wie C:\steamcmd.
- Lade den Server herunter. Die Steam-App 3481440 hat neben dem Linux-Build auch einen Windows-Build (der Entwickler hat ihn in Build 174.2 hinzugefügt), derselbe SteamCMD-Download funktioniert also mit einem Windows-Ordner:
C:\steamcmd\steamcmd.exe +force_install_dir C:\puck +login anonymous +app_update 3481440 validate +quit
- Erstelle
server_config.json in C:\puck wie in Linux-Schritt 4 und starte Puck.exe, das Windows-Programm, das Steam für diese App listet. Wir haben den Linux-Server betrieben und geprüft, nicht den Windows-Server. Wenn er die Datei nicht findet, übergib ihren Pfad mit --serverConfigurationPath. Erlaube deinen Spielport eingehend in der Windows-Firewall und leite ihn am Router weiter.
Mods
Seit Build 202 kann ein Server Steam-Workshop-Mods über eine mods-Liste in seiner Konfiguration laden. Jeder Eintrag hat die Workshop-Item-id, enabled und clientRequired (true lässt Spieler den Mod beim Verbinden herunterladen, false ist für serverseitige Mods). Das Beispiel des Entwicklers:
"mods": [
{ "id": 3493628417, "enabled": false, "clientRequired": true },
{ "id": 3491056040, "enabled": true, "clientRequired": false }
]
Admin-Befehle
Admins auf Dedicated Servern haben laut den Ankündigungen des Entwicklers Chat-Befehle: /kick, /pause und /resume (Build 171), /ban und /unban per SteamID64 (Build 1153). Server-Admins können nicht per Votekick entfernt werden und können einem vollen Server beitreten.
Option 2: bei PlayNHost hosten
Beim Mieten entfallen Firewall, Portweiterleitung und Update-Routine. Port und Konfigurationsdatei sind für dich eingerichtet.
- Wähle einen Tarif. Öffne die Seite zum Puck-Server-Hosting und vergleiche die Tarife (zum Zeitpunkt des Schreibens FACEOFF, SLAPSHOT und OVERTIME für 12, 16 und 24 Spieler). Klicke bei FACEOFF oder SLAPSHOT auf Server erstellen oder bei OVERTIME auf Tarif anpassen und schließe die Bestellung ab.
- Warte auf die Installation. Du bekommst eine E-Mail "Server bereit" und der Server erscheint unter panel.playnhost.com. Im Tab Konsole gilt der Server im Panel als gestartet, sobald das Log eine Zeile mit
is ready to accept clients on ausgibt.
- Öffne Einstellungen, dann Spieleinstellungen. Diese Felder werden bei jedem Serverstart in
server_config.json geschrieben:
- Servername: der Name im Serverbrowser.
- Server-Passwort: das Beitrittspasswort. Es ist anfangs leer, setze also eins, wenn der Rink nur deiner Gruppe gehören soll.
- Max. Spieler: startet mit der Spielerzahl deines Tarifs und kann sie nicht überschreiten.
- Neu starten. Wenn das Panel "Gespeichert. Der Server muss neu starten, damit das wirkt." anzeigt, klicke auf Jetzt neu starten und warte auf die Ready-Zeile.
- Beitreten. Suche deinen Servernamen im Serverbrowser von Puck oder nutze Direct Connect mit Adresse und Port des Servers aus dem Panel. Gib das Passwort ein, falls du eins gesetzt hast.
Was unser Setup für dich übernimmt
- Schlüssel bei jedem Start geschrieben. Das Panel schreibt
name, password, maxPlayers und port in server_config.json, bevor der Server bootet. Handänderungen an diesen vier Schlüsseln werden beim nächsten Start überschrieben, ändere sie also in den Spieleinstellungen.
- Andere Schlüssel bleiben deine. Unsere Installation legt die Datei mit
tickRate 200, isPublic true, useVoip false und useWhitelist false an, und das Panel fasst sie nicht an. Ändere sie auf der Seite Einstellungen, wo server_config.json einen eigenen Eintrag hat, oder bearbeite die Datei unter Dateien bei gestopptem Server und starte ihn dann wieder.
- Die richtige Konfigurationsdatei. Manche Community-Anleitungen und Vorlagen nennen die Datei
server_configuration.json. In unseren Tests las der Server server_config.json, wie seine eigene Logzeile zeigt, das ist also die Datei, die das Panel füllt und die du bearbeiten solltest.
- Installationsprüfungen. Das Installationsskript versucht SteamCMD bis zu dreimal und wertet das App-Manifest, nicht den Exit-Code von SteamCMD, als Beweis, dass das Spiel heruntergeladen wurde.
- Updates beim Neustart. Jeder Start prüft bei Steam, ob es einen neueren Server-Build gibt, und installiert ihn, bevor Puck bootet. Ein Neustart nach einem Puck-Patch bringt den Server also auf den neuesten Stand.
- Mod-Liste. Über die Seite Workshop sollen Mods bei PlayNHost in die
mods-Liste kommen. Wir haben auf einem Live-Server noch nicht bestätigt, dass so hinzugefügte Mods laden. Frag also den Support, bevor du dich auf einen verlässt oder mods von Hand bearbeitest.
- Konsole. Der Tab Konsole zeigt das Server-Log. Wir kennen keine Remote-Konsole (RCON) für Puck: Admin-Befehle tippst du im Chat im Spiel, und Befehle im Eingabefeld der Panel-Konsole erreichen das Spiel nicht. Eine Einstellungsänderung und ein Neustart sind also deine Fernsteuerung.
Selbst hosten oder mieten: ein ehrlicher Vergleich
- Kosten. Selbst gehostet: Die Software ist kostenlos, du zahlst für Hardware, Strom und Bandbreite oder für eine Cloud-VM. Gemietet: eine monatliche Gebühr je nach Tarif. Siehe die aktuellen Tarife.
- Verfügbarkeit. Selbst gehostet: so zuverlässig wie dein Rechner und dein Heiminternet, und er muss laufen, wenn deine Freunde spielen. Gemietet: läuft auf der Hardware des Hosters, nicht auf deinem PC.
- Netzwerk-Exposition. Selbst gehostet: Spieler verbinden sich mit deiner öffentlichen IP, und du kümmerst dich um Firewall und Router. Gemietet: Deine Heim-IP ist nicht beteiligt.
- Nötiges Können. Selbst gehostet: Kommandozeile, Portweiterleitung und JSON-Bearbeitung. Gut machbar und eine gute Möglichkeit zu lernen. Gemietet: ein Web-Panel mit Formularfeldern.
- Updates. Selbst gehostet: Server stoppen, den SteamCMD-Befehl erneut ausführen, Server starten. Gemietet: Es gibt keine SteamCMD-Routine für dich, weil jeder Start bei Steam nach einem neueren Server-Build sucht. Starte den Server nach einem Puck-Patch neu.
Selbst hosten passt zu dir, wenn ohnehin ein Rechner den ganzen Tag läuft und du dich mit Netzwerken wohlfühlst. Mieten passt zu dir, wenn du dich lieber nicht um Hardware kümmerst. Wenn du einen Rink für deine Gruppe willst, sieh dir die Puck-Tarife an.
Häufige Probleme und Lösungen
Der Download endet, aber es gibt keine Server-Dateien
Ursache: SteamCMD hat "Missing configuration" ausgegeben und trotzdem mit "success" geendet. Das haben wir bei unseren eigenen Installationen gesehen.
Lösung: Prüfe, ob steamapps/appmanifest_3481440.acf existiert. Fehlt sie, führe +app_update 3481440 validate erneut aus.
Der Server erscheint nicht im Serverbrowser
Ursache: isPublic steht auf false, oder der Server ist von außen nicht erreichbar. Der Browser erreicht Server per TCP, deshalb kann eine Firewall, die nur UDP durchlässt, einen Server verstecken, den Direct Connect trotzdem erreicht.
Lösung: Setze isPublic auf true, öffne und leite deinen Spielport weiter und probiere Direct Connect von einem Rechner außerhalb deines Netzwerks.
Meine Konfigurationsänderungen greifen nicht
Ursache: Die Datei wurde bei laufendem Server bearbeitet, oder du hast einen Schlüssel geändert, den das Panel neu schreibt (PlayNHost).
Lösung: Stoppe den Server, bearbeite die Datei, starte ihn. Bei PlayNHost änderst du Name, Passwort, Spielerlimit und Port in den Spieleinstellungen.
FAQ
Kann ich einen Puck-Server kostenlos hosten?
Ja. Der Dedicated Server liegt auf Steam und lässt sich mit anonymem Login herunterladen. Du zahlst trotzdem für Rechner, Strom und Internet, und er muss laufen, solange Leute spielen.
Muss ich das Spiel besitzen?
Nein. Puck ist auf Steam kostenlos spielbar, jeder, der beitritt, kann es also ohne Bezahlung herunterladen.
Wie viele Spieler können beitreten?
Du legst maxPlayers in der Konfiguration fest. In Build 19 (September 2024), vor der Veröffentlichung des Dedicated Servers, hat der Entwickler seine eigenen gehosteten Server auf 10 Spieler begrenzt. Für Dedicated Server hat er seitdem kein Limit veröffentlicht. Unsere Tarife bieten 12, 16 und 24 Spieler.
Welchen Port nutzt ein Puck-Server?
Der Spielport ist der Wert von port in server_config.json, im Beispiel 7777. In unseren Tests lauschte das Spiel auf UDP. Seit B897 pingt der Serverbrowser die Server per TCP, und der Entwickler nennt diesen Port nicht.
Kann ich Steam-Workshop-Mods hinzufügen?
Ja, seit Build 202 über die oben gezeigte mods-Liste. Spieler laden jeden Mod mit clientRequired automatisch beim Verbinden herunter, und seit B897 listet ein Popup die benötigten Mods zuerst auf.