@@ -5,14 +5,14 @@ index: 2
55
66# Der Spielleiter (Server)
77
8- Die beiden [ Computerspieler] ( player ) kommunizieren nicht direkt miteinander,
8+ Die beiden : t [ Computerspieler] { # player } kommunizieren nicht direkt miteinander,
99sondern spielen über einen Mittelsmann: den Spielleiter.
1010Dadurch ist zum einen sichergestellt,
1111dass man seinen Gegner nicht mit invaliden Nachrichten belästigen kann,
1212zum anderen sorgt der Spielleiter dafür,
1313dass sich die Kontrahenten an die Spielregeln halten.
1414
15- Der Spielleiter ist direkt im [ Wettkampfsystem] ( wettkampfsystem ) integriert,
15+ Der Spielleiter ist direkt im : t [ Wettkampfsystem] { # contest } integriert,
1616sodass alle Turnierspiele regelkonform gespielt werden.
1717Zum Testen des eigenen Computerspielers gibt es eine Version des Spielleiters mit grafischer Oberfläche,
1818erhältlich im [ Downloadbereich der Website] ( https://software-challenge.de/dokumentation-und-material ) .
@@ -21,11 +21,11 @@ und sogar als Mensch mitspielen.
2121
2222## System vorbereiten und Spielleiter starten
2323
24- Die einzige Voraussetzung ist
24+ Die einzige Voraussetzung ist
2525die [ Installation einer Java-Laufzeitumgebung] ( /entwicklung/installation-von-java ) .
2626dass auf dem Rechner mindestens die Laufzeitumgebung für Java 11 installiert ist.
2727
28- Nach der erfolgreichen Installation kann man den grafischen Server
28+ Nach der erfolgreichen Installation kann man den grafischen Server
2929durch einen Doppelklick auf die Datei ` software-challenge-gui ` starten.
3030
3131## Die Programmoberfläche
@@ -88,10 +88,10 @@ die man sich beliebig oft wieder ansehen kann,
8888um beispielsweise einen Fehler des eigenen Spielers zu analysieren
8989oder eine Strategie zu verbessern.
9090
91- Aktuell werden Replay-Dateien automatisch im Unterordner "replays"
91+ Aktuell werden Replay-Dateien automatisch im Unterordner "replays"
9292des aktuellen Verzeichnisses beim Programmstart abgespeichert.
9393
94- <!--
94+ <!--
9595Die im Folgenden genannten Anpassungsmöglichkeiten beim Speichern werden noch implementiert.
9696
9797~Um das aktuelle Spiel als Spielwiederholung zu speichern,
@@ -117,7 +117,7 @@ diese Situation erneut nachzuspielen um den Computerspieler gezielt zu verbesser
117117Dies ist zur Zeit nur auf etwas kompliziertem Wege möglich.
118118Es folgt eine Schritt-für-Schritt Anleitung:
119119
120- 1 . Lade das betreffende Replay aus dem : t [ Wettkampfsystem] { # contest } herunter (.xml.gz Datei).
120+ 1 . Lade das betreffende Replay aus dem Wettkampfsystem herunter (.xml.gz Datei).
121121
1221222 . Entpacke das Replay, um eine .xml-Datei zu erhalten.
123123
@@ -162,11 +162,11 @@ So nutzt du ihn
162162 (Terminal; auf Windows cmd oder Powershell)
163163 im Verzeichnis des entpackten Archives.
164164
165- 4 . Starte den Testserver auf Port 13051 mit dem beiliegenden ` ./start.sh ` (Linux/Mac ) bzw. ` .\start.bat ` Skript oder dem entsprechenden Befehl:
165+ 4 . Starte den Testserver auf Port 13051 mit dem beiliegenden ` ./start.sh ` (Linux/macOS ) bzw. ` .\start.bat ` Skript oder dem entsprechenden Befehl:
166166
167167 java -Dfile.encoding=UTF-8 -Dlogback.configurationFile=logback.xml -jar server.jar --port 13051
168168
169- 5 . Starte die : t [ Computerspieler] { # player } in weiteren Kommandozeilenumgebungen auf Port 13051
169+ 5 . Starte die Computerspieler in weiteren Kommandozeilenumgebungen auf Port 13051
170170 (standardmäßig die Option ` --port 13051 ` ).
171171 Die Computerspieler verbinden sich automatisch zum Testserver und spielen ein Spiel.
172172 Danach sollten sich die Computerspieler automatisch beenden.
@@ -179,9 +179,8 @@ eine Spielsituation zu laden und zu testen.
179179Die Spielsituation muss vorher wie unter [ Spielsituation nachstellen] ( #spielsituation-nachstellen ) erzeugt werden.
180180Dann kann die Datei mit dem Argument ` --loadGameFile ` geladen werden
181181und optional mit ` --turn ` ein Zug spezifiziert werden.
182- ``` shell
183- java -Dfile.encoding=UTF-8 -Dlogback.configurationFile=logback.xml -jar server.jar --port 13051 --loadGameFile ./replay.xml --turn 10
184-
182+ ``` sh
183+ java -Dfile.encoding=UTF-8 -Dlogback.configurationFile=logback.xml -jar server.jar --port 13051 --loadGameFile ./replay.xml --turn 10
185184```
186185
187186### Replay speichern
@@ -212,43 +211,43 @@ bemerkt er den Eingang des Zuges vom Computerspieler nicht rechtzeitig und disqu
212211Damit dieses Problem möglichst selten auftritt,
213212haben sich die folgenden Parameter beim Starten des Servers bewährt:
214213
215- Unter Linux:
216- ``` shell
217- java -Dfile.encoding=UTF-8 \
218- -Dlogback.configurationFile=logback.xml \
219- -server \
220- -XX:MaxGCPauseMillis=100 \
221- -XX:GCPauseIntervalMillis=2050 \
222- -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled \
223- -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 \
224- -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark \
225- -jar server.jar --port 13051
226- ```
227- Unter Windows (unterscheidet sich nur durch die Art, den langen Befehl
228- auf mehrere Zeilen zu verteilen):
229- ``` shell
230- java -Dfile.encoding=UTF-8 ^
231- -Dlogback.configurationFile=logback.xml ^
232- -server ^
233- -XX:MaxGCPauseMillis=100 ^
234- -XX:GCPauseIntervalMillis=2050 ^
235- -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled ^
236- -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 ^
237- -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark ^
238- -jar server.jar --port 13051
214+ Unter Linux und macOS:
215+ ``` sh
216+ java -Dfile.encoding=UTF-8 \
217+ -Dlogback.configurationFile=logback.xml \
218+ -server \
219+ -XX:MaxGCPauseMillis=100 \
220+ -XX:GCPauseIntervalMillis=2050 \
221+ -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled \
222+ -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 \
223+ -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark \
224+ -jar server.jar --port 13051
239225```
240- Um das Verhalten des Garbage Collectors noch weiter zu verbessern, kann
241- man auch noch mittels der Optionen
242- ``` shell
243- -XX:+PrintGCDateStamps -XX:+PrintGC -XX:+PrintGCDetails -Xloggc:" pfad_zum_gc.log"
226+
227+ Unter Windows
228+ (unterscheidet sich nur durch die Art, den langen Befehl auf mehrere Zeilen zu verteilen):
229+ ``` sh
230+ java -Dfile.encoding=UTF-8 ^
231+ -Dlogback.configurationFile=logback.xml ^
232+ -server ^
233+ -XX:MaxGCPauseMillis=100 ^
234+ -XX:GCPauseIntervalMillis=2050 ^
235+ -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled ^
236+ -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 ^
237+ -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark ^
238+ -jar server.jar --port 13051
244239```
245- eine Logdatei über die Aktivitäten des Garbage Collectors anlegen. Darin
246- sieht man genau, wann er wie lange lief. Man kann dann die Einstellungen
247- verändern und testen, ob sich das Verhalten verbessert.
240+
241+ Um das Verhalten des Garbage Collectors noch weiter zu verbessern,
242+ kann man auch noch mittels der Optionen
243+ ` -XX:+PrintGCDateStamps -XX:+PrintGC -XX:+PrintGCDetails -Xloggc:"pfad_zum_gc.log" `
244+ eine Logdatei über die Aktivitäten des Garbage Collectors anlegen.
245+ Darin sieht man genau, wann er wie lange lief.
246+ Man kann dann die Einstellungen verändern und testen, ob sich das Verhalten verbessert.
248247
249248Die Konfiguration des Garbage Collectors ist kein Allheilmittel
250249und kann zu neuen Problemen führen, auf die man gefasst sein sollte.
251- Dazu gehören erhöhter Resourcenverbrauch und Instabilität der Anwendung.
250+ Dazu gehören erhöhter Ressourcenverbrauch und Instabilität der Anwendung.
252251
253252Eine Auflistung möglicher nützlicher Parameter für Computerspieler findet sich unter
254253https://stackoverflow.com/questions/48989515/java-garbage-collector-time-limit .
@@ -268,7 +267,7 @@ und wertet am Ende die erreichten Punktzahlen aus.
268267Der TestClient muss vom Terminal mit den entsprechenden Argumenten aufgerufen werden.
269268Diese werden unter den Beispielen näher erläutert.
270269
271- Unter Linux:
270+ Unter Linux und macOS :
272271``` sh
273272 java -jar -Dlogback.configurationFile=logback-tests.xml test-client.jar \
274273 --tests 4 \
@@ -279,6 +278,7 @@ Unter Linux:
279278 --start-server \
280279 --port 13051
281280```
281+
282282Unter Windows
283283(unterscheidet sich nur durch die Art, den langen Befehl auf mehrere Zeilen zu verteilen):
284284
0 commit comments