2024-10-25    2024-11-03    1261 words  6 min

Introduction

I have been playing games for a while, and it has been usually FPS games, where it started from CS1.6 to CSGO for more than 3,000 hours and playing Valorant for 2 more years, and a couple of other ones, and at some point I realized I need to try some new style and started playing dota 2.

My first-ever game of Dota 2 was at around May 2022, where I had no idea what I was doing and why I was doing it, those 5 games I remember closing them in between and had no idea what to build by looking at the items in the shop. For context, Dota has around 125 heroes and understanding all the heroes takes significant amount of time, and even on top of it when I saw Rubick hero, which steals other hero’s spells, I was so impressed by the game design and I devoted a major amount of time understanding and tried being good at it.

The Journey Through Time

Overall winrate progression

If you notice, initially, for a few 100 games, I struggled understanding the game because of which my net wins were in negative. But slowly, I started winning more than losses because of which win rate did increase and got almost linear thereafter.

Win and Losses per month

This has always been surprising that my win/loss per month has been always approx 50%, still it doesn’t mean a player is not improving, for example plot above shows win/loss progression has been changing, and game itself is adapting which is giving me tougher games and slowly making me grow rather than throwing me in some random unfair game continuously.

Dota 2 Winrate

Dota 2 Gaming activity for past 3 years

Dota 2 Activity 2022 Dota 2 Activity 2023 Dota 2 Activity 2024

Playtime distribution

One of the best visualization which I did, personally I dislike playing in the morning even if I have time, but you will notice few played time, which is there because I did play few during the weekend.

Dota 2 Playtime Distribution

Playing patterns throught the week

This is an interesting plot, which shows my playtime across the week/hours, where if you notice, on weekend, I have been very aggressive towards playing early or playing late until 05:00

Dota 2 Playing Pattern

Heroes played throught my dota journey

As mentioned in the introduction, Rubick has been my favourite hero, and that was my hero which I have been aiming to reach grandmaster title (Title to prove my love for that hero); hence you might enjoy looking at this visualization of which heroes I have been playing for past few years.

View it in fullscreen for better experience

Heroes played by their attributes

Some interesting observation here, I hate playing agility heroes, and enjoy playing intelligence which are mostly supports and strength heroes which are offlaners.

Dota 2 Hero attributes

2024 Compendium quest

One of the best things I like about dota is the events which they bring out, I do feel bad thinking about some of the great or insane events which I might have missed before 2022, and looking at them now, I feel like I missed a lot there. CSGO on its own got maybe 1–2 operations in my 4 years journey but dota 2, holy they have been playing a totally different game, just look at their prize pool for 2019-2021.

The Compendium is like an interactive digital battle pass or seasonal passport in Dota 2 that turns watching and playing the game into an engaging collection experience. Think of it as a combination of a fantasy sports league, a digital collectible album, and a progression system.

The end goal is to reach 300lvl which in turn gives you a miniature size trophy of “The International” which is like a major tournament which happens once every year. To achieve 300lvl, one has to complete some objectives to get lvl:

  1. Play and win one dota game every day for 8 weeks continuously
  2. Play fantasy game and if you are under 99 percentiles
  3. Predict tournament winners
  4. Achieve patterns in bingo cards

Result

Bingo

In Bingo, total I missed 3 cards, which is actually good as I lost only 6 levels.

 Bingo card 1
Bingo card 1
Bingo card 2
Bingo card 2
Bingo card 3
Bingo card 3

Fantasy

In Fantasy, I reached maximum 99% rewards for two parts, in the second part, somehow I messed up the key attributes assigned to players.

 Fantasy 1: 99.01%
Fantasy 1: 99.01%
Fantasy 2: 96.90%
Fantasy 2: 96.90%
Fantasy 3: 99.15%
Fantasy 3: 99.15%

Oracle: Win Prediction

Win prediction was actually tough for me, surprisingly prediction for Team Liquid has been so on point, I did hope of tundra winning, but that didn’t happen hence, I lost few of the points there.

 Decider
Decider
Lower bracket 1
Lower bracket 1
Lower bracket 2
Lower bracket 2
Finals
Finals

Point logs

As you might have seen, I have been doing data-driven decision, and collecting data has been a challenge, when it comes to point logs for my compendium 2024, I didn’t know how will I be able to export this data into a table?

I tried using vconsole2 which shows network calls in dota 2 coordinators, but it didn’t show any raw message, I tried using Wireshark as well to intercept the message, but then binary data is difficult to decrypt. Based off my knowledge, I didn’t know whether it is possible or not; hence I decided to go the tough way, which is letting computer vision do its job manually.

Hence, I recorded a points log video which scrolls from bottom to top and used each frame and fed it to Python OpenCV code to detect unique entries and created a CSV file.

 Frame from video
Frame from video
Grayscale
Grayscale
Thresholding
Thresholding

Full source code: Link

Video link: Link

And finally, the parsed CSV file: Link (2 week of points missing)

Conclusion

Dota 2 Hero attributes

Overall, I spent initial money to purchase compendium 2024, and 1 extra set of levels to complete my 300 levels, and as of now I am really looking forward to Aegis 2024, hence looking forward to posting an image here :)

I regret buying extra level, as I didn’t knew if Week 8 will still be in progress hence as of now my final level is 343.

Bonus

Hackerman moment

Dota 2 Hero attributes
03 Oct
0.01h
07 Oct
0.02h
10 Oct
0.05h
14 Oct
0.01h
21 Oct
1.71h
22 Oct
2.99h
23 Oct
1.97h
24 Oct
3.73h
25 Oct
1.21h
In total I spent approx 11.7 hours or more to write this blog post with 9 sessions.
Thank you for reading till the end :)