One of the under-discussed components of a modern esports is the amount of data exposed to users - whether those users are tournament organizers, casters, developers, or just casual fans. Starcraft II technically did this - you can get the names of players, who wins each game, and the game clock from the client-side API, and some more macro-level information from the ladder API.
That seems great, right? Not really - not for a modern system at least. Take DOTA 2 for example - they have entire websites dedicated to the depth of data exposed by the game API - match results, stats of individual player results, hero winrates, item-specific winrates by timestamp, the list goes on.
Of course, some of this is due to the game - a MOBA with 123 heroes and 208 items, which leads to an insane number of potential combinations and permutations. In contrast, the Terran race in SC2 has 18 units and 17 builds - and some of those are subcategories of each other.
But DOTA is not the only esport with this glorious depth of data. Love them or hate them, Riot Games exposes a similar depth of information for their marquee titles - just look at this third-party dashboard for VALORANT, which provides average damage/round, stats on preferred agents, guns, and maps, and much more.
If we were to put this in the context of a RTS, imagine the possibilities. I’ve long been on the crusade for player specific map pick/ban stats per match (maybe even per opponent) as something that would be incredibly interesting from an esports perspective (and provide a ton of information for player prep as well). But imagine going deeper than that - automatically compiling matchup specific win rates by game time, number of units made, or some other statistic that hasn’t been figured out yet. Some of this is already done by Scelight now, but that is only on replays that you personally have access to (or that you upload to something like SC2ReplayStats). I want this to be system wide - something that is automatically populated by Frost Giant servers and searchable by anyone with access.
Sure, this idea would absolutely lead to more ammunition for balance whining (Infernals have a 55% winrate after 10 minutes, late game Thralls are too broken!), but you and I know that was going to happen anyways - especially by whatever faction the majority of terran players move over to.
While the majority of what I have been talking about is Frost Giant server side - powering the next generation of esports and broadcast analytics, that really is only half of the puzzle. As I mentioned earlier, we really get the barebones information out of the SC2 client - and the documentation about how to read even that is hidden in a deleted blizzard forum post. Pulling from DOTA once again, they expose a lot more to client-side API. Of course, this is a dangerous topic - information that is exposed locally about a specific game in real time provides tremendous opportunity for different hacks to exist if done poorly. Luckily, I have tons of faith in Frost Giant, so we’ll ignore that possibility for the time being.
There are two potentially massive opportunities that are offered by providing more interesting game state information - twitch extensions/stream overlays and enhanced production assets.
Lets talk about twitch extensions first. Recently, SUNSfan and bukka have made the excellent Dota 2 Tooltips Twitch extension available for public use. For those unfamiliar, it provides an extra UI in twitch that allows for viewers to click on different things (hero spells, items, etc) and learn about what they do - something absolutely massive for a game as complex as DOTA. In tournament settings, it also provides things like resource graphs, tournament info, and different stat tabs. In the context of RTS games - this would be like having access to the units tab whenever you want, regardless of what the observer is showing. Done right, an extension like this would do an incredible job of easing potential new fans into both Stormgate the game and the esport.
The other opportunity in this category is twitch extensions. Right now, some streamers have a little add-on that provides information about what happened in the last game (win/loss, APM, game time, etc), but exposing player-specific information expands possibilities. Of course, this version cannot gain any information about the opponent while the game is playing for obvious reasons - but imagine watching Maru play Terran and having access to a production tab when the first person view doesn’t have that? Or, on the memier side, alerts that pop up when the streamer loses some number of resources in a single fight, leading to a (potentially) more exciting stream experience.
On the other side, a game observer in the lobby would be able to have access to 100% of the information for both players, as they would be in the lobby and that doesn’t create competitive integrity concerns. This partly ties into powering a potential twitch extension, but so much more. I’ll pull from DOTA again, because I think their broadcasting suite is industry leading, but they have a tooltip setup that people in the lobby can post information to. Imagine being able to provide real-time information about players doing interesting things? For example, Dark played a game against Byun on Stargazers recently where he didn’t get his first gas until 4:10 and got an absurdly fast third base. I would love to be able to have a popup show up stating that “Dark got his first gas later than 87% of professional TvZs on Stargazers” or something like that while casters are digesting how crazy the build is. That is something made much more doable by exposing the whole glut of game state information to lobby observers (maybe in a custom game mode if security is a concern).
The final advantage is that for academia - SC2 is one of the better platforms for many types of AI and human-robot interaction research, but that topic deserves it's own article.