Return of datdota

Ben Steenhuisen
datdota
Published in
4 min readMar 31, 2017

The board is set… the pieces are moving

It’s been a very long year, but datdota is FINALLY BACK.

For those who aren’t familiar with datdota — it’s a database primarily aimed at Dota 2 statistics enthusiasts who are interested in professional matches. It allows for users to easily run quite complex queries with convenient filtering and was the leader in pro Dota 2 tools. Not only does it help you answer your questions about Dota 2, it also provides a gateway to question more and more.

Almost exactly a year ago the original datdota site started having technical issues as an important database index kept breaking. The entire collective of stats people, analysts, casters and professional players who used it were in a slight unease — myself included. Functionality came back briefly, and then on 1st May, Martin Decoud announced he’d no longer be able to support the project moving forward into the medium-term future, and asked me to. At first it was planned he’d maintain it in the short term (until The International), but when 6.88 came out in mid-June and broke many things, this plan was abandoned.

This sudden shock removed some crucial lead time I hoped to have gearing up to relaunch the site. Working for various events including The International 2016, ESL Frankfurt, The Manila Major, DreamLeague Season 6 and the Boston Major not only took even more of my free time away — they also had pressing stats demands, which were my first priority to deal with.

Other than that — my goal has been to relaunch the site as soon as most of the widespread functionality of the existing site was implemented, and I was very happy with the accuracy of the data. I’m glad to say that both of those are in place — so the launch is a go!

Of all the inquisitive Hobbits, Peregrin Took, you are the worst.

We’ve attempted to parse all 17423 professional and semi-professional post-Source 2 matches we can. Most of the replays were available via the existing CDNs, but some we had to acquire from backups, and a few are truly lost. For most analysis. the default view is of “professional” games, and this is consistent with how datdota used to run (professional vs ticketed). However, we also parse semi-professional games for when a larger sample size might be required at the cost of some professionalism. Amateur games are not even collected — there’s so much broken and dodgy data in them. Also, fuck ‘em.

The site should pick up new games of active leagues within 30–45 seconds of their completion, and parsing of them triggers automatically after this (no long waits required for data to sync in). Leagues that haven’t had games played in a month might take 5 minutes at worst.

One significant change is that “Fives” have returned under a new name — “Frames” and are now per-minute snapshots, not per-five-minute snapshots.

Most queries are optimized quite substantially for performance, and are expected to run in < 5 seconds even under load. Some pages which are very complex (Frames, for example) and require multiple queries might take a few seconds longer. As always, if you require a large amount of data, feel free to poke me.

I have wished you joy since first I saw you.

The list of features yet to be added currently numbers around 50 items, and I’ll continue to add to this as requests come in; doing the high priority and interesting ones when I get free time to do so. The top priority of this list is our API — to support access to all the data programmatically, and somewhere in the middle of this list is updating the parser for Source 1 replays. If you have any suggestions feel free to pop into our Discord (http://discord.gg/datdota), or ask on Github (https://github.com/datdota/datdota/issues). I expect some minor quirks and bugs to come out of the woodwork, and it’s likely the site gets Reddit hug-of-death’d so please be gentle.

A few of the people who seemed very motivated to help out datdota and contacted me about it were dished out some frontend visualization tasks. If you’re interested in enhancing a page with a specific visualization or a new page altogether — feel free to poke me.

At this time I’d just like to make special thanks to a few people who’ve helped out, either in design, code, functionality or motivational support:

  • Invokr (https://github.com/invokr/) who spent a great amount of his personal time writing almost the entire parser.
  • All the Standard Deviants who were part of the beta testing and gave, and continue to give such great feedback (specifically Daeja and GorgonTheWonderCow).
  • Nahaz
  • Scant
  • Cyborgmatt
  • sad phyre
  • DanielJ (❤)
  • Spheenik
  • Martin Decoud
  • Any many more (if I had to list everyone, this would probably go on for a while).

So check it out, www.datdota.com

--

--

Ben Steenhuisen
datdota

Dota 2 statsman and occasional caster | runs @datdota