Git Product home page Git Product logo

clarity's Introduction

Clarity 2

Clarity is a parser for Dota 2 and CSGO replay files written in Java.

Caution - new feature

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!

Version 2.4 released

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.

Replay Data

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

Requirements

  • Java 7 or 8
  • Maven

Usage

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>

Example Code

For example code, please see the the separate project clarity-examples.

License

See LICENSE in the project root.

clarity's People

Contributors

axisk avatar ferristseng avatar flxme avatar howardchung avatar kolpa avatar mfajer avatar psimage avatar spheenik avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.