Fractural / GodotNakamaWebRTCMono

C# port of Snopek Games' godot-nakama-webrtc addon. 🕸

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Godot Nakama WebRTC 🕸️

A C# version of Snopek Game's Nakama WebRTC addon

Godot's High-level Multiplayer API can operate over WebRTC, however, it requires a signaling server to establish the WebRTC connections between all peers.

Nakama is an Open Source, scalable game server that provides many features, including user accounts, authentication, matchmaking, chat, and much more.

This Godot add-on provides some utility code to allow easily setting up those connections using Nakama as the signaling server.

Installation

  1. Copy addons/NakamaWebRTCMono, addons/com.heroiclabs.nakama, webrtc/ and webrtc_debug/ directories into your project.

  2. Download the Nakama client as a Nuget package into your C# project.

  3. Add the OnlineMatch.cs singleton (in addons/NakamaWebRTCMono) as an autoload in Godot.

Demo and Template

This project is a full demo showing how to use this addon, and, in fact, makes a pretty good template project to start from.

Download the full source code and import into Godot 3.5 to run.

Go into the NakamaServer directory and run docker-compose up -d to start a Nakama instance.

In both local and online mode, gamepads are supported, using the XBox A button to attack. The keyboard controls are WASD for movement and SPACE for attack.

In local mode, you can control player 2 using the arrow keys and ENTER to attack.

Config

Please duplicate config.template.yml after cloning the repository and rename it to config.yml. The config.yml will let you specify credentials for using Twilio TURN servers.

Credits

License

Aside from the pieces listed under Credits above (which each have their own licenses), everything else in this project is licensed under the MIT License.

About

C# port of Snopek Games' godot-nakama-webrtc addon. 🕸

License:MIT License


Languages

Language:GDScript 71.2%Language:C# 23.7%Language:Go 5.1%Language:Dockerfile 0.1%Language:Batchfile 0.0%Language:Shell 0.0%