Riot Games is the studio behind the mega-hit League of Legends, officially the most-played personal computer game in the world, and a key driver behind the explosive growth of electronic sports, or e-sports. At a game development company with thousands of employees in dozens of offices around the globe, strong alignment and communication are key to hitting important release dates and keeping millions of players happy.
Riot Games has used Slack, the channel-based messaging platform, for in-house communications since 2015, and it became one of the first Slack Enterprise Grid customers in 2017. Today, more than 8,000 of its employees and partners collaborate in Slack channels—virtual spaces to send messages and files—and rely on nearly 1,000 different apps in Slack. Software engineering teams at the company also use a variety of custom and off-the-shelf Slack bots to test, deploy, plan, and manage operations within a Slack workspace.
At our annual Slack Frontiers conference, Riot Games gave us a tour of how it uses Slack to bring beloved computer games to life for fans all over the world.
Shipping quality code faster with build and release pipelines in Slack
One of Riot’s releases is Legends of Runeterra, a digital collectible card game that supports PC, Android and iOS devices. Making sure new software versions are available to players simultaneously across all three platforms takes serious coordination, which is why the company’s build and release process is a complex one involving Docker and Jenkins software tools.
Riot engineers have developed custom Slack apps to provide visibility into game builds and deploys in real time. Whenever a Legends of Runeterra build starts, a new message is posted into a Slack channel. If a build fails, an alert is automatically posted that includes a detailed accounting of what went wrong. It even @mentions the developer responsible for the last code change to begin immediate triage.
Riot also uses interactive buttons to surface specific actions available to developers, offering shortcuts to the context they need to solve problems quickly. Clicking a button to view error logs is much more efficient than switching between myriad different continuous integration tools to better understand the status of their releases.
“Slack has had a dramatic effect on engineering productivity at Riot. We’ve seen a reduction in iteration-cycle and bug-resolution times and increases in feature delivery velocity since moving to Slack.”
Keeping developer teams productive and aligned with custom Slack apps and integrations
Another game from Riot, Teamfight Tactics, also supports PC, Android and iOS cross-play and benefits from sharing much of the same build and release infrastructure. To reduce noise in Slack channels shared by large developer teams, Riot engineers have developed a Slack app called Game Build and Deploy (aka “GBaD Bot”) that sends them direct messages when they break a game build and lets them know once they’ve fixed the issue. This keeps individual build notifications out of public channels but still reaps the benefits of the automated build and deploy applications.
Riot Games continues to develop its own Slack integrations, with some teams even publishing game artifacts directly to private Slack channels. Teams can then conduct real-time reviews and provide any feedback using Slack threads.
Solve support issues faster while improving service reliability
To augment its on-call support teams, one of Riot’s most popular Slack apps is for developer team support. The app listens for specific emoji reactions on messages in support channels, which then kicks off a triage workflow. Reporters are prompted to categorize an issue based on the original message, and the Slack app uses that information to automatically notify the correct on-call engineer with an @mention. This all happens in a threaded reply, where the conversation can continue between the two Rioters as usual.
Riot has also started building Slack bots that use artificial intelligence. One of the latest is PoroBot, which helps manage incoming support requests. PoroBot is trained to recognize questions asked in Slack channels, where it triages and classifies support tickets and provides answers previously provided by the relevant on-call team. Behind the scenes, the app leverages a natural-language machine learning model for pattern recognition and classification.
Riot Games has developed a number of custom bots and apps to integrate its software tools, but it also sees plenty of benefit from using the following apps from the Slack App Directory:
- Sentry provides expert robust crash analytics and diagnostics and integrates directly with Riot Games’s operations and monitoring channels. The app automatically captures an enormous amount of valuable information when a player experiences a game crash, including screenshots and the actions that occurred directly before the crash. Those event summaries are automatically posted to actively monitored Slack channels where on-call engineers can use buttons to assign them to colleagues, click to learn more, or resolve incidents directly.
- PagerDuty routes alerts to dedicated notification channels created for each team at Riot. From there, teams can escalate as needed to a channel shared across all workspaces, which is actively monitored by their global network operations center.
- Jira and ServiceNow capture Slack conversation threads associated with the outages, for future reference.
Slack for software development and beyond
Developing video games isn’t just about shipping code; it involves humans working together to design and create incredible player experiences. This naturally entails a lot of complexity, and that’s where Slack comes in—giving Riot Games employees a robust shared place for their most important work.
Channels let Riot mirror its organization in a digital workspace, while Slack’s powerful APIs allow it to deeply integrate its game delivery engine in Slack. No matter how many tools you use at whichever stage of development, Riot Games shows how Slack can bring them together.