Clarity is a parser for Dota 2 and CSGO replay files written in Java.
Today (July 18, 2019) I merged work on a big new feature, which aims at reproducing entity data more accurately. While making parsing entities quite a bit slower, the data it produces is much more accurate, and the related events (@OnEntity{Created,Updated,Deleted}) contain less duplicates.
This also fixes longstanding issues, like entities with the same handle getting instantiated by the parser multiple times, preventing client code to reliably hold a reference to an entity.
It has already been battle tested with some closed source parsers, but you might still find problems - so use 2.5-SNAPSHOT with caution, and report bugs!
Today (Febuary 21, 2019) version 2.4 has been released. It contains fixes and improvements, while being backwards compatible with code running on 2.3.
clarity produces the following data you might be interested in from a replay. Choose from:
- combat log: a detailed log of events that happened in the game
- entities: in-game things like heroes, players, and creeps
- modifiers: auras and effects on in-game entities
- temporary entities: fire-and-forget things the game server tells the client about*
- user messages: many different things, including spectator clicks, global chat messages, overhead events (like last-hit gold, and much more), particle systems, etc.*
- game events: lower-level messages like Dota TV control (directed camera commands, for example), etc.*
- voice data: commentary in pro matches*
- sounds: sounds that occur in the game*
- overview: end-of-game summary, including players, game winner, match id, duration, and often picks/bans
* unprocessed: data is provided as original protobuf message object
- Java 7 or 8
- Maven
Fetch the current stable version (2.4) from Maven Central with
<dependency>
<groupId>com.skadistats</groupId>
<artifactId>clarity</artifactId>
<version>2.4</version>
</dependency>
Clarity 2.5 is work in progress and only available as a snapshot, so you got to add a pointer to the repository to your pom.xml (see the pom.xml of clarity-examples, which already does that)
To add the snapshot repository, add the following:
<repositories>
<repository>
<id>sonatype.oss.snapshots</id>
<name>Sonatype OSS Snapshot Repository</name>
<url>http://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
and then fetch the dependency with:
<dependency>
<groupId>com.skadistats</groupId>
<artifactId>clarity</artifactId>
<version>2.5-SNAPSHOT</version>
</dependency>
For example code, please see the the separate project clarity-examples.
See LICENSE in the project root.