Dotalys 2

Dotalys 2 is a tool to parse and analyse replays of the popular MOBA game Defence of the Ancients 2 (short: Dota2) by Valve Software. Dotalys 2 is a tool I wrote in 2013 and it is extended as necessary. If you’re just looking for the tool’s source code, it’s here.

Defence of the Ancients 2 (Dota 2)

In Dota2 two teams of five players each take part in a battle that lasts aprox. between 45-60 minutes. Like in similar real-time strategy (RTS) games, the game is viewed from a bird’s eye perspective, looking down on a map with forests, rivers, and buildings, on which different units move and fight. But unlike in “normal” RTS games, players only control only one unit, their hero. The challenge with Dota2 (and similar games) is, that their are more than 100 different heroes to pick from, each with their individual abilities, strengths, and weaknesses.

The goal of each team is to destroy a row of buildings, towers, until they are finally able to destroy the enemy base and its heart: the name-giving ancient.

Each team is supported by an army of computer controlled monsters, the so called creeps. An additional element of the game is borrowed from role-playing games: each hero can be equipped with a variety of items that strengthen the heroes’ abilities and properties, but those items have to be bought with in-game gold, which can be earned from decimating the enemy team’s creeps.

Dotalys 2

Dotalys 2 (a word mixture of Dota2 and analysis) is a tool to parse and load Dota2’s replays; a recording of all in-game data of a match that can be used to reproduce and “replay” a match like a video recording. These replays are often used for tactical analysis of matches, as well as an analysis tool of the overall game mechanics. For example, sites like dotabuff.com collect popularity and winning percentage of each hero. Furthermore, popular items and the way they “level up” (Skill tree) are collected.

With Dotalys 2, I went a step further and started up plotting events in a spatial context, i.e. where they happen on the map. This is especially interesting to do detailed prediction of tactics and counter-tactics. As a first step, I extracted the movement pattern of each hero on the map.

Dota2 movement
The movement pattern of a player plotted over a schematic representation of the game map.

This can be further analysed into the areas where a player is located the most during the game.

Heatmap of player moevment during a Dota2 match.
Heatmap of player movement during a Dota2 match.

Other functions of Dotalys 2 include the visualisation of skill trees and bought each player, as well as plotting descriptive statistics of various variables.

Visualisation of the order a player increased a hero's skills
Visualisation of the order a player increased a hero’s skills

Downloading Replays (Dota2Replay downloader)

In connection with Dotalys2, I wrote a small tool that enables you to download a Dota2 replay out of Valve’s cloud. It’s a command line tool for .NET Windows and the parameters should be pretty self-explanatory. It requires a (non-steam guard protected) Steam account and optionally a Steam Web API key.

Disclaimer: this is a proof of concept program that spoofs the steam client using SteamRE. I can’t give you any guarantee that this works for you, will work in the future or what (not) happens to the Steam account you use with this tool.

You can download it here.