• Stars
    star
    265
  • Rank 151,470 (Top 4 %)
  • Language GDScript
  • License
    Other
  • Created over 4 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A demo project with Godot engine and Nakama server.

Nakama Godot Demo

Nakama Godot demo banner image

This demo shows how to use Nakama with the Nakama Godot client.

It showcases the following Nakama features:

  • Authentication, sessions, and disconnection.
  • Game storage.
  • Sockets and managing connections.
  • Real-time chat.
  • In-app notifications with popups.
  • Character color customization.
  • Platforming mechanics and synchronizing players. Multiple players can interact together.

It also shows good practices to design user interface and structure your Godot projects.

Learning Nakama

There are two Godot projects in this repository:

  1. In the godot/ directory, you have the complete demo.
  2. In the tutorial/ directory, there is a Godot project showing basic code examples to get you started. There, you will also find written notes for an upcoming series of video tutorials, with code snippets.

Screenshots

Here is a view of the game world, where players can chat, move around, interact with one-another, or change their color.

in-game screenshot

The character creation screen allows you to pick a color from a predefined color palette.

Character creation screen

Testing the project

To test the project, you need first to install the server and get it running, then run two instances of Godot.

To install and start the server:

  1. Install Docker.
  2. Open your terminal and navigate to the nakama/ directory.
  3. Run the command docker-compose -f docker-compose.yml up or run boot.bat in Windows.

Docker should automatically download, then install Nakama and CockroachDB for you before starting the local server. The server should emit the message "Startup done".

Then, to test the project in Godot, you need to open or run the project in the godot/ directory in two separate instances.

Setting up docker on Windows 10 Home and below)

  1. Install Docker Toolbox.

  2. Double-click on the Docker Quickstart Terminal shortcut created by the docker toolbox installer.

  3. Run the Command docker-machine ip to get your IP and save it for future use.

  4. Extra settings if not running project from C drive

    1. Create shared folder
    2. Edit in the docker-compose.yml change the volumes path under nakama services to

    "/Folder Name define in the VBox settings(step 4i)/path to docker-compose.yml file:/nakama/data"

    1. Run the Command "docker-machine restart"

Registering and logging in

To log into the game, you need first to register a dummy local account. To do so, on the initial game screen:

  1. Click on the "register" button.
  2. Enter any email and password.
    • The email doesn't need to exist, but it needs to be of the form [email protected]. For example, [email protected] would work.
    • The password needs to contain at least 8 characters.

Once you registered an account, you can log in, create a new character, and enter the game.

Using the Nakama admin area

Nakama's server provides a web admin interface to see, modify, or purge users and other game data. To access it:

  1. Start the Nakama server.
  2. Navigate to http://127.0.0.1:7351/ in your web browser.
    • Run docker-machine ip to get the IP if Windows 10 Home and below
  3. Log into the platform. The default admin user's login is admin and its password is password.

Licenses

This project is dual-licensed:

  • The source code is available under the Apache 2.0 license.
  • Art assets (images, audio files) are CC-By-SA 4.0. You should attribute them to Heroic Labs (https://heroiclabs.com/).

More Repositories

1

nakama

Distributed server for social and realtime games and apps.
Go
7,860
star
2

nakama-godot

Godot client for Nakama server written in GDScript.
GDScript
510
star
3

nakama-unity

Unity client for Nakama server.
C#
363
star
4

fishgame-godot

"Fish Game" for Godot is a 2-4 player online multiplayer game created as a demo of Nakama; an open-source scalable game server, using the Godot game engine.
GDScript
205
star
5

nakama-unreal

Unreal client for Nakama server.
C++
171
star
6

nakama-js

JavaScript client for Nakama server written in TypeScript.
TypeScript
164
star
7

fishgame-macroquad

"Fish Game" for Macroquad is an online multiplayer game, created as a demonstration of Nakama, an open-source scalable game server, using Rust-lang and the Macroquad game engine.
Rust
136
star
8

unity-sampleproject

A sample game called Pirate Panic for Unity engine built with Nakama server.
C#
132
star
9

nakama-dart

Pure Dart Client for Nakama Server
Dart
131
star
10

nakama-dotnet

.NET client for Nakama server written in C#.
C#
99
star
11

nakama-project-template

An example project on how to set up and write custom server code in Nakama server.
Go
81
star
12

nakama-defold

Defold client for Nakama server.
Lua
74
star
13

nakama-cpp

Generic C/C++ client for Nakama server.
C++
67
star
14

nakama-rs

Rust
65
star
15

nakama-common

The runtime framework for Nakama server.
Go
44
star
16

nakama-docs

Documentation for Nakama social and realtime server.
Shell
43
star
17

fishgame-unity

"Fish Game" for Unity is a 2-4 player online multiplayer game created as a demo of Nakama; an open-source scalable game server, using the Unity game engine.
C#
43
star
18

nakama-java

Java client for the Nakama and Satori servers.
Java
29
star
19

nakama-cocos2d-x

Cocos2d-x client for Nakama server.
C++
27
star
20

nakama-examples

A mono repo with project examples for the Nakama client libraries.
C#
24
star
21

nakama-swift

Swift client for Nakama server.
Swift
24
star
22

pulse

Service registration and discovery library for Elixir. Relies on etcd as an external service registry.
Elixir
16
star
23

hiro

The server interface for the Hiro game framework.
Go
14
star
24

sonic

etcd library and bindings for Elixir.
Elixir
10
star
25

nakama-cocos2d-x-javascript

Cocos2d-x client for Nakama server written in JavaScript
JavaScript
7
star
26

reconstructing-fun

C#
6
star
27

xoxo-phaserjs

JavaScript
5
star