Changelog¶
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog. netorcai adheres to Semantic Versioning and its public API includes the following.
- netorcai’s program command-line interface.
- netorcai’s metaprotocol.
Unreleased¶
v2.0.0¶
- Commits since v1.2.0
- Release date: 2019-02-24
Changed (breaks metaprotocol)¶
- The CONTENT_SIZE message header is now 32-bit (was 16-bit). CONTENT_SIZE value must be smaller than 1 Kio for the first message, and smaller than 16 Mio for other messages.
- Protocol version handshake added in LOGIN and LOGIN_ACK. As a result, old clients will not be able to log in anymore because their metaprotocol version is unknown.
Added¶
- New CLI command
--fast
, which allows to start a new turn as soon as all players have decided what to do — instead of relying on a timer. This assumes that all player clients return in finite time — either by returning a TURN_ACK or by closing their sockets. - Special players can now be connected to netorcai.
The game logic knows which bots are special, which allows implementing
game modes with asymetric game rules.
As an example, the ghosts of a bomberman game could be implemented in a
special player bot which could have different actions than bombermen.
- New CLI command
--nb-splayers-max
, to define the maximum number of special players. - DO_INIT and GAME_STARTS messages now contain a
nb_special_players
field.
- New CLI command
Fixed¶
- Various corner case deadlocks have been fixed and should now be covered by integration tests.
- Several issues around netorcai’s termination have been fixed.
- Kicking clients induced a non-compressible time delay to limit the loss of messages. This time delay has been removed and the last messages sent by netorcai should not be lost anymore.
- Data races could occur in the sending of the last messages to clients.
v1.2.0¶
Added¶
- New CLI command
--autostart
, that automatically starts the game when all clients (and one game logic) are connected. The expected clients are those defined by--nb-players-max
and--nb-visus-max
.
Changed¶
- Client libraries are now hosted on netorcai’s organization github repository.
- Documentation is now on netorcai’s readthedocs.
Fixed¶
- All players always remained connected in the
players_info
array of GAME_STARTS and TURN messages. Now, theis_connected
field of disconnected players should be set tofalse
.
v1.1.0¶
- Commits since v1.0.1
- Release date: 2018-10-29
Added¶
- New CLI command
--simple-prompt
, that forces the use of the basic prompt.
v1.0.1¶
- Commits since v1.0.0
- Release date: 2018-10-23
Changed¶
- The repository has moved to https://github.com/netorcai/netorcai.
v1.0.0¶
- Commits since v0.1.0
- Release date: 2018-06-11
Added (program):¶
- The metaprotocol is now fully implemented. netorcai is now heavily tested under continuous integration, all coverable code should now be covered.
- New
--delay-turns
command-line option to specify the minimum number of milliseconds between two consecutive turns. - New interactive prompt.
Changed (metaprotocol):¶
-
- The
data
field has been renamedinitial_game_state
. player_id
: The “null” player_id is now represented as -1 (was JSON’snull
).- New
milliseconds_between_turns
field (minimum amount of milliseconds between two consecutive turns). - New
players_info
array used to forward information about the players to visualization clients.
- The
-
- The
data
field has been renamedgame_state
. winner_player_id
: The “null” player_id is now represented as -1 (was JSON’snull
).
- The
-
- New
players_info
array used to forward information about the players to visualization clients.
- New
-
- New
winner_player_id
field, which represents the current leader of the game (if any).
- New
The
DO_FIRST_TURN
message type has been renamed DO_INITNew DO_INIT_ACK message (game logic initialization).
Fixed:¶
- Various fixes, as the metaprotocol was not implemented yet — and therefore not tested.
v0.1.0¶
- First released version.
- Release date: 2018-05-02