Comparison

View Source

How Asobi compares to other open-source game backend platforms.

Feature Matrix

FeatureAsobiNakamaColyseusPlayFab
RuntimeBEAM (Erlang/OTP)GoNode.jsCloud
AuthenticationBuilt-inBuilt-inPluginBuilt-in
Player ManagementBuilt-inBuilt-inManualBuilt-in
Real-Time MultiplayerWebSocketWebSocketWebSocketWebSocket
Server-Authoritative Game LoopBuilt-in (tick-based)Lua scriptingRoom-basedCloudScript
MatchmakingQuery-basedQuery-basedManualBuilt-in
LeaderboardsETS + PostgreSQLBuilt-inManualBuilt-in
Virtual EconomyWallets, store, inventoryIAP validationManualBuilt-in
Friends / GroupsBuilt-inBuilt-inManualBuilt-in
ChatBuilt-in (channels)Built-inManualManual
TournamentsBuilt-inBuilt-inManualManual
Cloud SavesBuilt-inStorage APIManualBuilt-in
NotificationsBuilt-inBuilt-inManualBuilt-in
Background JobsShigoto (built-in)ManualManualScheduled tasks
Admin DashboardArizona LiveViewBuilt-inMonitorPortal
DatabasePostgreSQL (Kura ORM)CockroachDBMongoDB / customManaged
Self-HostedYesYesYesNo

Runtime Characteristics

ConcernAsobi (BEAM)Nakama (Go)Colyseus (Node.js)
Garbage CollectionPer-process -- isolated per matchStop-the-world -- affects all matchesStop-the-world -- affects all rooms
Fault ToleranceOTP supervision -- crashed matches restartPanic recovery -- manualProcess crash -- manual
Hot Code UpgradeNative -- zero-downtime deploysRestart requiredRestart required
Pub/Subpg module -- cluster-nativeBuilt-in + optional RedisBuilt-in (single node)
In-Memory StateETS -- zero serializationIn-process mapsIn-process objects
ClusteringDistributed Erlang -- built inetcd / ConsulRedis (presence only)
SchedulingPreemptive -- fair across all processesCooperative goroutinesSingle-threaded event loop
Connection Density~500K+ per node~100K per node~10K per node

When to Choose Asobi

  • You want a single deployable with auth, matchmaking, economy, social, and real-time multiplayer
  • You need fault-tolerant game sessions that survive crashes without losing state
  • You want hot-reloadable Lua so bug-fixes ship without kicking players
  • You want zero-downtime deploys for game logic updates
  • You're building for high concurrency (many simultaneous matches/rooms)
  • You prefer self-hosted Apache-2 over closed managed clouds, with a real exit guarantee (see exit.md)
  • You want a PostgreSQL-backed system with a proper ORM

Don't know Erlang?

You don't need to. Use asobi_lua — the same engine packaged as a Docker image with Lua scripting. Write your match logic in a .lua file, docker compose up, you're running. The Erlang is underneath but you never touch it.

The Erlang-library path (depending on asobi directly via rebar.config) is for teams that already write OTP and want to compose asobi with the rest of their release.

When to Choose Something Else

  • You need sub-3ms UDP latency for a twitch FPS / fighting game / racer. Pair asobi with a UDP relay, or use Photon Fusion / Quantum for the physics.
  • You need deep LiveOps tooling (A/B testing, segmentation, push campaigns) today. PlayFab still leads here, though it's an operational/trust trade-off post-v2 migration.
  • You need a fully managed cloud and are willing to pay cloud-scale prices. Our managed tier opens later in 2026; until then, self-host.
  • You're building a single-player game that only needs analytics and IAP. Firebase Analytics + a simple store validator is cheaper than any backend here.

Client SDKs

First-class SDKs for Godot, Defold, Unity, Unreal, JavaScript/TypeScript, Dart/Flutter, Flame — see the asobi_lua README for the table.

Migrating from another backend?