Skip to content
Andrew edited this page Oct 3, 2013 · 22 revisions

Getting Started
In a Hurry?
What does Skadi enable?
FAQ
Reference
Contact
License

Skadi

###What is Skadi?

Skadi is a Dota 2 replay parser. Skadi takes a replay of a Dota 2 game, processes the file and makes all the information available to use in plots & data analysis.

This project does not yet use semantic versioning. There is no public/private API distinction at this point, though we are increasingly resisting changes to the main demo/streaming interface. For now, best to use Skadi with some caution. It may not be production ready. For up-to-date information, join #dota2replay on Quakenet IRC.

Getting Started

###Installation

Skadi comes in two forms; as a pure Python library and as a cython optimised library. The cython version is significantly faster (from 2x to over 3x the speed), but may not work on all systems. To install the cython version, use:

python setup.py install

And, if that fails, the pure python version:

python setup_basic.py install

If you are doing development work on skadi, or don't want to install it but still want to use the cython accelerated modules, you can build the cython modules in place:

python setup.py build_ext -i

Dependencies

Cython

The following C libraries and development headers are required

  • snappy
  • python-dev

And the python packages

  • protobuf

To install these dependencies with Ubuntu/Debian, the following may work:

apt-get install python-dev python-snappy python-protobuf

Pure Python

The following C libraries and python bindings are required:

  • snappy

And the python packages

  • protobuf
  • bitstring

To install these dependencies with Ubuntu/Debian, the following may work:

apt-get install python-snappy python-protobuf
pip install bitstring

In a Hurry?

Skadi examples

Examples scripts are a great way to get started learning Skadi.

also, check out the simple usage in the source code at bin/skadi

What does Skadi enable?

Skadi enables many kinds of statistical analysis, plotting and comparisons of game data with 100% accuracy. Because the data is coming right from the replay file, you can calculate statistics on your own play, compare your creep score against others over the game, plot all net worths over time. Right now, skill shot analysis is being explored, such as a Pudge hook or Mirana arrow %. For some examples of what has been done so far, see the example scripts

Dendi's Radiant Invoker Invocations
Radiant Invoker
recent damage

What data is available through Skadi?

This is one of the biggest knowledge gaps with Skadi currently. The dem file does contain everything that is needed to replay the game via the Dota 2 client. We are still testing and exploring what Skadi will enable. We have a good understanding of player/hero related items (gold, health, xp, level, items, etc.) Modifiers (buffs/debuff) are a big area of interest, but have not been explored as extensively. Some entire tables may not be available through, skadi, only the values present in that particular replay. To get more detailed information about the game files, you can look into the VPK

FAQ

How can I help?

If you are familiar with Skadi, you can always help by checking the TODO: Beginner Tasks page for open items that others are requesting. These are usually items that the requester has looked at but couldn't figure out, or items they think are useful, but don't have the time to complete.

There's a bug!

We use the GitHub issue reporting system to track bugs. If you are unsure whether you have a bug or not, hop into the #dota2replay channel on QuakeNet IRC and we can help you figure it out.

Can I use Skadi for my own website/project?

The MIT License allows you to use Skadi for your own purposes, provided any copies of Skadi, or derivations of Skadi, retain the original MIT license.

Reference

Demo File Structure
Types of data encountered in Skadi
Example Scripts
TODO: Beginner Tasks
Areas to explore
Mapping

Contact

#dota2replay on Quakenet IRC is the fastest way to get in touch. Additionally, you can e-mail [email protected]

Thanks

Skadi uses the pioneering edith project as a reference implementation for parsing bit streams.

A big shoutout to the folks in #dota2replay on Quakenet. Feel free to stop by if you have any questions! (Be patient, we're around!)

License

We're counting on you: please mention Skadi when used in your projects. We ask for "Powered by Skadi" in the footer of your site template.

Skadi is offered under the MIT license.

This license applies to all revisions of source code until otherwise noted in the latest version of this document.