Numeromancers of LoR
Most articles in our website revolve around two things: decks, and numbers (and decks with numbers on top!)
… because, at the end of the day, numbers are how you compare apples to oranges, rocks to papers and scissors, and yesterday’s meta staple to today’s hot new tech.
We all have a broad idea about where decks come from – sometimes a lone brewer cracks the code of a specific Champion pairing, more often than not it’s a community-driven iterative process in which decks are tweaked and refined and fine-tuned…
… but where do the numbers come from?
And who are the folks behind those numbers?
Take the MasteringRuneterra match-up table, for example: Who gathers, and laboriously crafts, all those rows and columns so the rest of us get to know which way is up, and what beats what?
For today’s article, I had the pleasure of talking to two of those folks:
- Balco, source of said numbers (and a good chunk of any number you may see in our Monday Meta Report or Weekend Warrior Weapons articles), and
- Diego, aka bA1anceLoR, crafter rows and columns (this link is the extended, unabridged version of the one found on MasteringRuneterra)
About real life, and finding LoR
So, what do you guys do in real life?
Balco: I do data analysis and coding for a mobile videogames company, so gathering and presenting data is pretty much part of my day job.
Diego: In my case, I guess you could say I’m a numbers guy, although not a coder: I’m a civil engineer working in land development as well as a land surveyor in training.
And were you card slingers before LoR?
Balco: Oh yes! I started playing Yu-Gi-Oh when I was a kid, I played it for around 10 years. I switched to Hearthstone when it came out, since the idea of a digital card game was pretty cool (and also free to play!) and played for a couple of years but eventually got bored and stopped.
Diego: In my case, by cardboard gateway was Magic: the Gathering, back when Odyssey was just released. My friends and I were having fun with Invasion starter decks, then after we played some drafts, I grew very interested in combo decks after learning that something as innocent looking as Scroll Rack facilitated shenanigans and Mind Over Matter + Tolarian Academy could do broken things.
Nice to find a mind that appreciates the complex beauty of a combo! And how did you guys find your way to Runeterra?
Balco: Through League of Legends in my case – I’ve been playing LoL for a few years (and still do), so when I heard that Riot was developing a CCG I jumped into it since the very first preview patches.
So you’ve been playing LoR since around November 2019?
Balco: Yep, something like that.
Cool! I have to admit LoR flew under my radar by that time. How about you, Diego? Did you switch from Magic directly to LoR, or did you play other card games in between?
Diego: Quite a few other digital CCGs, actually – SolForge (which was yet another card game with Richard Garfield behind it, and also Brian Kibler), a bit of Hearthstone, then Eternal (which is very similar to Magic, with Luis Scott-Vargas and Patrick Chapin in the developing team).
When I learned about LoR, during the closed beta, it sounded like a very cool mix of Magic, SolForge, and HS all in one. I wanted to play MtG competitively, but I knew it was too expensive a hobby and my lifestyle wouldn’t allow for it.
Yeah, I have it from good sources that paper Magic, or even Arena, is not exactly cheap. So, did you also start playing during the closed beta?
Diego: During the open beta, actually, although my game time was limited because I don’t have much time for gaming on a PC, so I usually play on my phone.
I started playing more during the full release, at the end of April, and since I’d like to be a competitive LoR player, I listened to my more experienced friends: I dropped all other card games, and focused what little time I have on LoR to see how far I can go.
That’s some commitment… did you also stop playing other games genres, too?
Diego: Well, I do love action and RPG games (think The Legend of Zelda and Final Fantasy) and the occasional RTS game such as Clash Royale, but I try not to play too much so I can give my family the time they deserve. On the other hand, I have two sons and, while I don’t want them to get addicted to games, it’s amazing how easy it is to relate and spend time with them on games like Mario Kart, Sonic Dash, and Angry Birds. So, no, I haven’t completely stopped playing other games! =)
Balco: In my case, I haven’t been playing that much LoR lately – I have little time to play in general nowadays, so on PC I’ve been mostly playing League of Legends.
About your LoR data journey
So, how did you go from card slingers to number crunchers?
I’ve been working with Riot’s API [note: the API is how developers like Balco can request live data from Riot’s servers, allowing them to collect decklists and match data that they aggregate to give the rest of mere mortals the winrates & playrates of said decks] for LoR since around September 2020, during the very first LoR Masters Europe qualifier. Runeterra.ar did not have a leaderboard by country yet, so, since I’m Italian, I made a website to track the Italian players using the Master Leaderboard API, and shared it with the Italian community.
Halfway through the qualifying period, Riot also added the Match History API (previously only the Master Leaderboard was available), and I immediately started doing stuff with it – mostly just to track the other Italian players and what they were climbing with.
This is an example of how our reports looked like back then…
… and this is actually the very first one I did:
… which was also when I added decklists, to check what other players were bringing to the fight.
And armed with those numbers, did you… “calci nel sedere”, I think you say in Italian?
Balco: Kick butt, you mean? Not enough to qualify for the tournament, sadly! =)
It did get me to start thinking about how to also make reports and other stuff, but it was quite complicated. Unlike LoL, in LoR you can only collect the 20 most recent matches of a given player, so I would have needed to not just gather the data once a week, but rather do it constantly, and also store it in a database. That’s why, although in theory I could have started doing my reports back then, I put the project on hold.
But then, in April this year, Legna [note: another API developer, whom if you’ve read our Meta Reports and Weekend Warrior articles you’re probably well acquainted with] started doing his reports, and he was approaching the problem in the same way I thought… even using the same programming language!
It was really cool, and it pushed me to start doing my own version. Also, having someone else doing the same stuff you’re doing is useful since you can bounce ideas or ask the other for aid at any time – this helped both of us a lot (or, well, at least helped me for sure – I can’t talk for Legna! =)
For those that may be curious, here’s the very first iteration of my report: https://rpubs.com/balco/LoR.
And you, Diego? I think I found your matchups tables back in the Dark Ages of Azirelia, trying to find something to counter it, but you started doing them before that, correct?
Diego: Yes, although I kept them private for some time.
Around December 2020 I found a matchup spreadsheet by none other than Cephalopod and I asked my friends (namely TheNotoriousGHP, Ipwnfour / Erocdrah in game, and lorgi) about it. They helped me interpret it, which in turn led me down a path to figure out how much importance to put into the numbers (win rates and sample sizes) and gave me a feeling for confidence intervals and what they meant.
In particular, my friend TheNotoriousGHP gave me analogies from League of Legends, and how the Pros could take a Champion that everyone else did subpar with, and just crush all competition – his insights related well to the Zoe Lee Sin deck in LoR, so I was able to grasp what he was teaching me about.
After than I subscribed to Mobalytics premium [note: unlike Balco’s data, which comes from Riot via the API, Mobalytics gathers data from players using the Mobalytics tracker, which allows them to collect data like mulligan rates and such, which Riot’s API does not provide], and in January 2021 I started creating my own spreadsheet.
It was a bit unwieldy, and took many hours to update, so shared only with my close friends… until I saw the Riot Fist Bump card back.
Ah! That’s the one cosmetic all content creators dream of!
Diego: Exactly! It was so cool to see Riot awarding such an awesome card back to players who give back or contribute to the community at large, that I wanted to be among those players fist-bumped by Riot.
That’s when I started sharing my spreadsheet as well as asking for feedback and soon after that I met the awesome statisticians in the community, such as Kozmic [note: a popular streamer, who used to do a widely popular Meta Report on Reddit ], Dr. LoR [note: arguably the most sophisticated LoR data analyst, known for his deck optimization tweets & reddit posts, and his Meta Report on runeterraccg.com], Legna, and Balco!
Had you guys done something similar previously? I mean, for other games?
Balco: No, never. I don’t even know if any other company makes their data available to everyone in the same way that Riot does – Blizzard (Heartstone’s developer) definitely doesn’t, data can only be collected from deck trackers, like Mobalytics does for LoR.
Diego: Me neither, I’m not doing anything like this for any other card game. LoR is my passion largely because it’s free-to-play (allowing me to splurge on cosmetics) but also because it’s so awesome!
[note: I didn’t think it was elegant to bring it up in this interview, but if you sift through Balco’s or Legna’s twitter & meta reports as much as I do, you’re also bound to learn that buying other developers a virtual coffee is another thing Diego splurges on =).]
So, this being your first attempt at gathering data, and crafting reports and match-up tables… I’m guessing it was a bit of a bumpy road?
Balco: Yeah, the hard part was probably starting out. Nobody had done it before Legna and me – so, we couldn’t just go and ask someone else, because there was no one to ask. I mean, even today there’s a lot of stuff that I’m probably doing wrong, but I’m learning as I’m doing it.
One thing that has always been clear in my mind, though, is that whatever I do, it needs to require only minimal effort to maintain. So, in the future, even if I don’t have time to keep developing my website any longer, it will still work for anybody interested. Take for example the weekly Meta Reports: Maybe including comments or some detailed analysis every week would make them more interesting and useful, but right now they are always identical because that way I know that I can keep doing them indefinitely, since they require minimal effort from me.
Diego: The hardest part used to be setting up the spreadsheet whenever new cards were released, or whenever a balance patch changed the meta. Since I don’t have time to learn coding, that was a bit of a pain: It used to take me 4-6 very grindy hours of manually typing the Mobalytics data into each cell of my matchup matrix.
Now that I know somebody who does code, fortunately, all that is automated and I just copy and paste the data from Balco’s website to the formatted spreadsheet. I still need to find time during the weekends to update it, but it’s easy enough to do during the weekdays.
Anything Riot could do to make you data folks’ life easier?
Balco: It’s always a thorny topic to say, “I think this would be easy”, but my guess of something that is both doable (from Riot’s perspective) and really useful (from ours) would be to include a player’s Rank in the data we gather via the API.
That could help us data collectors a lot – we only have access to the Masters Leaderboard right now, so we have to do some workarounds to guesstimate other players’ ranks, like Diamond and Platinum.
For example, I track players that were Masters last Season (but haven’t reached Master this season yet) as Plat+ players. And Legna uses ‘players that play against many Masters’ as High Diamond players. But if the API gave us the actual Rank, (or, even better, Rank and Tier), it would be both easier and more accurate.
Another thing that would cool would be to add the players’ tags in the Master Leaderboard. Right now we can only see the names, for example “BBG”, but people can share the same name (it’s the combination of name+tag that is unique). I could have multiple players with the same name in my database, and can’t always be sure which one is Master and which is not. This usually affects very few players, therefore it doesn’t change the whole picture much, but it’s something that could be easily fixed.
Diego: I’ll defer to the coders and statisticians doing the heavy lifting on what Riot could do, but I hear it would be super helpful if we had access to all the game data.
Balco: Ah, yes, that would be the dream!
What I’ve just talked about are the things that I think are easy to do – but, of course, having complete information on how a match played out would be wonderful. I mean, stuff like what happens every turn, which cards were drawn, which card was played when… When I started playing Zoe Nami for example, it took me way too long to understand that I was supposed to pass on turn one and two, play a spell on turn three, level Nami on turn four. Maybe with this kind of data I could have seen that players who go pass, pass, spell, had higher winrates, and I would have started doing it sooner!
That would indeed be the dream… but it’s probably a bit unrealistic, as dreams tend to be.
[note: Riot limits how much data per hour a third-party developer can gather via the API, since consulting with Riot’s servers has a bandwidth cost – that’s one reason Legna and Balco focus on Master and Plat+ players, since they cannot gather data from every player out there. It stands to reason that Riot won’t be able to share every bit of data, even if they wanted to.]
Alright… enough about numbers: Let’s talk about decks!
Which would be your favorite deck right now?
Balco: I haven’t had time to play a lot lately, but if I had to choose one, it would probably be Veigar Senna since it’s the only SI control deck in the meta.
Diego: Ahri Lulu PnZ for me (Chompers madness!), as its matchup spread is impressive, and the deck feels like it can always navigate to a win.
You recently took Ahri Lulu to Diamond, right?
Diego: That I did, again with ample consultation with Balco’s data to optimize it. I’m also very fond of Ahri Kennen Allegiance decks. I can’t include Ahri in more than one deck in a three-deck lineup, sadly!
That said, I like a lot of the decks in the metagame now, and I try to see decks as tools for where they fit in the metagame, rather than trying to place them in tiers or identifying the best deck in the format. Data and feedback from my close friends helped me break away from that mindset – that’s one of the things I enjoy the most about data, to study the matchup spreads for each deck, figuring out which ones I would both enjoy learning and playing, and ponder about lineups with a reasonable ban strategy.
And all-time LoR favorite deck?
Diego: Will have to be plural in my case! =)
Of seasons past, I loved Ezreal Karma OTK, Heimer Vi (Elusives), Lux Karma, Trundle Lissandra Watcher Combo (I was trying really hard to reach Masters and I made it through Platinum with Fiora Shen at a 69.8% win rate, but after the Fiora nerf I played TLC through Diamond with a 72.7% win rate using Kevor24’s version), Azir Irelia, Sivir Akshan (both the Ionia and Demacia versions), and most recently Zed Poppy Elusives Rally. Fun fact: I came very close to reaching Masters with Elusives last season… so close that I even reset to P4 with 10 LP at the start of this season thanks to it!
Balco: For my all-time favorite, I'll let my champ masteries speak for me:
Hah! I knew it: Great minds think Combo!
Diego: Well, if you ask me about my favorite unplayable card, that would be Evershade Stalker – if you could reasonably reduce its cost to 0, and profit from summoning a unit over and over like with Neverglade Collector, it seems like it could be part of a OTK combo engine!
Balco: That would be Jae Medarda for me. It’s the closest thing we have to Gadgegtzan Auctioneer from Hearthstone, and I’d love to see a combo deck built around him. The dude has never seen play, though; I don’t think he needs a buff, it’s just he’s in a region that doesn’t really have any self-targeting spells, sadly.
And as closing words: any wishes or plans for the future?
Balco: Mostly just still be here! =)
This was a first-time experience for me, so we’ll see what the future brings – as for wishes, I wish Riot adds more stuff to their API.
Diego: I don’t have any personal goals related to LoR data…
Except the Fist Bump card back, perhaps?
Diego: … yes, but that’s a wish more than a goal!
I would love to see other players and statisticians gain more followers, though, and hopefully some support (financial, even!) because the work they are doing is very impressive and super useful.
Amen to that.
Personally, I wish for you guys to keep doing what you do. Hopefully more and better.
And thanks for sitting down for a chat with us. =)