Skip to content

Two Player Planning Track Specifications

Raluca D. Gaina edited this page Feb 12, 2018 · 1 revision

These are constraints for the two player planning track:

  • The constructor of all agents must return before 1 second has passed after is called; if one fails to do so, it will be disqualified from the level played. If the game requires at least two agents to be active, the level ends.
  • The controllers have 40 milliseconds each to return an action when their act function is called. The actions received from the controllers in one game tick are executed in the order of the players (first player 1, then player 2). This is due to VGDL limitations and is made up for by playing each match twice, reversing the order of the players in the second one.
  • Should an agent return the action after the time runs out, the following two situations may occur:
    • If the call took between 40 and 50ms, the action applied will be ACTIONS.ACTION_NIL.
    • If the call took more than 50ms, the controller will be disqualified from that game. The consequence of this is losing the game, and getting a score of -1000 points.
  • Important rule: Controllers must always aim for the 40ms target. Aiming, on purpose, for the 50ms to enjoy more computational time is considered an unsportsmanlike behaviour, and it will cause the disqualification of the controller from the competition. You should take into account that the purpose of this time slot 40-50ms is to prevent your controller from being disqualified too often because of miscalculations during the action time.
  • All controllers must be written in Java. The main Java class must inherit from core.player.AbstractMultiPlayer.java and it must be named Agent.java. Its package must be the same as the username you used to register to this website.

Rankings specifications:

  • Controllers can be submitted to the training and validation sets.
  • A new entry will start as unranked with default scores, regardless of previous submissions to the same game set. The default scores are game specific and determined as the average of all scores obtained in that particular game by the other ranked entries.
  • After playing a run, the scores of the controllers which were part of that run are adjusted using the Glicko-2 system. Glicko-2 takes into account the old scores of both controllers, which one won, the system's confidence in the current rankings (which is lower in the case of controllers that are new or that don't play very often - this measure is also used to select controller for new runs) and the expected fluctuation of the scores (which would be higher if, for instance, a controller usually loses and it suddenly wins).
  • In case of ties, the percentage of wins, the average game score and the average timesteps are used as tiebreakers, in that order.
  • If a run crashes, the scores of either controllers are not affected. If a controller crashes in more than 20% of its runs and if it played at least in 5 runs, it's status changes to crash and it is taken out of the rankings.
  • If controller A is disqualified in a game, its score is calculated by counting it as a loss and a penalty of 100 points is given. Controller B's score in this situation remains unchanged.

Table of Contents:

Clone this wiki locally