Heroic Labs
Composable game backend stack: Nakama, Satori, and Hiro
Overview
Heroic Labs offers a composable game backend stack. Nakama is an open-source game server for multiplayer, social, and storage. Satori provides LiveOps with feature flags, experiments, and player segmentation. Hiro is a game development toolkit for progression systems. Components can be self-hosted or used via Heroic Cloud.
Architecture
How Heroic Labs approaches the key architectural dimensions for live service games.
Developer-written match handler callbacks
Server authority is implemented through custom match handler functions written in Go, Lua, or TypeScript. Developers write callbacks for match init, join, leave, loop, and terminate events.
DocumentationTypeScript reuse possible, not deterministic
If both client and server use TypeScript, some logic can be shared. However, there is no deterministic execution guarantee — the server cannot validate client state by re-execution.
DocumentationThree separate products (Nakama + Satori + Hiro)
Nakama handles multiplayer and player data. Satori adds live ops and analytics. Hiro provides game system templates. Each product has its own API, dashboard, and deployment.
DocumentationNakama server open source (Apache 2.0)
The Nakama server core is fully open source under Apache 2.0. However, Satori (live ops) and enterprise clustering features are closed-source commercial products.
DocumentationNo built-in system; Satori feature flags optional
Nakama has no native game config pipeline. Satori adds feature flags and remote configuration as a separate paid product, but there is no spreadsheet-to-binary pipeline.
DocumentationTwo fixed dashboards (Nakama Console + Satori)
Nakama includes a built-in admin console for player and match management. Satori has a separate dashboard for live ops. Neither dashboard is designed for customization.
DocumentationSelf-hosted (free) or Heroic Cloud
Run Nakama on your own infrastructure for free (Docker or bare metal). Heroic Cloud offers a managed option. Enterprise clustering for high-scale requires a commercial license.
DocumentationSingle node ~10K CCU; Enterprise for clustering
A single Nakama node handles roughly 10K concurrent users. Multi-node clustering for higher scale is only available in the Enterprise (paid) tier.
DocumentationDocker Compose local setup
Local development uses Docker Compose to run Nakama alongside CockroachDB. Server logic is written in Go, Lua, or TypeScript and hot-reloaded during development.
DocumentationLive Service Features
Player Management
LiveOps
Economy & Monetization
Engagement & Retention
Analytics & Insights
Multiplayer
Infrastructure
Operations
Platform & SDK
Strengths
- Nakama is open source (Apache 2.0) with 9.3K+ GitHub stars
- Composable stack: Nakama (game server), Satori (LiveOps), Hiro (progression toolkit)
- SDKs for Unity, Unreal, Godot, C++, JavaScript, Swift, Java, Dart, Defold, Cocos2d
- Load tested to 2 million CCU with CockroachDB-backed distributed clustering
- Self-hosting (Apache 2.0) or managed Heroic Cloud on GCP/AWS
Limitations
- Heroic Cloud minimum $600/month
- Multi-server clustering requires Enterprise license
- Self-hosting requires DevOps expertise
- Full stack requires multiple products
Pricing
Nakama is Apache 2.0 (free self-hosting). Heroic Cloud from $600/month. Satori and Hiro have separate pricing.