-
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). (Achtung: wenn hier Syntaxfehler gemacht werden oder direkt gegen eine Wand geworfen wird, dann fällt einem die Bombe kommentarlos vor die eigenen Füße!) |
|
| 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.
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