-
Notifications
You must be signed in to change notification settings - Fork 40
Home
###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.
The following packages are needed to run Skadi:
TUTORIAL IS A WIP
This will be a quick run-through of how to parse some data using Skadi. All you'll need is a working installation and a dota 2 replay file (.dem). The first thing you'll want to do is construct a demo file.
from skadi import demo
demo_file = 'YOURDEMOPATH/298738006.dem'
demo_var = demo.construct(demo_file)
# demo_var specifies the demo file per Skadi
tick, user_messages, game_events, world, modifiers = demo_var.stream(tick=20000)
# a stream is a representation of the demo file at a certain tick.
# It contains information about the game at that tick in various formats.
#Let's look at what kind of information is in the world.
This demo_var
is the Skadi representation of the .dem file. In order to get some useful information out of this demo, we first need to know when we should look. Demos are reconstructed using ticks. You can think of ticks as frames in the replay. Every 1800 ticks, the demo contains a full tick, which details all aspects of the world. The ticks in between are delta ticks, which contain the changes from the previous tick.
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 %.
*Dendi's Radiant Invoker Invocations
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.
#dota2replay
on Quakenet IRC is the fastest way to get in touch. Additionally, you can e-mail [email protected]
I use 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!)
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.