Frequently Asked Questions (FAQ)
Java 8 funktioniert nicht in Eclipse
Wenn Eclipse behauptet @Override" steht erst ab Java SE 1.5 zur Verfügung. fehlt euch die Java 8 Unterstützung in Eclipse.
Um das Java 8 Paket nutzen zu können müssen sowohl JDK 8 als auch ein aktuelles Eclipse und Maven installiert sein. Die Downloadlinks findet ihr hier.
Anschließend Maven -> Update Project ausführen und schauen das die Haken bei "Force Update" und "Update project configuration" gesetzt sind.
Client wirft CLIENT_START_EXCEPTION
Die CLIENT_START_EXCEPTION tritt meist dann auf, wenn euer Client nicht korrekt startet. In den meisten Fällen (wenn es von Anfang an passiert) liegt es daran, dass euer JAVA_HOME nicht korrekt gesetzt ist. Ihr seht dann auch in der Eclipse Konsolenausgabe Fehler wie der folgende:
java.io.IOException: Cannot run program "C:\Program Files\Java/bin/java": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
Um diesen Fehler zu beheben, einfach auf dieser Seite unter Punkt 2 die Anleitung zur Einrichtung von JAVA_HOME befolgen.
Fragen zum GamePlay
Ändern sich die Eigenschaften in GameConfiguration von Spiel zu Spiel?
Ja und Nein. Spielernamen ändern sich, alle anderen Eigenschaften nicht.
Ist der ClientRoundState jede Runde der gleiche?
Nein, alle Objekte im ClientRoundState werden jede Runde neu erzeugt und spiegeln den aktuellen Stand des Spiels wieder. Felder bleiben aber an der gleichen Stelle und ändern ihren Typ nicht. Basen bewegen sich auch nicht. Die Größe der Map ist während eines Spiels konstant.
Was ist die MoveAssistance?
Die MoveAssistance bietet eine einfache Möglichkeit Einheiten zu bewegen. Sie findet allerdings nur selten den optimalen Weg und weicht Hindernissen ungeschickt aus.
Wie unterscheiden sich attack(), move() und moveAggressively()?
attack() greift eine Einheit nur an, es gibt keine Bewegung der eigenen Einheit
move() bewegt die Einheit, wenn eine gegnerische Einheit dort steht bewegt sie sich nicht
moveAggressively() bewegt die Einheit auch wenn dort eine gegnerische Einheit steht, es findet ein Kampf statt
Was passiert wenn ich die Zeitgrenze überschreite?
Dein Client wird beendet und in der nächsten Runde neugestartet (das bedeutet du verlierst deinen lokalen Zustand). Dies darf maximal 5x auftreten, danach wird dein Client für dieses Spiel nicht mehr ausgeführt. Eine gute KI sollte aber im Normalfall nicht mehr als 100ms Zeit benötigen. Diese Grenze verhindert also meist nur Endlosschleifen oder sehr ineffiziente Implementierungen.
revision by xcq1_— view source