CI Nuget

https://editorconfig.org/

Backdash 🕹️

Highly configurable and extensible implementation of Rollback Netcode with full asynchronous IO.

Heavily inspired by GGPO.

Overview

Traditional techniques account for network transmission time by adding delay to a players input, resulting in a sluggish, laggy game-feel. Rollback networking uses input prediction and speculative execution to send player inputs to the game immediately, providing the illusion of a zero-latency network. Using rollback, the same timings, reactions, visual and audio queues, and muscle memory your players build up playing offline will translate directly online. Backdash is designed to make incorporating rollback networking (aka. Rollback Netcode) into new and existing games as easy as possible.

Getting started

NuGet package available:

$ dotnet add package Backdash
Tip

💡 Please check the DOCUMENTATION for usage details.

Demos:

Title Link
Console Console
Monogame Local Monogame Local
Monogame Online Monogame Online
Save / Replay Save and replay

Samples

Check the samples on the /samples directory:

There are examples for up to 4 players:

[^1]: The sample needs a web server to exchange players addresses. check the sample README.md for more information.

[^2]: If you are using ARM MacOS you may need the x64 version of .NET SDK to build some samples.

Building from source

You need to have installed .NET 8 SDK

  1. Clone this repo.
  2. Building
    • With samples run dotnet build -c Release Backdash.sln on the root directory.
    • SDK only run dotnet build -c Release src/Backdash on the root directory.
    • Alternatively open the solution file Backdash.sln on your IDE.

Licensing

Backdash is available under The MIT License. This means Backdash is free for commercial and non-commercial use.

Attribution is not required, but appreciated.