Nakama

Features

Limitation

  • The JavaScript runtime code is fully sandboxed and cannot access the filesystem, input/output devices, or spawn OS threads or processes.

  • The JavaScript runtime is powered by the goja VM which currently supports the JavaScript ES5 spec. The JavaScript runtime has access to the standard library functions included in the ES5 spec.

  • There is no support for libraries that require Node, web/browser APIs, or native support (e.g. via Node).

  • You cannot call TypeScript functions from the Go runtime, or Go functions from the TypeScript runtime.

The JavaScript runtime code is executed in instanced contexts (VM pool). You cannot use global variables as a way to store state in memory or communicate with other JS processes or function calls.

provokedThoughts

hasFeature

  • Users - Register/login new users via social networks, email, or device ID.
  • Storage - Store user records, settings, and other objects in collections.
  • Social - Users can connect with friends, and join groups. Builtin social graph to see how users can be connected.
  • Chat - 1-on-1, group, and global chat between users. Persist messages for chat history.
  • Multiplayer - Realtime, or turn-based active and passive multiplayer.
  • Leaderboards - Dynamic, seasonal, get top members, or members around a user. Have as many as you need.
  • Tournaments - Invite players to compete together over prizes. Link many together to create leagues.
  • Parties - Add team play to a game. Users can form a party and communicate with party members.
  • Runtime code - Extend the server with custom logic written in Lua, TypeScript/JavaScript, or native Go code.
    • **NOTE**
      • There is no support for libraries that require Node, web/browser APIs, or native support (e.g. via Node).
      • The use of multi-threaded processing is not supported in the JavaScript runtime.
  • Matchmaker, dashboard, metrics, and more.

Architecture


Children
  1. Flutter client for Nakama
  2. Server Framework

Backlinks