All notable changes to this project are documented in this file. The format is based on Keep a Changelog,
The x.y.z
version is tracked in gradle.properties to enable programmatic updating via the Gradle release
task.
The version should always be in sync with the GUI and have a tag in both repositories.
- The major version
x
corresponds to the year of the contest and thus only changes once a year y
is bumped for any major updates or backwards-incompatible changes.
Ay
version of 0 marks the beta of the current year and likely contains breaking changes between patches.
23.0.2 New Board generation - 2022-08-21
- Update Board generation: The Board is now mirrored with holes, with more holes in the middle and more fish at the edge.
- Improve automated checks
23.0.1 Proper Penguins - 2022-08-06
- Proper rule implementation for Penguins with some helpers
- Improve XML
23.0.0 Rough Penguins - 2022-07-28
- Generify some plugin functionality to the SDK (RectangularBoard, Team.color)
- Initial version of game "Hey, Danke für den Fisch" (Codename Penguins) with simplified game rules (can only move to adjacent fields)
- Switch from unavailable maven repo for jargs
22.1.0 Polish - 2021-11-15
- Ensure compatibility beyond Java 16
- Fix game ending a turn too late on round limit (7b096f105)
- Fix irritating error messages at game end
- Release TestClient
22.0.3 - 2021-07-26
- Fix simpleclient setup
- Only end game after full rounds
22.0.2 Protocol Revamp - 2021-07-16
- Update documentation links
- Various improvements around testing
- Reworked GameResult XML (add player information, include winner as team)
- Simpler Player XML (team as attribute)
- Join without specifying a gameType
- Removed test mode - add up the GameResults instead (#385)
- Do not send repeated MoveRequests when pausing/unpausing
- Stop terminating client connections upon protocol issues (6c6d6fa51)
22.0.1 Adjust Ostseeschach plugin - 2021-06-25
- Implemented proper winner calculation
- Added some utility methods
- Adjusted XML
22.0.0 - 2021-06-11
- Restructured folders to follow JVM standards
- Simplified interface for player development
21.4.0 - 2021-05-28
- Enable preparing games without reservations
- Implement generic replay saving & loading
- Create an AdminClient to interface more conveniently with the server
- Distinguish RoomMessages from ProtocolPackets
- Send GamePaused message after a Game has been paused
21.3.3 - 2021-03-01
- Game: Refactor turn advancing logic (#391)
- Networking: Improve Exception handling within games and rooms (#383)
21.3.2 - 2021-02-12
- GameState: Alignment of round number with turn number (49676b64c)
- TestClient: Prevent a race-condition that could occur when getting the results of the first game (4f33fc01f)
21.3.1 - 2021-02-11
- Fix GameState clone, hashCode and equals to include undeployedPieceShapes and validColors
- Remove superfluous
class
attributes from GameState XML - Synchronize XML packet sending to prevent messages from interleaving (219466c0a)
- Extend GameState XML (#381) and Network tests (#363)
- Setup GitHub Actions (#384)
21.3.0 - 2021-01-29
- Send final Gamestate to listeners when a game ends (#364)
- Remove extra field from Move/Piece XML (23589a153)
- Player dependency declarations (#373)
- TestClient: Make it work (#372) & load current Game id from classpath (#367)
- Implement cloning for GameState & Board (#356)
- Add README for player (#373)
- Create CONTRIBUTING & GUIDELINES (#360)
- Modularize XStream initialization using ServiceLoader (#352)
21.2.1 - 2020-12-18
- Improve internal build logic (#343)
- Improve & translate toString messages
- Use MoveMistakes to construct InvalidMoveExceptions (#321)
21.2.0 - 2020-12-14
- converted lots of classes to Kotlin
- internal Protocol updates & game flow adjustments
- updated many tests