In-Game Chat: An Intro to Text, Voice, & Video Messaging
Tags: gamedev, beginners, unity3d
Published: 2021-12-22 20:23:01

Players no longer treat video games as a way to escape reality. They go online to connect, communicate, and enjoy one of their favorite pastimes with like-minded people from around the world. This new take on a traditionally isolating activity is made possible by the rise of chat solutions for video games. 

Not only do gamers love the sense of community and camaraderie that chatting with other players creates, but thanks to in-game chat, studios also enjoy the benefits of their users being more engaged, translating to improved key metrics like retention, [customer acquisition costs](https://www.productplan.com/glossary/customer-acquisition-cost/#:~:text=Customer%20Acquisition%20Cost%2C%20or%20CAC,buy%20a%20product%20or%20service.), and [lifetime value](https://www.qualtrics.com/experience-management/customer/customer-lifetime-value/). 

## What is In-Game Chat?

In-game chat is what allows players of multiplayer video games to communicate with one another within the game they are playing versus using a third-party app, like Discord. In-game chat can be text-based or incorporate voice and video messaging capabilities depending on the game and/or platform the gamer is using.

 
## In-Game Chat vs. 3rd Party Apps 

Third-party chat apps, like [Discord](https://discord.com/), are messaging platforms that provide a popular alternative to in-game chat. They offer text-based and voice chat functionality that enables players to stay connected even if they use different consoles or play different games. Discord is one of the most popular [gaming chat apps](https://getstream.io/blog/gaming-chat-apps/) on the market. 

While gamers will always love to connect with other players using an external app like Discord, if your game relies on a third-party app instead of integrating a solution within your game you will miss out on the powerful sense of community in-game chat creates and the opportunities to leverage the wealth of data it can collect.

## In-Game Chat: Text vs. Voice & Video

Depending on the genre and medium of your title, you might only feature text-based chat, while others might want to upgrade the experience with voice and video capabilities. While both methods allow players to communicate with each other, there are unique features to both types of chat that you should consider integrating into your game.

### Text

Gamers now expect basic messaging capabilities in almost every title they play. Text-based chat is the perfect solution for quick conversations between international players, as it requires less bandwidth than audio or video communication. You can also get creative with the design of your messaging interface and increase the connectedness that your players feel within your game by doing so. 

- **In-Game Overlay Chat** allows users to read chat, view events in your activity feed, and see your online/offline status and viewer count if you live stream directly over any game you are capturing.
- **Sidebar Chat** allows users to hide or open the in-game chat window while they are playing. 

With text-based chat, players communicate by typing out messages, [reacting](https://getstream.io/chat/docs/rest/#messages-sendreaction) to one another with emojis and GIFs, [sharing files](https://getstream.io/chat/docs/rest/#messages-uploadfile), like screenshots of their high scores, and creating custom channels to speak with specific users and groups. While a staple of the modern gaming experience, you can still set your text-based in-game chat apart from the crowd by customizing it to be a feature-rich interface that’s easy for gamers to use while playing and keeps them engaging with others. 

Here are three features to include in your text-based messaging solution: 

- **Message Reactions:** “react” to specific messages within a chat. Typical examples are likes, comments, loves, etc. Reactions can be customized so that you can use any type of reaction your application requires. 
- **GIFs:** allow players to compare their emotions and reactions to popular 1-second loops of pop culture references.
- **Chat Channels:** use asynchronous data transfers to send messages from each user to a specific channel. That channel can hold many users and display messages in real-time. The channel type defines the configurations and permissions (e.g., Livestream, Messaging, etc.).

### Voice & Video

Voice chat allows players to talk in real-time to one another as if they were on the phone or in the same room. Unlike text-based chat, voice and video are hands-free options that allow gamers to chat and play in real-time without hassle. Gamers who use voice chat to communicate can still form group conversations like text-based chat. Some games even support a “whisper” functionality that enables users to speak directly to someone within a group chat. 

Voice chat can sometimes be combined with a [video component](https://docs.dolby.io/communications-apis/docs/chat-integration-with-stream), creating an even more immersive social gaming experience thanks to the following features: 

- **Sidebar Chat:** gives users the option to hide or open the in-game chat window while they are playing or engaging with a [livestream gaming](https://getstream.io/chat/demos/gaming/) event. 
- **Group Chat:** multiple players, typically on the same team, can use group chat to strategize and alert each other of danger during live gameplay.
- **Whispers:** say something directly to a single player rather than broadcast it to all players in a group.
- **Proximity Chat:** a form of voice chat that only activates when you're within a certain distance of another player.

## Moderation & Parental Control for In-Game Chat

Friends often connect over chat while playing, but even so, it’s not uncommon for two users who do not know each other to play together. For younger gamers and those who simply wish to have a safe, chat experience, [moderation](https://getstream.io/blog/advanced-chat-moderation/) and parental controls are critical features your messaging solution should include. 

Due to the nature of text-based chat, it is the more easily regulated form of in-game interactions. Developers can implement [profanity filters](https://getstream.io/blog/filtering-profanity-in-chat-with-react-native/) and monitor channels for spam, like excessive messages within a short period or a high volume of messages containing gibberish. This moderation allows admins to keep the game enjoyable and safe for those who use in-game chat responsibly and block those who abuse it from messaging others while still allowing them to enjoy playing the game on their own. Voice and video chat are more difficult to moderate, but gamers can always mute and disconnect their video settings. 

There are also [preventative measures](https://www.thinkuknow.co.uk/parents/articles/in-game-chat/) parents of young gamers can take to protect their children while playing online. They can suggest that their child only chats with people they know in real life, create a profile to keep their identity anonymous and let them know they can report any concerning behavior or remarks to them. 

The top three safety features you should consider adding to your in-game chat solution during the development process are: 

- **[Muting](https://getstream.io/blog/advanced-chat-moderation/)** lets players control when they can be seen or heard over chat but still allows them to see, hear, and read conversations between other players. 
- **[Blocking](https://getstream.io/blog/advanced-chat-moderation/)** is a tactic to prevent a specific person from messaging the player and joining channels and games. 
- **[Reporting](https://getstream.io/blog/advanced-chat-moderation/)** enables players to submit a formal report against another gamer if they notice them using abusive language, spamming channels, or violating the game’s terms and conditions.

## How to Implement In-Game Chat

There are two options when it comes to adding chat to your game. If you only require basic chat features, you may be able to use the functionality provided by your game platform– but you might find that quite limiting. If you would like a more robust, custom solution you may want to build it in-house with the help of existing APIs and SDKs.

### Within Your Gaming Platform

Many platforms have an existing solution built to support basic [gaming chat](https://getstream.io/chat/solutions/gaming/) features within your video game, but some do not. Let’s take a quick look at the options provided by two of the more popular gaming engines– Unreal and Unity.

#### Unreal Chat Options

If the Unreal Gaming Engine supports your video game, you have two options when it comes to relying on UE4 to provide an [Unreal chat](https://getstream.io/chat/unreal/tutorial/) solution. 

The first is to use Unreal’s [networking architecture](https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/Networking/Overview/) to pass messages between all clients in a multi-player setting. Your server would be responsible for maintaining a list of all messages, channels, and reactions and act as the one true authoritative chat state. The downside to this approach is that all in-game chat data will be lost when the game session ends, as it is only ever held in memory. Also, when handling a large volume of chat activity, the server is unlikely to keep all data in a memo. It would require additional engineering to read and write this data from a disk or an external service.

The second is to use the Unreal Engine’s [Chat Module](https://docs.unrealengine.com/4.27/en-US/API/Plugins/Party/Chat/) from one of the built-in [online subsystems](https://docs.unrealengine.com/4.27/en-US/ProgrammingAndScripting/Online/). Only the [Epic Online Services](https://dev.epicgames.com/en-US/services) online subsystem supports the Chat module at the time of writing. Furthermore, the Chat module has very sparse documentation and isn’t production-ready.

#### Unity Chat Options

At the time of writing, [Unity](https://unity.com/) does not have a built-in chat solution capable of leveraging client-side networks to support chat within your game. While [UNET](https://docs.unity3d.com/Manual/UNet.html) is listed on the Unity website, it is deprecated. Unity is developing a replacement solution called [MPLAI](https://docs-multiplayer.unity3d.com/). It is currently in a pre-release stage with no official release date set. Suppose you are creating a game powered by the Unity engine. In that case, you must implement your networking and [Unity chat](https://getstream.io/chat/unity/tutorial/) solution on both the client and server sides with help from standard communications protocols like TCP, UDP, and Websockets.

### Build Your Own Custom Solution

Most companies that lean towards building an in-game chat solution in-house believe that they will need more flexibility than a ready-made solution could offer – and this is sometimes the case. However, designing a game from scratch requires a massive lift that often pushes chat to the bottom of the priority list. While the appeal of putting a custom spin on your games messaging is high, the importance of including in-game chat functionality at launch is critical in establishing a socially-minded gaming environment. 

Leveraging a [chat API](https://getstream.io/chat/) or [SDK](https://getstream.io/chat/sdk/), like Stream’s [Unreal SDK](https://getstream.io/chat/sdk/unreal/), can significantly speed up your development process. The benefits of integrating an API solution include faster time to market, high levels of customization, robust security to protect user chat data, multi-tenancy for multiplayer games, easy integration, and the ability to handle a high volume of concurrent connections. Plus, opting to use an API solution is typically more cost-effective than building chat yourself — especially when you factor in opportunity costs. SDKs supported by an [EDGE network](https://getstream.io/blog/chat-edge-infrastructure/) ensure that no matter how many players log on from anywhere in the world that you will be ready to deliver a low-latency chat experience that’s secure and dynamic for all gamers.

## Ready to Play with In-Game Chat?   
Whether you intend gamers to play your title on a mobile device, PC, or console, the most valuable commodity is their attention — and it’s being competed for on every platform. By offering an immersive, in-game chat experience, you’ll earn the loyalty of your audience and create an environment where they can express the joy of a win, strategize a plan of attack with friends, and build a community over text, voice, and video. 
 
While there are many more aspects to in-game chat that come with their own unique set of benefits, the implementation, consideration of text vs. voice and video chat, and abusive chat moderation are the fundamentals of building a strong community within your game.