Skip to content

Frequently Asked Questions

Darren edited this page May 2, 2024 · 9 revisions

Welcome to the clarity wiki!

What's the difference between clarity-examples, clarity-analyzer, and clarity?

The three repositories do different things. Choosing which repository to clone and play with entirely depends on what you want to do. What is your use-case? What you want to contribute to?

  • You want to write your own parsers for DotA 2 replays
  • You want to analyze data about DotA 2 replays and retrieve the data into your own desired format
  • You just want to use a pre-made application that analyzes the DotA 2 replays
  • You just want to see data in a pre-made user interface
  • You want to understand how the .dem files are processed
  • You want to understand how the data it encoded with protobuf
  • You want to contribute to the base library clarity used replay parsing

How do I find out the initial game time?

There are currently ongoing discussions about how game time is calculated.

See Calculating game time.

What is an unknown message type?

In some cases, you might find an runtime error saying:

unknown embedded message of kind SOURCE2/154. 

Please report this in the corresponding issue: https://github.com/skadistats/clarity/issues/58

In this case, @spheenik describes what an unknown message type is:

At the lowest level, the replay is a collection of "messages", or "packets", which are encoded with potobuf. On disk, only a packet type (as an int) is stored, so clarity needs to know, which protobuf message type has to be decoded how. This is done with the definitions in the package https://github.com/skadistats/clarity-protobuf.

So when clarity encounters a package type, it has no definition for, it warns you with this message. Valve add new message types every once in a while, and I have to update clarity-protobuf accordingly, which I did not do for quite a while, since I am a lazy bastard.

How are unknown message type errors fixed?

He uses a separate project to extract protobuf definitions but also tweaks the protobuf definitions so that clarity remains backward compatibility for older replay files.

Do unknown embedded message errors crash the analyzer?

He says that unknown embedded messages should not crash the analyzer.