Repolode
heroiclabs

heroiclabs/nakama

Open-source game backend server offering multiplayer, matchmaking, leaderboards, chat, and social features for games and apps.

Stars
13,573
Forks
1,508
Open issues
122
Last commit
2 days ago

What is it?

Nakama is a distributed game backend written in Go. It covers the server-side pieces most multiplayer games need: user accounts with social, email, or device ID login, storage collections, a friends and groups social graph, persistent chat, realtime or turn-based matches, dynamic leaderboards, tournaments, parties, and in-app purchase validation.

Server logic can be extended with custom runtime code in Lua, TypeScript/JavaScript, or native Go. Clients can talk to it over gRPC, REST, WebSockets, or rUDP. Official client libraries exist for Unity, Unreal, Godot, Defold, .NET, JavaScript, Java/Android, and Swift/iOS.

It runs as a single binary with an embedded web console for inspecting data, managing players, and watching active matches. It requires CockroachDB or another Postgres wire-compatible database, and can be started quickly with Docker.

Key features

  • 01Account login via social networks, email, or device ID
  • 02Built-in friends, groups, and social graph
  • 03Realtime and turn-based multiplayer matches
  • 04Dynamic and seasonal leaderboards plus tournaments
  • 05Server extension in Lua, TypeScript/JavaScript, or Go
  • 06Embedded web console for managing data and players

Use cases

  • Backend for multiplayer games that need matchmaking and realtime sessions
  • Mobile or casual games requiring leaderboards, chat, and in-app purchase validation
  • Social apps that need friend graphs, groups, and persistent messaging

Quick start

  1. 1

    Set up a docker-compose file for your project

  2. 2

    Download and start the container images and servers

    docker-compose -f ./docker-compose.yml up

Things to know

  • Requires CockroachDB or another Postgres wire-compatible database to run.
  • Production deployment needs separate provisioning of Nakama and the database nodes.

In collections

Topics

FAQ

What is nakama?
Open-source game backend server offering multiplayer, matchmaking, leaderboards, chat, and social features for games and apps. Nakama is a distributed game backend written in Go. It covers the server-side pieces most multiplayer games need: user accounts with social, email, or device ID login, storage collections, a friends and groups social graph, persistent chat, realtime or turn-based matches, dynamic leaderboards, tournaments, parties, and in-app purchase validation.
Is nakama free to use? What license does it have?
nakama is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is nakama still maintained?
Actively maintained. The last commit to nakama was on Oct 22, 2026.
What can I use nakama for?
Backend for multiplayer games that need matchmaking and realtime sessions Mobile or casual games requiring leaderboards, chat, and in-app purchase validation Social apps that need friend graphs, groups, and persistent messaging
How do I install nakama?
Set up a docker-compose file for your project Download and start the container images and servers: docker-compose -f ./docker-compose.yml up
Where can I get nakama?
The source code and installation instructions are on GitHub: https://github.com/heroiclabs/nakama

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects