Building the Sistine Chapel of CS:GO Demo Databases— An Interview with Shoobie
Every once in a while a software project catches my eye that totally captures my imagination and reinforces my beliefs in the inherent strengths of esports as the data rich activity that it is. With every player footprint digitally logged in demo files we have at our fingerprints the ability to segment and recall data that other sports would die for. The implications are potentially massive for the future of broadcasting and storytelling, team performance review, and individual player skill improvement.
In this article I wanted to switch up the pace from my usual critiques of the esports space and instead chose to focus on the passionate builders that offer us a glimpse into a brighter future.
A future where we’ve learned to harness the powerful data that we produce and build meaningful products for both past, current, and future players.
Meet, @Shoobie, a CS:GO player turned developer who decided to take his skills as an in-game leader into his own hands by creating a powerful replay directory called Demo Dive
Before going any further, I highly suggest watching the video below to get an idea of just how convincing this software is. Since posting on March 31st it has gone on to receive over 388,000 views.
What inspired you to create DemoDive, and what do you hope the platform achieves in the esports space?
As a previously aspiring CS:GO player trying to climb up the ranks, I found myself stuck at a certain level, and feeling like time was the major factor in preventing me from climbing further. As an IGL who wants things done in a very particular way, I normally spent a lot of time sifting through demos trying to find very specific types of plays. Because I work a fulltime job as well, this meant that most nights I would have to pick between individual aim training, or demo watching for the benefit of the team, hence the feeling that I was stuck at my level. This is the tool I would have wanted whilst I was still actively playing, and I’m hoping it levels up the playing field between players who have a lot of spare time, and those with less who want to get better.
Tell me a bit about your background as a gamer and how its intersected with coding. Do you remember the lightbulb moment you had for DemoDive?
Well I’ve been playing games in general since I was very young, and being a gamer inspired me to go into software development as a whole. I think everyone who grew up playing games aspired to be a video game developer at one point in time, which sent me down the path that I am on now. As said in my previous answer, the fact that I was a player who wants things done in a very precise way and looks at things in that way, meant that a tool like this is what I had thought of probably about 3 years ago. I only just got the spare time over the previous year to finally work on it and to try and make it a reality.
How many hours per week would you say on average you committed to getting DemoDive to the point that it is now?
Essentially most nights after work ended (5pm) I would be working on it, some days I would get more done than others but you could say it probably was around approximately 40 hours a week for a year straight. I initially started working on it before AI tools were a thing, so the main resources I initially used were stack overflow/documentation/youtube tutorials for the most part. Once ChatGPT became popularised, I gave it a shot and it ended up essentially acting as a powered up Google search for me, so it helped accelerate my learning/development a lot.
How do you see DemoDive contributing to the growth and development of CS esports and what role do you think DemoDive can play in the process?
Honestly speaking I don’t know if it will contribute anything to the growth of CS esports at the high end. I’m unaware of the sorts of tools that tier 1 orgs posses, but for the aspiring player I feel like this is a game changer. CS is already at a relatively high level at the EU Main/Advanced level with the amount of differing styles/theorycrafting that goes on, but a tool like this could potentially allow people to find reactions/counters to all sorts of styles a lot faster than previously capable.
How do you handle the massive amount of data required for a project like this and what tools or technologies do you use to manage it?
So initially, it was implemented in MongoDB since query speeds were always a high priority of mine, and my basic understanding at the time was that SQL = slow and NoSQL = fast. However I found out that is only true when you have a lot of resources to scale out with hardware, which I couldn’t necesarily afford since this is still just financially backed by myself only. So because of that, I looked into Postgres, and it turns out that if you invest time into setting it up properly, it can be very efficient, even with large datasets at a much lesser cost.
What sorts of words of advice do you have for budding esports developers looking to build products/services for their games?
I think just aim to build something that is actually useful. There are a lot of cool datapoints you can extract related to games, but focus on what is actually important for a user to be know. Also, generally speaking players are kinda lazy, so try to make it as easy as possible to use your service!
And lastly, AK or M4?
AK :)