gitmyhub

nakama

Go ★ 13k updated 2d ago

Scalable open-source game backend server: multiplayer, matchmaking, leaderboards, chat, and social features for games.

An open-source backend server for multiplayer games and social apps that provides user accounts, friend lists, real-time chat, leaderboards, and matchmaking out of the box.

GoPostgreSQLCockroachDBDockerLuaTypeScriptJavaScriptsetup: moderatecomplexity 4/5

Nakama is an open-source backend server for games and social apps. It provides the infrastructure that multiplayer games and interactive apps typically need: user accounts, data storage, friend lists, group chats, real-time multiplayer sessions, leaderboards, and matchmaking. Rather than building all of these systems from scratch, a game studio can deploy Nakama and use its built-in features via client libraries.

The feature list includes user registration and login through social networks, email, or device ID; storage collections for saving game state or user settings; a social graph for tracking friend connections; one-on-one, group, and global chat with persistent message history; both real-time and turn-based multiplayer; dynamic and seasonal leaderboards; tournament brackets that can be chained into leagues; team-based party play; in-app purchase validation; and push notifications to connected clients. Custom server logic can be added using Lua scripts, TypeScript/JavaScript, or native Go code.

The server requires CockroachDB or a Postgres-compatible database to store its data. The quickest way to start a local development environment is with Docker: a single docker-compose command downloads the server and database images and starts them together. Native binary downloads are also available for running without Docker.

Client libraries are available for several platforms so that games can connect to the server from their existing tech stack. The server is built for production scale and is described as being used by game studios worldwide. Detailed documentation covering configuration, deployment to cloud providers, and all API features is hosted on the Heroic Labs website. A community forum exists for developer questions and discussion.

Where it fits