Skip to content
rob edited this page May 2, 2016 · 19 revisions

Bomberman-Server

Der Server wird in Go (1.6) entwickelt. Daher muss zuerst Go installiert werden um den Server ausführen zu können.

Go installieren

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.

Bedienung

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). (Achtung: implementierung aktuell noch nicht funktional!)
|  

| 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 fehlerhaften Befehle zum Werfen einer Bombe (z.B. b2u) legen die Bombe stattdessen auf die eigene Position.

Verbindung zum Server

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. Kann aktuell ignoriert werden.

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. Wird zukünftig zu jeder Zeit möglich sein, aber natürlich nur genau ein mal pro Spieler.

Zeitliche Abfolge Die Einzelnen Events werden vom Server in dieser Reihenfolge ausgewertet:

  • Bomben werfen
  • Bewegungen ausführen
  • Fuchs gefangen? Wenn ja, wechseln und neuen Fuchs versetzen
  • Specials einsammeln & aktivieren (bzw. deaktivieren)
  • Bomben explodieren inkl. aller Kettenreaktionen und Effekte auswerten
  • Eingefrorene Spieler ggf. wieder aktivieren
  • Neue Specials erzeugen

Clone this wiki locally