Need help with nakama-godot-demo?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

heroiclabs
169 Stars 28 Forks Other 166 Commits 4 Opened issues

Description

A demo project with Godot engine and Nakama server.

Services available

!
?

Need anything else?

Contributors list

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/).

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.