2048 Controller Competition @ GECCO 2015

The goal of the competition is to learn an evaluation function for 2048. It is an addictive single-player, non-deterministic, puzzle game that has recently taken the Internet and mobile devices by storm. One of the reasons of the game’s massive popularity is that it is very easy to learn but hard to master. The difficulty of the game together with the simplicity of its rules makes it also an interesting testbed for computational intelligence methods. We propose the competition to encourage comparison of different (evolutionary or not) learning algorithms and evaluation functions.

Final results (ranking):

  1. IeorIITB2048 (Devanand and S. Kalyanakrishnan): 18245.6 ± 660.3 [pdf]
  2. Treecko (T. Chabin, M. Elouafi, P. Carvalho & A. Tonda): 5334.3 ± 171.0 [pdf]

Results presentation at GECCO 2015



To enter the competition participant teams must register by sending an email to wjaskowski@cs.put.poznan.pl with the subject “2048 [TeamName]“, where [TeamName] is an actual team name, containing the names and affiliations of a team. There are no restrictions about team composition.


The teams are supposed to learn a controller which plays the game 2048. The controller code should follow the technical specification. Notice that i) we accept only controllers that can be executed on Java Virtual Machine (consult the list of JVM languages) and ii) the controllers must make actions very quickly. This is because the competition is learning-oriented rather than search-oriented.

To submit the controller send an email to wjaskowski@cs.put.poznan.pl with the subject “2048 [Teamname]“. The email should contain:

  1. A link to single jar file (TeamName.jar), no larger than 100MB, containing an agent prepared according to the technical specification. The jar has to be self-contained.
  2. A fully qualified name of the agent class inside the provided jar (e.g., mydomain.agents.MyTeamAgent).
  3. A pdf with two pages-long description of the method used.

Submission deadline: June 30, 2015

Competition Rules:
  1. The controllers will be ranked basing on their average score.
  2. Each controller will play at least 1000 games in order to estimate its expected score (or more, if required to differentiate the top controllers).
  3. In principle, a controller has 1 ms to choose each action. However, for practical reasons, we will measure only the average time per action. The team will be disqualified if this value is greater than 1 ms.
  4. The controllers will be executed on a machine with the following specification: POSIX OS (Linux or OSX), CPU: at least Intel(R) Core(TM) i5-4308U CPU @ 2.80GHz, at least 8GB of RAM.
  5. The controllers are not allowed to write on disk.
  6. The controllers are not allowed to create threads.
  7. The controllers are not allowed to communicate over internet.
  8. Entering the competitions, the participants accept that all the submissions (i.e., jars & method descriptions) will be made publicly available on this website after the competition is finished.