Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions hyperbook/book/grundlagen/server.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ und sogar als Mensch mitspielen.
## System vorbereiten und Spielleiter starten

Die einzige Voraussetzung ist
die [Installation einer Java-Laufzeitumgebung](/entwicklung/installation-von-java).
die [Installation einer Java-Laufzeitumgebung](/entwicklung/java/installation-von-java).
dass auf dem Rechner mindestens die Laufzeitumgebung für Java 11 installiert ist.

Nach der erfolgreichen Installation kann man den grafischen Server
Expand Down Expand Up @@ -176,13 +176,16 @@ So nutzt du ihn

Es ist möglich, statt eines zufällig generierten vollständigen Spielplanes
eine Spielsituation zu laden und zu testen.
Die Spielsituation muss vorher wie unter [Spielsituation nachstellen](#spielsituation-nachstellen) erzeugt werden.
Die Spielsituation muss vorher wie unter [Spielsituation nachstellen](grundlagen/server#spielsituation-nachstellen) erzeugt werden.
Dann kann die Datei mit dem Argument `--loadGameFile` geladen werden
und optional mit `--turn` ein Zug spezifiziert werden.
```sh
java -Dfile.encoding=UTF-8 -Dlogback.configurationFile=logback.xml -jar server.jar --port 13051 --loadGameFile ./replay.xml --turn 10
```

TODO:
Tabelle cli Optionen wie bei TestClient?

### Replay speichern

Wenn der Server ohne grafische Oberfläche gestartet wird,
Expand All @@ -204,7 +207,7 @@ dass Computerspieler wegen Zugzeitüberschreitungen vom Server disqualifiziert w
Dies passiert, obwohl der Zug innerhalb der erlaubten Zugzeit
(abhängig vom Spiel, bisher aber immer zwei Sekunden)
an den Server geschickt wurde.
Der Garbage Collector der Java Virtual Machine löst dieses Verhalten aus.
Der [Garbage Collector](/faq#garbage-collector) der Java Virtual Machine kann dieses Verhalten auslösen.
Er pausiert die Anwendung, um nicht mehr genutzten Speicher freizugeben.
Wenn der Server dadurch zu einem ungünstigen Zeitpunkt angehalten wird,
bemerkt er den Eingang des Zuges vom Computerspieler nicht rechtzeitig und disqualifiziert ihn daraufhin.
Expand Down Expand Up @@ -294,7 +297,11 @@ Unter Windows
```
Der TestClient kann sich auch mit einem bereits laufenden Server verbinden,
bei Angabe des Arguments `--start-server` startet er jedoch einfach selbst einen.
Wichtig ist, dass nicht versucht wird, zwei Server auf dem selben Port zu starten.
Bei folgender Fehlermeldung wurde der Server auf einem bereits belegten Port gestartet:
```
Could not start server on port 13050
java.net.BindException: Address already in use
```

#### Argumente des TestClients

Expand Down Expand Up @@ -326,5 +333,6 @@ Ergebnisse werden erst zurückgesetzt, wenn der Server neu gestartet
wird. Achte also nach einer Veränderung der Spieler darauf, den Server
neu zu starten oder andere Spielernamen zu verwenden.

TODO: Is this still right?
Dieses Verhalten wird wahrscheinlich bald verändert,
wobei dann jeder TestClient unabhängig vom Server die Punkte zählt.