Discord
Tags

You’re waiting for your multiplayer match to start, or maybe you’re entering the boss room when you hear the Discord notification sound.

Now you’re faced with choices: You could ignore the notification, which the enticing *bloo-bloop* makes impossible, stop everything you’re doing and go buy a second monitor, or spend several seconds alt-tabbing to Discord to read it, and then several seconds alt-tabbing back into your game.

Regardless of what you choose, this isn’t an enjoyable experience and it’s one of many problems we solve in our Discord overlay redesign.

Hold on, what’s an overlay?

For those unfamiliar with in-game overlays, they’re a “layer” of features — usually chat, a friends list, etc. — that can be accessed without needing to alt-tab and losing focus of a game. Overlays are usually accessed via a hotkey (our default hotkey is shift +~) while a game is running.

It’s a little overlay sandwich. Yum.

The original overlay

The original overlay we released in 2016 was designed around voice activity. If you and your friends were in a Discord voice channel, the overlay would display you and your friend’s avatars in-game.

Old overlay on the top, new overlay on the bottom.

This feature worked well for switching voice channels, seeing who was talking, or knowing which of your friends left their microphone unmuted (I’m looking at you, Siegfried).

While this focus on voice features was useful, we wanted to make the overlay useable for Discord’s other core features.

About the design process

The Discord design team’s process generally follows the:

This process can be broken down into four phases: discover, define, develop, and deliver.

Discover

In order to define what a valuable overlay experience might look like, we set aside additional time for discovery during our design process. During this period, we interviewed both overlay and non-overlay users. We read through our feedback board, played games with our existing overlay, camped in the woods for three days, and spent time brainstorming ideas to bring to our discovery meetings.

During this discovery period, we learned a lot about ourselves, our hopes, dreams, and fears. Figured some stuff out about the overlay too:

We discovered

  • We should provide benefits to users for every type of game. This includes single player, multiplayer, or massively multiplayer.
  • Performance of the overlay is a critical part of the experience. If the overlay drops a game’s performance, isn’t reliable, or doesn’t resemble the desktop app, then users won’t want to use it. And who could blame them?
  • Use existing design language wherever it makes sense. If we have an existing design component or familiar flow from the desktop app we should leverage it as long as there isn’t a better contextual replacement.
  • Text chat within the overlay is something everyone wants. It provides the opportunity to improve engagement, match the desktop experience more closely, and lets us introduce new features unique to the overlay.
  • Camping is a bad place to realize you’re afraid of the dark. Not all self-discovery is good.
  • Reduce friction for main use cases. The actions the majority of our users will be utilizing the overlay for should be simple, familiar, and obvious. These actions include join voice channel, respond to a direct message, and accept an invite.
  • Provide an experience that mimics the joy of using the desktop app. We should aim to include all of the quality of life and fun features of the desktop app whenever possible. It shouldn’t feel like a different product. More like we grew a third arm and we give amazing hugs now.

Define

Our projects at Discord start with a product spec. This document describes what we’re building, who we’re building it for, and the outcome we want to achieve. This process is collaborative, the entire product team — both engineering and design — can weigh in on all aspects of the project.

In the case of our overlay redesign, our discovery phase helped further define the product spec. We updated the spec, reprioritized features, and set scope so the team was aligned before starting development.

Develop: challenges of designing an overlay

Before opening up a design program we started sketching and whiteboarding ideas. The sketches are quick and fairly rough so instead of sharing those, I’ll share the designs that were created from those sketches.

I started designing on top of static screens of games early on (example: Fortnite by Epic Games). We kept several layers of games screenshots hidden so we could test the UI against different types of games by toggling through them in Sketch.

Don’t obscure the game entirely

Overlays have two states: active and inactive.

While active, the overlay interface is on top of the game and the features are made available. This should not prevent the user from seeing their game. Being able to follow what’s happening in case they need to switch back to playing is important to the experience.

One design decision that we made early on was the transparent color layer that would appear when the overlay was active. This layer provided contrast against the game making the UI easier to see and the inactive/active states more distinct.

When the overlay is inactive, the user just sees the game they’re playing.

Don’t reinvent the wheel to integrate text chat

In the earliest designs, we explored how text chat could work without copying the client directly.

My friend “Name” and I talking, we go way back.

I found myself gravitating back towards the app’s convention of servers stacked vertically. Horizontally displaying recent conversations was far too limiting and felt like change for the sake of change.

Hamburger style.

As we explored alternative designs for text chat we quickly realized the benefits of leveraging our existing conventions. By borrowing from our desktop app, we could avoid having to reeducate users and could reduce cognitive load.

No two game interfaces are the same

Game interfaces come in all shapes and sizes and the features of the overlay needed to accommodate this. This meant the user needs full control of the size and placement of both voice and text features.

With the addition of text chat within the overlay, we realized not all overlay users would need to see voice activity, which was the only functionality it provided previously.

Early versions of splitting up flows and features into their own windows, or “widgets” as we refer to them.

From this realization came the idea of widgets.

Widgets were windowed features that could be moved around, resized, shown in game, or hidden from view. The thinking behind this system was to give the user control of positioning, while also encapsulating all the settings and controls of the feature within the widget.

An early version of the voice widget.

Early on we had a widget design for every piece of the overlay.

We performed several sessions of user testing to help refine the widget designs and interactions. Through user feedback, we were able to simplify flows, improve widget controls, and create a solid design system for the future of the product.

Text and voice widgets.

Custom cursors override default cursors

Most AAA games have custom cursors for their titles. This problem informed the design of our widgets. This meant the user wouldn’t see traditional cursor changes that would signify something was draggable or resizable.

Widget header bar, based on our title bar component within the desktop app.

Instead, we needed to present these actions with icons, tooltips, and give the icons a hover state in order to feedback to the user.

New icons we created for our widgets.

Users need to see messages

As I mentioned previously, hearing a notification but not knowing who or what was being sent was not an enjoyable experience. The way we solved this problem was with in-game notifications.

Notifications are something that all games benefit from. Playing a single player game and receive a direct message? We show you a preview in-game so you can decide to respond. Or ignore it. Probably ignore (sorry Siegfried).

Text notifications, our “news nudge,” and a game invite all using the same design component.

The notification system design was based on our message component. The design consists of an avatar, a title, and a message. At a glance, you can immediately recognize the sender and enough text to provide context.

We also use our notification system to display updates to the overlay, sort of like a tiny change log. In order to reuse the component, we change the background color and replace the message content with a footer that can also house controls or the hotkey shortcut reminder.

Animation concept for accepting invites via a key press.

To give users more control of the interface, we created settings for in-game notification placement and the option to disable them entirely.

Notification variants (invites, messages, and news).

Users need access to their communities while playing

Discord’s goal is to bring people together around games. So, while we all love to be immersed in a game from time to time, there’s also plenty of instances where you want to still be involved with your server while gaming.

In order to address this issue, we came up with the concept of pinning. Pinning is when the user wants to display that widget in their game.

With pinning, users could make any game a social one. Whether users were completing daily quests in World of Warcraft, or playing a rogue-like to kill time, now they could do so while still interacting with their server.

Pinning widgets provided a consistent way of showing, or hiding, voice and text activity.

Chatting inline with a pinned window while playing Enter the Gungeon

Deliver and Results

Final overlay in action. Also Junkrat….really?

Once we released the redesign and enabled more games to use in our overlay we saw a 50% increase in overlay users. Of that group, 30% use text and notification features.

More importantly, the redesign gave our team a solid foundation to keep building upon. So while the release was a great first step to improving our overlay experience, it also gives us room to improve in the future!

Thank you to the team

It’s hard to articulate how important collaboration and teamwork was in order for this project to be successful. I’d like to say thank you to everyone here at Discord who contributed to building the overlay.

We’re always looking for the next great addition to our product team at Discord. If you are passionate about design and user experiences, and hate camping, hit us up at [email protected].

Join the Discord community over in Town Hall!
Contents
THE AUTHOR
MORE FROM