Coder Social home page Coder Social logo

clarity's Introduction

Clarity 2

Clarity is an open-source parser for Dota 2 and CSGO replay files, written in Java.

April 21, 2023: Version 2.7.9 released

Compatibility with Dota 7.33 - The New Frontiers Update

March 08, 2023: Version 2.7.8 released

Fix game events not correctly parsing.

March 07, 2023: Version 2.7.7 released

Yesterday, Valve released "The Dead Reckoning" update. This release adds a new "GameTime_t" data type to be able to parse new replays. The protobufs have also been updated to 4.29.

January 14, 2023: Version 2.7.6 released

Finally, protobufs have been updated to version 4.28.

You can use the new protobufs with older versions (they will use them automatically), however there have been some additions to the combatlog, and if you want to be able to access them, you need 2.7.6.

Also contains a performance update for Util.arrayIdxToString(), as well as dependency updates to bring everything to current versions.

Attention: Some dependencies could not be updated to their newest revisions, because they rely on a minimum of Java 11. So it's quite possible that I will up the minimum requirement to Java 11 in the near future as well. If you're still on 8, start working on it!

October 7, 2022: Version 2.7.5 released

Improve on the incomplete fix from yesterday.

October 6, 2022: Version 2.7.4 released

Fixes an issue with today's update, which introduced field path length 7.

August 01, 2022: Version 2.7.3 released

Fixes an issue with console recorded replays on a bad connection, where more than one entity update needs to be deferred.

July 27, 2022: Version 2.7.2 released

Fixes an issue with CSGO replays where entities with the same handle but different dtClass are created.

August 4, 2021: Version 2.7.1 released

Fixes an issue where bytecode generated was not executable on an older JVM.

July 27, 2021: Version 2.7.0 released

Version 2.7.0 brings support for running on JDK > 8. Tested with 8, 11 and 16.

June 24, 2021: Version 2.6.2 released

Contains a bugfix for replays with the new Nemestice update, as well as a fix for an NPE when using the LiveSource. Sorry for the double jump in patch level.

January 26, 2021: New releases and versioning model update!

Starting today, I will switch to a semantic versioning theme (MAJOR.MINOR.PATCH)

  • MAJOR will probably not change in a long time
  • MINOR will be increased when there are changes that I believe to be disruptive (and want you to test them first)
  • PATCH will be for bugfixes, like we had with the latest 7.28 update.

Today, I made two releases:

  • Version 2.5: this is simply the last snapshot as a release
  • Version 2.6.0: the first version using the new scheme

There will be no bugfix releases for 2.5, so please migrate your code in a timely manner.

Changes in 2.6.0

  • lots of restructuring / code cleanup regarding the field update parsing code (should not be noticeable)
  • package rename skadistats.clarity.decoder -> skadistats.clarity.io (global search/replace should suffice)
  • package rename skadistats.clarity.io.unpacker -> skadistats.clarity.io.decoder (global search/replace should suffice)
  • new event OnEntityPropertyCountChanged, which is raised when the amount of properties in an entity changed
  • with ControllableRunner (seeking), improved OnEntityUpdated to only contain FieldPaths that have been changed
  • small performance increase for BitStream
  • added proper handling of a special case with Dota 2 console recorded replays, which would throw an exception before

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 (minimum version 8)
  • Maven

Usage

Fetch the current stable version from Maven Central with

<dependency>
	<groupId>com.skadistats</groupId>
	<artifactId>clarity</artifactId>
	<version>2.7.9</version>
</dependency>

Example Code

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

License

See LICENSE in the project root.

clarity's People

Contributors

axisk avatar blukai avatar ferristseng avatar flxme avatar howardchung avatar kolpa avatar mfajer avatar noxville avatar psimage avatar spheenik avatar whoeza 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.