Age of Empires 2: Data analysis and strategies

Age of Empires 2 is a real-time strategy game that was released in 1999. Until today, there is an active competitive scene ( Active players are ranked using an ELO-rating. The system is similar to the system used in chess.

Each player selects one civilizations (e.g. Britons). Each civilizations has different abilities, for instance unique units or technologies. The aim of the game is usually to defeat the opponent by forcing a resign or killing all units.

A central element of the game is advancing through four ages: dark age, feudal age, castle age, and imperial age. Each age comes with increased availability of technology and military units. When a player advances to the next age is a critical strategical aspect.


Recordings of ranked games are available and can be parsed. This data can be analyzed to deduct characteristics of different players and civilizations. The following analyses were created with this dataset. The dataset contains over 1000 high-level games on the Arabia map. The graphs were created with Matplotlib. The Jupyter Notebook that creates the graphs is available on GitHub.


This graph shows the rating of the players in the dataset. The dataset contains high-level players (Median = 2180) (Read CSV File in Python) (Histogram with Matplotlib).


I plotted the times when players clicked up to the next age first. Not all games reach imperial age.

This graph plots the time when a player clicked on feudal, castle, or imperial age.

Medians: Feudal = 7.8, Castle = 18.4, Imperial = 34.6. The deviation of the values increases due to strategical choices and the progress of the game.

Civ differences in uptime

The following graphs shows the up times split by the civilizations selected by the player. The graphs show considerable differences between the civilizations, indicating strategical differences based on the characteristics of the civilizations.

Uptimes by player

The following graph shows the uptimes split by a selection of high-level players. Additionally, the median value for the uptimes is shown in blue in the graph as a reference.