D&D.Sci 5E: Return of the League of Defenders

This is an entry in the ‘Dungeons & Data Science’ series, a set of puzzles where players are given a dataset to analyze and an objective to pursue using information from that dataset.

Note: this is a sequel to the original ‘League of Defenders of the Storm’ scenario, but uses a different ruleset. If you want to play that one first you can, but it’s not necessary to have played that one in order to play this.

STORY (skippable)

You’ve been feeling pretty good about your past successes as an esports advisor on Cloud Liquid Gaming, using your Data Science skills to help them optimize their strategies against rival teams. But recently, you’ve gotten a very attractive offer from a North American team.

The one constant in the esports scene is that the US and European teams invariably lose to Korean and Chinese ones. In the recent Mongolian Summer Invitational, no Western team ever beat an Asian one.

The attempts of Western teams to hire away top Asian players have not helped. Recently, however, the ‘Silver Shielders’ team had the bright idea of hiring away the support staff rather than the players themselves. And that’s where you come in.

The sequel to the critically acclaimed ‘League of Defenders of the Storm’ is being released soon. While the full ruleset isn’t available, your new employer does have a dataset of results of beta plays of the game, and is hoping for advice. In the upcoming release-day tournament, they’re going to send a team of three of their best players to play against a foreign team—and they’re hoping that with your help this might not be North America’s 185th consecutive loss on the international stage.

If you can employ your Data Science skills again, perhaps you can reverse the decline of NA as a region. (And get paid a lot. That’s good too.)


  • You need to select a team for your employers to play. You should choose three of the following 15 characters:

    • Amazon Archer

    • Bludgeon Bandit

    • Captain Chakram

    • Daring Duelist

    • Flamethrower Felon

    • Granite Golem

    • Hammer Hurler

    • Jaunty Javelineer

    • Lamellar Legionary

    • Matchlock Marauder

    • Professor Pyro

    • Rugged Ranger

    • Silent Samurai

    • Thunder Tyrant

    • Wily Wizard

  • Your goal is to maximize your team’s winrate against an opposing team, which your employers believe will be playing the following three characters:

    • Flamethrower Felon

    • Rugged Ranger

    • Silent Samurai

  • (Note that you are allowed to select characters your opponents are also playing, but you are not allowed to select the same character more than once).

  • To help you with this, you have a dataset of plays of the game. Each entry is a game that was played, the three characters on each team, and which team won.


You may also submit a PVP team. I recommend sending it as a PM to me, but if you don’t mind other people seeing it you can just put it in your answer. The PVP team with the best overall record (sum of performances against all other submitted teams) will in theory win the right to specify the theme of an upcoming D&D.Sci scenario. In practice, I still owe the last winner abstractapplic their scenario first, and while I expect to finish that soon I’ve thought that for at least the past nine months, so maybe don’t count on it too much.

I don’t want the existence of a PVP objective to incentivize people too strongly against posting findings in the chat, so as an effort to reduce the risk of your findings being used against you: if multiple people submit the same PVP team, I will break the tie in favor of whoever submits it earlier.

I’ll aim to post the ruleset and results on June 5th (giving one week and both weekends for players). If you find yourself wanting extra time, comment below and I can push this deadline back.

As usual, working together is allowed, but for the sake of anyone who wants to work alone, please spoiler parts of your answers that contain information or questions about the dataset. To spoiler answers on a PC, type a ‘>’ followed by a ‘!’ at the start of a line to open a spoiler block—to spoiler answers on a mobile, type a ‘:::spoiler’ at the start of a line and then a ‘:::’ at the end to spoiler the line.