-
Notifications
You must be signed in to change notification settings - Fork 1
Server
Der Server wird in Go (1.6) entwickelt. Daher muss zuerst Go installiert werden um den Server ausführen zu können.
Nachdem Go installiert und der GOPATH gesetzt wurde sollte man im Verzeichnis $GOPATH/ ein Verzeichnis "src" anlegen. Nun kann das bomberman-server-Repository heruntergeladen werden.
Methode 1
in $GOPATH ausführen:
$ go get github.com/eauw/bomberman-server
Dadurch wird das Repository automatisch nach $GOPATH/src/github.com/eauw/bomberman-server geladen.
Methode 2
Repository per Git nach $GOPATH/src/bomberman-server klonen.
Beispiel-Workspace:
GOPATH ausgeben lassen:
$ echo $GOPATH
~/go/
$GOPATH/src/bomberman-server (bomberman-server-directory)
Anwendung bauen:
(Methode 1) $ go install github.com/eauw/bomberman-server
(Methode 2) $ go install <bomberman-server-directory>
Server starten:
$ $GOPATH/bin/bomberman-server
Per Telnet auf Port 5000 verbinden.
Prinzipiell kann ein angemeldeter Bot/Spieler ein einfacher Telnet-Client sein der Befehle (Strings) an den Server überträgt.
Folgende Befehle kann der Server verarbeiten:
| Zeichen | Befehl | Kommentar |
|---|---|---|
| w | nach oben gehen | |
| a | nach links gehen | |
| s | nach unten gehen | |
| d | nach rechts gehen | |
| bND | Bombe N Felder in Richtung D werfen | b3w für 3 Felder nach oben, b für eigenes Feld (oder auch z.B. b0a...). Über Wände, Bomben oder andere Spieler kann |
| nicht geworfen werden. Entspricht ungefähr | ||
| http://de.bomberman.wikia.com/wiki/Bomben-Kick, wird jedoch sofort | ||
| ausgelöst, ohne dass erst noch gegen eine liegende Bombe getreten werden | ||
| muss (oder kann). |
|
| n | nichts tun | = eine Runde aussetzen; identisch zu tatsächlich bis zum Timeout warten |
| q | Verbindung zu Server trennen | |
| name:[str] | Spielernamen festlegen | |
Bei ungültigen Befehlen geschieht nichts.
Ausnahmen:
Alle nichteindeutigen Befehle zum Werfen einer Bombe (z.B. b1n oder b2u) legen die Bombe stattdessen auf die eigene Position. Wenn die eigene Reichweite 4 beträgt, man aber z.B. b7w sendet wird die nächsthöchste Reichweite verwendet, also b4w.
Nachdem der Client eine Verbindung mit dem Server hergestellt hat bekommt er eine ID und einen Spielernamen mitgeteilt: "YourID:xxxxxxxx\nYourName:Player1\n".
Die ID ist ein 8-stelliger String der zur Identifikation des Clients dient.
Eine Sekunde nachdem sich alle Spieler verbunden haben beginnt das Spiel.
Spielernamen setzen
Bevor das eigentliche Spiel beginnt also nach Verbindungsherstellung zum Server kann man "name:[gewünschter Name]" an den Server senden um einen Spielernamen festzulegen.