Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Talo - an open source backend for leaderboards, analytics and multiplayer

A topic by Sleepy Studios created Jan 15, 2025 Views: 841 Replies: 6
Viewing posts 1 to 5
(11 edits)

Hey everyone! I wanted to share the project I’ve been working on: a set of tools for building games faster and a dashboard to learn more about your players. In short, it's an open source alternative to services like Playfab or Unity Game Services.

Talo is the easiest way to add leaderboards, player authentication, peer-to-peer multiplayer and more to your game. Talo has a Godot plugin and a Unity package - both securely authenticate players, work online and offline and require minimal setup. You can also use Talo via a REST API.

Here are some of the things you can do with Talo:

  • 👥 Player management (persistent data, groups and authentication)
  • 💬 Peer-to-peer multiplayer with persistent data
  • 🕹️ Leaderboards
  • 📊 Game analytics (global stats, player stats and event tracking)
  • ⚙️ Load game config from the cloud
  • 💾 Game saves (online and offline)
  • 🗣️ Game feedback from players
  • 🔔 Player presence (see if players are online and set custom statuses)

Check out the docs (https://docs.trytalo.com) for more info.

---

You can get the Talo Godot plugin on our itch page, the Godot Asset Library or GitHub.

You can get the Talo Unity plugin on our itch page or GitHub.

---

I would love to hear any feedback on Talo - especially if there’s something missing that you would find useful for your own game. We also have a Discord for support, roadmap discussions and to show off your game. Thanks!

(1 edit) (+1)

Some highly requested features have been added to Talo in the last few days: editing player stat values and leaderboard scores.

To update a player’s stat value, you can visit their profile, choose a stat, and click the edit button:


For editing leaderboard scores, you can go via a player’s profile or the leaderboard’s entries page:


We’ve also added a new “find player” API, allowing you to search by a player’s unique ID.

The new find player API lays the groundwork needed for the upcoming Presence API: a new way of seeing online/offline/custom status players. This opens up new features like friends lists, player parties and more.


For Godot games, you can find the latest release (0.19.0) on GitHub, the Godot Asset Library or our itch page.

For Unity games, you can get the latest release (0.32.0) on GitHub or from our itch page.

(+1)

That's great news! A 'Friends' feature was what kept me from seriously considering Talo as a backend for my game project up to now, so I'm excited to hear that this feature has been added!. Can't wait for the next additions; the Presence API certainly does sound interesting. Thanks for making Talo available!

(+1)

Thanks frogdot! I'm just putting the finishing touches on the Presence API and it should hopefully be released early next week.

(+1)

🔔 Player presence is here!

Talo will now automatically track player online statuses. You can also provide custom statuses for players like "In a match" or "In a lobby". 

This new API is supported across our Godot plugin, Unity package, and REST API.

The dashboard will now display stats about your players - namely how many players you have and how many are online. You can also see if a player is online directly from the dashboard.

🎯 We've also added "refresh intervals" to our leaderboards, allowing you to easily create daily, weekly monthly and yearly leaderboards.

For the Godot plugin and Unity package, there's a new flag to fetch archived leaderboard entries (e.g. from the previous day with daily leaderboards), as well as much easier ways to listen for game channel messages. The chat and leaderboards demos have been updated to reflect all the new functionality in this release.

---

You can get the Talo Godot plugin on our itch page, the Godot Asset Library or GitHub.

You can get the Talo Unity plugin on our itch page or GitHub.

(1 edit)

General updates

It's been a little while! Since last month there's been quite a few updates and optimisations to the Talo Godot plugin including:

  • Extending `RefCounted` instead of `Node` for better memory management
  • Significantly improving typing by preferring to return internal classes with strictly defined properties
  • New signals for when game channels (our socket-based way of sending messages between players) are joined, left, deleted or their ownership is transferred
  • A new signal for when a Talo Socket error is received, allowing you to gracefully handle situations like rate limiting or invalid data being sent


Game stats updates

In addition to this, our game stats APIs have been significantly improved with the following additions (available for our Godot plugin and Unity package):

  • You can now fetch available stats for your game via the stats API
  • Stats now have history and you can fetch this for an individual player or globally
  • Stat history can be filtered by start and end dates
  • Global stat history contains metrics about the global value like the minimum, maximum, average and median values during the filtered period

We've also written a short guide about how to track stats in Godot games using Talo which you can find here.  The Godot and Unity game stat docs have been updated to include these new APIs.


Leaderboards overview

For anyone curious about Talo's leaderboards we've also published a YouTube video with a quick overview of all the leaderboards features and demos:

(10 edits)

👋 Hey everyone, there's been lots of updates in the last 3 months - here’s a quick overview:


Game channels (socket-based multiplayer)

1. Channel members API: fetch all the players in a channel

2. Private channels: invite-only channels that are not publicly listed

3. Temporary membership: if enabled, players are removed from the channel when their session ends

By far the biggest release is channel storage: a shared space where all members can read/write/update and delete data. For example, in a channel created for a guild, you could store the "shared gold" value. All guild members would be able to read and update this value. Check out the docs for Godot here and Unity here or take a look at the demos for your engine to learn more.

This Godot demo is less than 100 lines and shows how to easily drop-in socket-based multiplayer mechanics into your game:


Game analytics

1. Game stat metrics page: view global game stat metrics


2. Event breakdown: break down events by their props

3. Player session tracking: see how many players are playing your game plus average playtime stats


Godot Asset Store

Talo is now available on the newly-released Godot Asset Store: https://store-beta.godotengine.org/asset/talo/talo-game-services


Everything in Talo is completely open source, check out the GitHub: https://github.com/talodev