Ingame features at ESL One Hamburg

JJ “PimpmuckL” Liebig
layerth
Published in
4 min readNov 5, 2018

After we delivered some exciting features at ESL One Birmingham, we went into hibernation: Bukka was mostly working on the new Artifaction.gg project, Matt was somewhere in the world doing his things (I still have no idea what he does) and I was the little kid in the candy shop working my first The International and doing my usual consulting.

Right after TI was done, the new circuit promised to be the most exciting season of Dota 2 yet and with that, we went back to doing what we do best: Innovating on all fronts of the in-game production.

We focused on fixing back-end logic for our features and made sure everything was working for 7.19 but still had time to get some major new features rolled out.

Bounty rune details

This is one of those features we wanted to do for a long time and really captures the essence of the layerth stack: Packing abstract information into something the viewer can easily grasp and understand. The value changes throughout the game so it’s inherently hard to intuitively understand just how impactful the bounty gold is.

Bounty runes spawning every 5 minutes are a major reason why Dota 2 is as exciting as it is in this current patch. The high incentive to take risks in order to secure the golden runes for their respective team saw a resurgence of skirmishes all across the map, at times being responsible for the entire networth lead of a team.

Bukka added some little extra tidbits like who was the current pickup leader for their teams (EternalEnvy really seems to like them, he picked up eleven in Game 2 vs Aster) and how quickly teams picked the runes up, but most of the design was focused on delivering the raw value.

Simple, yet effective.

Since we killed all your data plans last time, we’re using SD Webm this time around..

Partnership with SAP

I had a very interesting talk with the SAP team in Birmingham that, at that time, was mostly focusing on creating analysis tools for Team Liquid. We kept in touch and quickly understood that we both had similar ideas about broadcasting in esports and how statistics can enrich a broadcast.

After TI was done, we met in SAP’s headquarters in Walldorf and we pitched several features that we suggested for this tournament. The idea was that SAP would provide us with historical data, while we collect the live data, take care of the design and integrate everything into our dashboard. With the limited time we had, we settled on two major features that we’d work on together.

Real-time networth graphs

Everyone who played a game of Dota 2 ever after Reborn got released will remember the networth graphs that show up after a game to check out just how much your farm skyrocketed after picking up that Radiance on Alchemist.

We wanted to do a live version of this for a long time, but really wanted some context for the graph. Simply throwing a line on the screen isn’t exciting for the viewer, nor the commentator.

Instead, SAP provided us with the average networth at each point of the game for every hero in the match. We also had an option to only select certain games: If I decided I wanted to only average all games since TI8 on a hero, I could simply choose that on our dashboard and SAP would take care of the rest. I mostly used 7.19 as a filter since that has an excellent sample size (I don’t mind destroying my sample size for 7.20 though, Valve please..) and provided good data for the most part.

Bukka also did some smoothing here and there and while the results were sometimes a bit funky, overall I’m very happy with the design, the animation and the impact on the broadcast.

“4”-Position

Item timings

The same idea applied to item timings. Providing historical context for item pickups seems like a natural thing and while it has been done by stats-persons in the past, we wanted to build a system that was very simple from a design perspective and didn’t require the significant work required for each pickup.

This is the screen I have on my tablet to control the features

This is how it works: For each major item pickup, we request the average and fastest timing on that hero for this event and this patch from SAP. Those timings then show up in the layerth dashboard and I can choose to show them on the observer machine. Yapzor casually breaking several records on CM (fastest Guardian Greaves this patch) and Kotl (fastest Sheep Stick this patch) isn’t only a cool tidbit of information, it also exemplifies just how well Secret prioritize their four position in the games and gives commentators a tangible number to talk about.

Up next

Getting feedback from viewers at ESL One (thanks for everyone coming to the SAP lounge on Saturday and Sunday for the chat!) and online (looking at you, r/Dota2) was valuable and we’ll continue to polish the current features we have. Differentiating between a BKB rush or the item being picked up after Dragon Lance and a Manta on Terrorblade is contextually important and we want to find a way to deliver that to you guys as well. We also want to expand the search range significantly. Seeing the fastest Maelstrom on Mirana in the history of Dota is something we want to capture as well, if possible.

Lastly, big thanks to ESL for taking excellent care of us and trusting us with yet another tournament. Always a pleasure!

--

--