https://github.com/lucasteles/Backdash
C# Rollback network SDK
https://github.com/lucasteles/Backdash
fighting-game gamedev ggpo library multiplayer netcode network rollback sdk versus
Last synced: about 1 month ago
JSON representation
C# Rollback network SDK
- Host: GitHub
- URL: https://github.com/lucasteles/Backdash
- Owner: lucasteles
- License: mit
- Created: 2023-09-11T18:49:26.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-12T01:20:30.000Z (about 1 month ago)
- Last Synced: 2025-03-12T02:25:27.813Z (about 1 month ago)
- Topics: fighting-game, gamedev, ggpo, library, multiplayer, netcode, network, rollback, sdk, versus
- Language: C#
- Homepage: https://lucasteles.github.io/Backdash/
- Size: 7.73 MB
- Stars: 116
- Watchers: 5
- Forks: 3
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
- awesome-monogame - Backdash -  - Rollback network SDK (Networking)
- Awesome-Stride - Backdash: Rollback network SDK
README
[](https://github.com/lucasteles/Backdash/actions/workflows/ci.yml)
[](https://www.nuget.org/packages/Backdash)



# Backdash đšī¸
[](https://github.com/lucasteles/Backdash)
Highly configurable and extensible implementation
of [Rollback Netcode](https://en.wikipedia.org/wiki/Netcode#Rollback) with full asynchronous IO.> **Heavily** inspired by [GGPO](https://github.com/pond3r/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](https://github.com/lucasteles/Backdash) is designed to make incorporating rollback networking (_aka.
Rollback [Netcode](https://words.infil.net/w02-netcode.html)_) into new and existing games as easy as possible.## Getting started
[NuGet package](https://www.nuget.org/packages/Backdash) available:
```ps
$ dotnet add package Backdash
```> [!TIP]
> đĄ Please check the **[DOCUMENTATION](https://lucasteles.github.io/Backdash/docs/introduction)** for usage details.### Demos:
| Title | Link |
|-----------------|--------------------------------------------------------------------------------------------------------|
| Terminal | [](https://youtu.be/n-3G0AE5Ti0) |
| Monogame Local | [](https://youtu.be/JYf2MemyJaY) |
| Monogame Lobby | [](https://youtu.be/LGM_9XfzRUI) |
| Godot Lobby | [](https://youtu.be/8M8QnTiJZzA) |
| Save/Load Replay| [](https://youtu.be/iSbOJpLCx5M) |## Samples
Check the samples on the [/samples](https://github.com/lucasteles/Backdash/tree/master/samples) directory:
There are examples for up to 4 players:
- [Simple console game](https://github.com/lucasteles/Backdash/tree/master/samples/ConsoleGame)
- [Monogame SpaceWar](https://github.com/lucasteles/Backdash/tree/master/samples/SpaceWar) [^2]
- [Monogame SpaceWar with lobby over internet](https://github.com/lucasteles/Backdash/tree/master/samples/SpaceWar.Lobby) [^1][^2]
- [Godot SpaceWar with lobby over internet](https://github.com/lucasteles/BackdashGodotSample)[^1]: The sample needs a [web server](https://github.com/lucasteles/Backdash/tree/master/samples/LobbyServer) 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](https://community.monogame.net/t/tutorial-for-setting-up-monogame-on-m1-m2-apple-silicon/19669)
to build some samples.## Building from source
You need to have installed [.NET 8 SDK](https://dotnet.microsoft.com/en-us/download)
1. Clone this repository.
2. Restore tools
- On root directory run: `dotnet tool restore`
3. Building Library (_root directory_)
- SDK only: `dotnet nuke build --configuration Release`
- Alternatively open the solution file `Backdash.sln` on your IDE.
- SDK and samples `dotnet nuke build-samples --configuration Release`.
- Alternatively open the solution file `Backdash.Samples.sln` on your IDE.## Licensing
[Backdash](https://github.com/lucasteles/Backdash) is available under The MIT License. This
means [Backdash](https://github.com/lucasteles/Backdash) is free for commercial and non-commercial use.Attribution is not required, but appreciated.