Skip to content

Heavenlode/Nebula

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

87 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Nebula

Godot C# Netcode from another galaxy ๐ŸŒŒ

Table of contents

Sample

using Godot;
using Nebula;

namespace MyGame
{
	public partial class PlayableCharacter : NetworkNode3D
	{
		[NetworkProperty]
		public int Money { get; set; }

		public OnNetworkChangeMoney(int _tick, int oldVal, int newVal)
		{
			// This is only called on the client-side
			GD.Print("I have " + newVal + " money now! Thanks, server.");
		}

		public override void _NetworkProcess(int _tick)
		{
			base._NetworkProcess(_tick);
			if (NetworkRunner.Instance.IsServer)
			{
				// This is only called on the server-side
				Money += 1;
			}
		}
	}
}

Features

  • Tick-aligned system
  • Single state authority (Dedicated-server model)
  • Input authority (cheat prevention)
  • Data Interpolation
  • Advanced, variable-level Interest management
  • Multiple "Worlds" within one Godot server instance

Coming soon

Getting started

Pre-setup notes

  • Requires Godot.NET (this is a C# library)

Setup steps

  1. Add Nebula to your "addons"
  2. Import Nebula in your .csproj. For example:
<Project Sdk="Godot.NET.Sdk/4.3.0-beta.1">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>

  <Import Project="addons\Nebula\Nebula.props" />
</Project>
  1. Enable the Nebula plugin in Godot

Help

Better documentation and demo projects are coming soon. In the meantime, feel free to open a ticket with any questions or concerns.

Examples

Documentation

More comprehensive documentation is available here: https://nebula.dev.heavenlode.com

What is this?

Nebula is a library for developing online multiplayer games with Godot. It is a tick-aligned system, respects input authority, and all state is managed by the server.

This library is still in BETA, therefore it is not quite production-ready and is subject to changes as we approach stability.

How to contribute

If you have questions, comments, or concerns, please feel free to open a ticket.

If you want to contribute code and/or documentation, you're amazing! To maximize your odds of your feature/PR getting merged in, you are encouraged to first open a ticket with your proposal. Once approved, any and all work is very much appreciated.

About

Godot C# Netcode from another galaxy ๐ŸŒŒ

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •