amer-riotgames-home-hero

Riot Games boosts its software development cycle with Slack

“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.”

Byron DoverSoftware Engineering Manager and Team Captain of IT Applications, Riot Games

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—digital 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.”

Byron DoverSoftware Engineering Manager and Team Captain of IT Applications, Riot Games

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.

2138816671587GBaD Bot for Riot games in Slack
 
GBaD BotAPP10:55 AM

Lee Hao , Your Check-in Failed to Build

Build log for CL 3108961

Project:

Code_CI


CID : Feedback? #ask-lol-build-deploy

 
GBaD BotAPP11:00 AM

Lee Hao , Your Check-in Fixed The Build.

Build log for CL 3108973

Project: Code_CI


CID : Feedback? #ask-lol-build-deploy

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.

2144820801508Riot Games UI in Slack
 
RDX Support (Test)APP10:55 AM

Arcadio Buendía has created a new ticket from tmp-rdx-support-bot

:heavy_plus_sign:

I can’t merge my blueprint

I can’t merge my blueprint

Classification

Live

Product 

pending

Created By 

Arcadio Buendía

Assigned To

unassigned


:clock: RDX Ticket Queue | Today at 10:04 AM

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.

2151360278785Riot Games Slack Channel with PoroBot
tmp-poro-techblog
PoroBot STG is here to help
Zoe Maxwell
Arcadio Buendía
Harry Boone
3
Zoe Maxwell10:55 AM
joined tmp-poro-techblog.
 
PoroBot STGAPP11:00 AM

Thank you for choosing PoroBot!


PoroBot is a handy helper for managing your Slack Channel

:heavy_check_mark: Send a welcome message to users

:heavy_check_mark: Create a ticket from user messages in your channel

:heavy_check_mark: Sync messages and attachments from Slack with created tickets

:heavy_check_mark: Configure automatic responses for common asks in your channel


PoroBot is currently in beta. If you invited the bot by mistake, please use the controls 

below.

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.
2132044252886Sentry use at Riot Games
 
sentryAPP10:55 AM

ServerAntiBotlmpl::RegisterClient

Fatal Error: EXCEPTION_ACCESS_VIOLATION_WRITE

environment

HN6

game.mission

CLASSIC

version.number

10.16.330.9186


LOL-GAMESERVER-PUBLIC-1YF via Game server crash | Today at 3:13 AM

  • 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.
2132068687894PagerDuty app use at Riot Games
PagerDutyAPP10:55 AM
Triggered:#100028: Competitive is having issues bringing...
Assigned:Harry Boone
Service:RDX Operabiility (OP) - Team
Dial-in Number:++15558675309
Meeting URL:lets.meet
Acknowledge
Resolve
More actions...
  • 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.