GithubHelp home page GithubHelp logo

neuralnoise / nakama Goto Github PK

View Code? Open in Web Editor NEW

This project forked from heroiclabs/nakama

0.0 2.0 0.0 587 KB

Distributed server for social and realtime games and apps.

Home Page: https://heroiclabs.com

License: Apache License 2.0

Makefile 0.74% Go 89.49% HTML 0.05% JavaScript 0.93% HCL 0.79% Ruby 0.25% Protocol Buffer 5.07% Lua 2.54% PLpgSQL 0.12%

nakama's Introduction

Nakama

Distributed server for social and realtime games and apps.

Features

  • 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.
  • Runtime code - Extend the server with custom logic written in Lua.
  • Matchmaker, dashboard, metrics, etc, etc.

For more information have a look at the documentation and for a quick list of build targets run make help.

If you encounter any issues with the server you can generate diagnostics for us with nakama doctor. Send these to [email protected] or open an issue.

Start server

Have a look at our documentation for a full introduction on how to run Nakama in development and/or production.

To start a server locally and bind it to all network interfaces once it's installed and on your path - run nakama. The server output will show how it's been configured by default.

$> nakama
{"level":"info","ts":"$$timestamp$$","msg":"Node","name":"nakama-97f4","version":"$$version$$"}
{"level":"info","ts":"$$timestamp$$","msg":"Data directory","path":"$$datadir$$"}
{"level":"info","ts":"$$timestamp$$","msg":"Database connections","dsns":["root@localhost:26257"]}
{"level":"info","ts":"$$timestamp$$","msg":"Evaluating modules","count":0,"modules":[]}
{"level":"info","ts":"$$timestamp$$","msg":"Dashboard","port":7351}
{"level":"info","ts":"$$timestamp$$","msg":"Dashboard","url":"http://127.0.0.1:7351"}
{"level":"info","ts":"$$timestamp$$","msg":"Client","port":7350}

Run Nakama with Docker

Follow the guide to run Nakama (and CockroachDB) in Docker.

Nakama Docker images are available on Docker Hub. If you'd like to publish your own Docker image have a look at our Docker README.

Deploy Nakama with Docker Cloud

Nakama can be deployed to any cloud with Docker Cloud such as AWS, Google Cloud, Azure, Digital Ocean or your own private cloud. You'll need to setup Docker Cloud and provision separate nodes for Nakama and CockroachDB.

Production deployments

Nakama server uses cockroachdb as its database server. You're responsible for the uptime, replication, backups, logs, and upgrades of your data.

You also need to update the Nakama server with every new release and configure the server to auto-scale. If you use our Docker releases follow along with the "latest" image tag and check for new releases once a month.

Using our managed cloud service helps save you time, development costs, and eliminates managing your own clusters which is simpler and cheaper as you grow. We recommend our Managed cloud if you're running production games or apps.

Contribute

To build the codebase you will need to install these dependencies:

  • go The Go compiler toolchain.
  • nodejs A JavaScript runtime.
  • dep A dependency manager for Go projects.
  • protobuf A toolchain used to create custom protocols.
  • make A rule-based build tool (installed by default on most platforms).

You'll need to setup your Go environment variables like GOPATH as usual. You can then install dependent build tools and code:

$> git clone https://github.com/heroiclabs/nakama
$> cd nakama
$> make gettools
$> dep ensure

To run a Nakama server you'll need to connect it to a database. The system has been specially designed to work with CockroachDB for storage and queries. You can install it on OS X with brew install cockroach. For more detailed instructions see their documentation.

For development run:

$> make dbstart nakama
$> ./build/dev/nakama

To develop the admin dashboard:

$> cd dashboard; npm run dev

NOTE: The first time you setup the cockroach database you must initialize the schema with make dbstart dbsetup.

nakama's People

Contributors

mofirouz avatar novabyte avatar zyro avatar opcon avatar

Watchers

James Cloos avatar Starbuck avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.