Talo logoDocsBlogGitHub
Back to blog

Introducing Talo Channels: real-time messaging for Godot games

5 min read
Introducing Talo Channels: real-time messaging for Godot games

TL;DR

  • What's new? Talo Channels - a real-time messaging system for Godot games
  • What can you build? Chat rooms, notifications, live events and interactive features

What are Talo Channels?

Game development often requires real-time communication between players. Whether you're building a multiplayer game that needs chat functionality or want to send live updates to players, implementing these features traditionally requires significant backend infrastructure. That's where Talo Channels comes in.

Talo Channels is our new real-time messaging system that makes it easy to add interactive features to your Godot game. Whether you want to build a chat room, send notifications or create live events, Channels provides the infrastructure you need without having to worry about complex networking code.

Getting started with Channels

To start using Channels in your Godot game, you'll need the Talo Godot plugin. Once installed, creating and joining a channel is as simple as:

# Create a new channel
var channel = await Talo.channels.create("lobby", true)

# Join an existing channel
await Talo.channels.join(channel.id)

The second parameter in the create function enables auto-cleanup. Channels can be set to automatically clean up when the last member leaves, perfect for temporary chat rooms or match-specific channels.

Building a chat room

Let's look at how to build a basic chat room using Channels. First, we'll need to handle incoming messages:

func _on_message_received(res: String, data: Dictionary) -> void:
    if res == "v1.channels.message":
        if data.channel.id == _active_channel_id:
            # Handle the message - e.g. display in UI
            var alias = TaloPlayerAlias.new(data.playerAlias)
            display_message(alias.username, data.message)

# Send a message to the channel
await Talo.channels.send_message(channel_id, "Hello world!")

Custom channel properties

Channels can store custom properties using key-value pairs. This is useful for categorising channels or storing game-specific data:

var props = {
    "max_players": 10,
    "game_mode": "capture_the_flag",
    "is_private": false
}

var channel = await Talo.channels.create("game_room", true, props)

Managing channels

Finding available channels is straightforward with the built-in pagination:

var res = await Talo.channels.get_channels(0)
var channels = res[0]

# Get channels the current player is subscribed to
var subscribed = await Talo.channels.get_subscribed_channels()

Check out our chat sample in the Talo Godot plugin for a complete example of a chat room with subscriptions to multiple rooms.

Secure by design

Talo Channels is built on top of our secure WebSocket connection system with:

  • Two-tier authentication
  • Message validation
  • Automatic reconnection handling
  • Real-time monitoring through the dashboard

Channels in the Talo dashboard

Check out our Socket docs for a deeper look into how the Talo Socket works under the hood. Channels (and the Talo Socket) also work with Talo Player Authentication for extra security.

What can you build?

The possibilities with Channels are extensive:

  • In-game chat systems: Create public or private chat rooms for players to communicate
  • Live notifications: Send updates about game events or achievements to specific groups of players
  • Real-time game state updates: Keep all players synchronised with the latest game state
  • Collaborative features: Build shared player interactions like collaborative puzzle-solving mechanics
  • Social features: Create player-to-player messaging or team communication systems

Talo Channels are purposefully generic so that you can use them for any real-time communication needs in your game. If something can be represented as text, you can use Talo Channels to send it to your players.

Getting started

Ready to add real-time features to your game? Here's how to get started:

  1. Install the Talo Godot plugin
  2. Check out our Channels documentation
  3. Join our Discord community if you have any questions or need support

What's next for Channels?

This is just the beginning for Talo Channels. We're working on new features including updating, managing and deleting channels directly from the Talo dashboard.

Stay tuned for updates and join our Discord to share your feedback and ideas for future features.


TudorWritten by Tudor

Build your game faster with Talo

Don't reinvent the wheel. Integrate leaderboards, stats, event tracking and more in minutes.

Using Talo, you can view and manage your players directly from the dashboard. It's free!

Get started

More from the Talo Blog

Changelog: real-time live config and updating player data
2 min read

Changelog: real-time live config and updating player data

Discover new Talo features: real-time live config updates and the ability to update player stats and leaderboard scores from the dashboard.

2024 Year in review: release highlights from Talo
4 min read

2024 Year in review: release highlights from Talo

A look back at Talo’s biggest updates in 2024, including game feedback, player auth, group functionality and channels.

Levelling up your game with Talo’s Player Groups
5 min read

Levelling up your game with Talo’s Player Groups

Learn more about all the ways to segment your players and understand them better with Talo’s powerful group filtering system.

Changelog: New group filtering + interactive Playground
2 min read

Changelog: New group filtering + interactive Playground

Catch up on Talo’s November 2024 updates, including a more interactive Playground, new group functionality and arm64 support.