When you dwell in the technicals of esports broadcasts you often hear something as “There is a Gamestate integration” or “The game has an API”, but what are those things? Basically what those things mean is that there is a way to get live data from the game by either the game sending it to you or by requesting it from the server. Either as raw data or, the much preferred, formatted data that then can be used in for instance some features of the broadcast.
Cool you can receive data from the game, but be aware that it is not a magical solution that you throw to the wall and it sticks. There are many things to consider when using game data integration. It could be that stats are delayed, that the stats are not updated frequently enough for your use case, that the game is not giving you that particular stat that you want and you have to calculate it yourself, etc. The magic of game data is not in receiving the data, but in how you are going to integrate it to make it have meaning in a broadcast. Also, if you are in the position, ask the developer for any non-documented ways of getting data. You will be surprised that often they will give you some insight into data that they can deliver without having any public statement about it.
Esports broadcasts are not the only ones using this integration. Probably most of the use cases that use game data integration are websites that show different stats of a tournament and betting sites that use that data to create odds for the game. In this post, I collected as many recourses for different games, what to think about, and links to examples of people using it. Of course, I cannot reveal the recipe of the magic sauce on how we use it ourselves and, in many cases, there are multiple ways that lead to Rome sort to say.
Will update this post with more recourses when I think they should be included. Or leave a comment if you think a game or resource is missing. I won’t include API’s that are less valuable for live usage. While I love to help people I don’t have the time to make an application for your purpose.
Riot has extensive documentation on API usage of their games and offer different ways of acquiring data. Here a summary of the different ways they offer data and in what use cases they are handy to do.
Riot provides, after you have acquired the right API key through their application process, data of League of Legends, Legends of Runeterra, Teamfight Tactics, and Valorant. With the Riot API you can request data from the server by doing an HTTP request and it will return the requested data to you. Want to learn more about the usage of the Riot API I can recommend the following video of Albert Pariente-Cohen explaining it in his class.
League Client API
Probably the most used API in League of Legends broadcasts as it allows you to show your own Pick & Bans layout. One of the better examples that are freely accessible is made by the Riot Community Volunteers and quite well maintained. They also made a full DataDragon API integration what means that when starting it up it will always get the latest pictures of the heroes used from Riot.
Game Client API
This is probably the simplest way to get some live data out of the game without the need for any application process as it literally just pulls data from the running game in your network. Just be aware that this method does not work for the Tournament Client as that is shielded off in case of misusage.
Valve of course dominates part of the esports scene with Counter-Strike: Global Offensive and DOTA2 and you see many integrations of the data within different broadcasts. What makes Valve’s integration different than that compared with for instance Riot’s is that instead of you requesting the information from the server you can tell the game in your network to send you the data on a certain frequency. Making it less dependent on servers somewhere else in the world.
Maybe the one most eyepopping is the custom HUD a lot of tournament organizers use to give their own spin on the ingame experience. Want to get started with your own custom HUD for your tournament then the Lexogrine HUD Manager is a good place to start.
For DOTA2 you probably see most use cases of making an own pick & ban screen where you see the heroes popping up. If you want to delve more into that I recommend looking at the DOTA2 Game State NODEJS server.
Valve has documented their Gamestate Integration in length so you can find a lot of recourses on Counter-Strike: Global Offensive and DOTA2.
There is, as far as I am aware, not an official way of getting data out of the game, but it is possible with the SOS-Plugin for BakkesMod that gives you data live from the game. A while ago I made a tutorial on how to install the SOS-Plugin for Rocket League and if you need any help the Discord set up by the creator of the plugin is full of a bunch of wonderful people getting you on your way. Just note that an update of the game can break BakkesMod so it could be that it will not work until a fix is made for it.
Don’t you love it when publishers have extensive documentation of their API? PUBG is a good example of extensive documentation on what and how you can use their data that you request through their API. Personally, I don’t have experience with this API, but with this amount of guidance, you can probably make something of it.