Version 2.2.1
Hinweis: Hierbei handelt es sich um einen PATCH-Release. Es wurden lediglich Fehler behoben.
- Es wurde ein weiterer Edge-Case behoben, indem Ressourcen vom Spiel nicht wieder freigegeben wurden, falls der Prozess des Spiels mittels
SIGKILL
beendet wurde.
Version 2.2.0
Hinweis: Hierbei handelt es sich um einen MINOR-Release. Es wurden neue Funktionen hinzugefügt und Fehler behoben.
- Hinzugefügte Funktionen:
- Die Kampagnen 6.1 und 6.2 wurden funktional hinzugefügt.
- Es ist nun möglich die vom Spiel für die Ausführung von Spielern zu verwendeten Ressourcen mittels Kommandozeilenparameter festzulegen. Dies geht mittels
-executionResource THREAD | PROCESS | VARIABLE
Parameter, um einzustellen, ob immer Threads (1.), immer Prozesse (2.) oder nur Threads bei internen und sonst Prozesse (3.) verwendet werden sollen.
- Fehlerbehebungen:
- Falls das Spiel dem Spiel beim Start mit grafischer Oberfläche ausreichend Kommandozeilenparameter zum Start einer Runde übergeben werden, sodass das Hauptmenü übersprungen wird, werden nun die UI-Elemente wie der Rundenzähler korrekt angezeigt.
- Alle vom Spiel verwendeten Ressourcen sollten nun korrekt freigegeben werden, falls der Prozess mit
SIGKILL
beendet wird.
Version 2.1.2
Hinweis: Hierbei handelt es sich um einen PATCH-Release. Es wurden lediglich Fehler behoben.
- Da v2.1.1 nicht alle vorher aufgetretenen Probleme beseitigt hat, wurden in diesem Release weitere Änderungen vorgenommen, die dafür sorgen sollten, dass Bots in dieser Version und v2.0.0 gleich verhalten sollten.
Version 2.1.1
Hinweis: Hierbei handelt es sich um einen PATCH-Release. Es wurden lediglich Fehler behoben.
- Eine Änderung, in der Abarbeitung der Botbefehle wurde zurückgenommen, die in Version 2.1.0 dazu geführt hat, dass Bots sich anders verhalten und zum Teil bestimmte Spiele nicht mehr gewinnen.
Version 2.1.0
Hinweis: Hierbei handelt es sich um einen MINOR-Release. Es wurden neue Funktionen hinzugefügt und Fehler behoben.
- Hinzugefügte Funktionen:
- Die Kampagnen 5.1 und 5.2 wurden funktional hinzugefügt.
- Ein Prototyp für den Online-Multiplayer wurde hinzugefügt. Mehr Details zu diesem, gibt es hier.
Version 2.0.0
Hinweis: Hierbei handelt es sich um einen MAJOR-Release. Es wurden Änderungen vorgenommen, die zu anderem Verhalten oder sogar Fehlern von existierendem Code führen können.
- Nicht-rückwärtskompatible Änderungen:
- Die Klasse
ObstacleTile
wurde zuWaterTile
umbenannt. - Die Klasse
GrassTile
wurde hinzugefügt.- Das von der
StaticPlayerState.getBoard()
Methode zurückgegebene 2-dimensionale Array, welches die Karte des Spiels repräsentiert, hat leere Felder bisher mitnull
-Werten dargestellt. Dies ist nicht mehr der Fall!
Stattdessen werden leere Felder nun durchGrassTile
-Instanzen repräsentiert.
- Das von der
- Die Klasse
- API-Anpassungen:
- Die
StaticPlayerState.getEnemyCost()
Methode wurde hinzugefügt, um die Kosten zum Spawnen einer Maus beim gegnerischen Spieler zu berechnen. - Zusätzlich zur
Tile.isBuildable()
undTile.isPath()
Methode, gibt es nun dieTile.isTower()
undTile.isWater()
Methoden hinzugefügt. - Die
Tile.getType()
Methode wurde hinzugefügt. Zusammen mit demTileType
Enum derTile
Klasse kann diese Methode nun zur Unterscheidung vonTile
-Instanzen inswitch(tile.getType()) {...}
Statements verwendet werden.
- Die
- Hinzugefügte Funktionen:
- Die Kampagnen 4.1 und 4.2 wurden funktional hinzugefügt.
- Die Namen der von uns bereitgestellten Standardmaps wurden angepasst.
- Die Formatierung der Ausgabe über das Spielergebnis wurde angepasst.
- Fehlerbehebungen:
- Wenn ein Bot der
Controller.setTowerTarget()
Methode Koordinaten übergibt, die außerhalb des Spielfeldes liegen, kommt es nicht länger aufgrund einerArrayIndexOutOfBoundsException
zu Fehlern. - Wenn das Spiel in der grafischen Oberfläche gestartet wird, werden am Spielende keine Popups mehr angezeigt, dass Spieler disqualifiziert seien, wenn dies nicht der Fall sein sollte.
- Man verliert nun automatisch in Kampagne 3.1, falls man den gegnerischen Spieler nicht bis Runde 50 besiegt hat.
- Man verliert nun automatisch in Kampagne 3.2, falls man den gegnerischen Spieler nicht bis Runde 60 besiegt hat.
- Wenn ein Bot der
Version 1.4.0
Hinweis: Hierbei handelt es sich um einen MINOR-Release. Es wurden neue Funktionen hinzugefügt und Fehler behoben.
- Hinzugefügte Funktionen:
- Die Kampagnen 3.1 und 3.2 wurden funktional hinzugefügt.
- Balancing-Änderungen:
- Der Schaden von Magiekatzen wird um 10% reduziert für jede weitere Magiekatze in ihrer Reichweite bis zu einem Maximum an 50%.
Das gleiche gilt für Minigunkatzen und andere Minigunkatzen in ihrer Reichweite.
- Der Schaden von Magiekatzen wird um 10% reduziert für jede weitere Magiekatze in ihrer Reichweite bis zu einem Maximum an 50%.
- Fehlerbehebungen:
- Alle vom Spiel verwendeten Ressourcen sollten korrekt freigegeben werden, falls das Prozess mittels
SIGINT
oderSIGKILL
beendet wird.
- Alle vom Spiel verwendeten Ressourcen sollten korrekt freigegeben werden, falls das Prozess mittels
Version 1.3.0
Hinweis: Hierbei handelt es sich um einen MINOR-Release. Es wurden neue Funktionen hinzugefügt und Fehler behoben.
- Hinzugefügte Funktionen:
- Die Kampagnen 2.1 und 2.2 wurden funktional hinzugefügt.
- Balancing-Änderungen:
- In den Kampagnen 1.1 und 1.2 wurde das Spawning der Gegner angepasst, sodass nicht mehr zu starke Gegner spawnen können, die von den Türmen nicht besiegt werden können.
- Sonstige Änderungen:
- Die Kampagnen im Auswahlscreen sind im Dropdown nun strukturierter sortiert.
Version 1.2.0
Hinweis: Hierbei handelt es sich um einen MINOR-Release. Es wurden neue Funktionen hinzugefügt und Fehler behoben.
- API-Anpassungen:
- Der Schaden der Katanakatze wurde angepasst:
- Level 1: 10 -> 12 Schaden
- Level 2: 15 -> 18 Schaden
- Level 3: 25 -> 30 Schaden
Tower.getTowerRange()
wurde als statische Methode hinzugefügt, um, ohne eineTower
-Instanz zu haben, sich die Reichweite der Türme beschaffen zu können.
- Der Schaden der Katanakatze wurde angepasst:
- Fehlerbehebungen:
- Das Spiel stürzt nicht länger ab, wenn man es mit einem eigenen Bot ausführen möchte und dieser eine Strafe, aufgrund eines Timeouts oder einer geworfenen Exception, erhält.
- Wenn man in einem eigenen Bot innere Klassen verwendet und diesen Bot kompiliert, stürzt das Spiel im graphischen Modus nicht länger beim Starten ab bzw. sorgt nicht mehr für
java.lang.ClassNotFoundException
s während der Runden mit Headless-Modus. - Im
Exam Admission
Modus wirft der Gegnerbot nicht längerNullPointerException
s. - Das Spiel stürzt nicht länger ab, wenn man im graphischen Modus versucht eine Kampagne zu starten.
- Sonstige Änderungen:
- Die Ausgabe auf der Konsole, ob eine Kampagne bzw. die Prüfungszulassung erfolgreich bestanden wurde, wurde angepasst.
Version 1.1.2
Hinweis: Hierbei handelt es sich um einen PATCH-Release. Es wurden lediglich Fehler behoben.
- Die Formatierung der Hilfeseite (
java -jar gaTDsen-[Version].jar --help
) wurde angepasst. - Die Leben der Spieler in den Kampagnen 1.1 und 1.2 wurden ursprünglich falsch zugeordnet, was nun korrigiert wurde. Der eingereichte Bot hat nun 100, während der
IdleBot
300 Leben hat.
Version 1.1.1
Hinweis: Hierbei handelt es sich um einen PATCH-Release. Es wurden lediglich Fehler behoben.
- Das Spiel stürzt nicht länger ab, wenn man versucht mit einem selbst erstellten Bot zu spielen.
Version 1.1.0
Hinweis: Hierbei handelt es sich um einen MINOR-Release. Es wurden neue Funktionen hinzugefügt und Fehler behoben.
- Die Minigun-, Katana- und Magekatzen sind nun die verfügbaren Türme.
- Die Schild-, EMP- und Rüstungsmäuse sind die spawnbaren Gegner.
- Die Zieloption von Türmen können nun gewechselt werden zwischen: Fokus auf Stärksten, Schwächsten, Ersten und Letzten.
- viele interne Änderungen seit letztem Release, die hier nicht alle erwähnt werden können…
Version 1.0.5
Hinweis: Hierbei handelt es sich um einen PATCH-Release. Es wurden lediglich Fehler behoben.
- Das Spiel beendet nun korrekt im Modus ohne grafische Benutzeroberfläche und hängt nicht länger in einem Deadlock fest.
Version 1.0.4
Hinweis: Hierbei handelt es sich um einen PATCH-Release. Es wurden lediglich Fehler behoben.
- Beim Start des Spiels wird nun in der Konsole die aktuelle Version ausgegeben.
- Das Spiel stürzt nicht länger ab, sofern man versucht mit grafischer Benutzeroberfläche zu starten.
- Das Spiel stürzt nicht länger ab, wenn sich im
bots
Ordner Klassen befinden, die von einer neueren Java Version kompiliert wurden, als der mit der das Spiel in dem Moment ausgeführt wird. Stattdessen wird nun eine Fehlermeldung ausgegeben und die Klasse ignoriert. - Es wurden einige unnötige Konsolenausgaben entfernt.
Version 1.0.3
Hinweis: Hierbei handelt es sich um einen PATCH-Release. Es wurden lediglich Fehler behoben.
- Die Jar-Datei des Spiels wurde nun mit Java 11 kompiliert statt Java 19, sodass auch niedrigere Java Versionen unterstützt werden.
Version 1.0.2
Hinweis: Hierbei handelt es sich um einen PATCH-Release. Es wurden lediglich Fehler behoben.
- Das Spiel stürzt nun nicht länger aufgrund einer
NullPointerException
ab, wenn man in der grafischen Oberfläche mit vielen Türmen auf den gleichen Gegner schießt.
Version 1.0.1
Hinweis: Hierbei handelt es sich um einen PATCH-Release. Es wurden lediglich Fehler behoben.
- Die Knöpfe zum Starten der unterschiedlichen Spielmodi (Normal und Weihnachtsaufgabe) sind nun nicht länger soweit unten im Hauptmenü positioniert, sondern mittiger.
- Bots, die die Methode
Controller.placeTower()
können nun nicht länger Türme auf Hindernissen wie dem Wasser platzieren.
Version 1.0.0
- Erste Version des Spiels, welche mit der Freischaltung der Weihnachtsaufgabe veröffentlicht wurde.