Home

Awesome

<img src="assets/bestoneto.png" width="300" />

License: MIT PRs Welcome Maintenance

BestoNet is a custom rollback networking solution developed for the fighting game Idol Showdown. Built in C# for Unity, it integrates with Facepunch Steamworks to provide a robust and efficient rollback implementation.

This is a work in progress as a library, and won't work right out the box

📚 Documentation

Background

Originally we used Unity GGPO but there were some issues.

Core Features

Rollback Management

Implementation Requirements

  1. Frame Timing: Idol Showdown currently uses a separate thread as a timer.
  2. Spectator: The current implementation contains a call to send confirmed frame inputs to a spectator buffer
  3. State management system: Deterministic game logic is required. For efficiency reasons, we recommend avoiding using byte[] with BinaryWriter/Reader

Configuration

Rollback Settings

Current Unity Configuration Settings

Note: The MaxRollbackFrames setting currently shows 4 frames but effectively provides ~8 frames of rollback in Idol Showdown. This discrepancy is known but functional.

Credits

This implementation draws inspiration from:

Special thanks to Rin Iota for developing the original networking foundation that enabled ISD Rollback's creation.

Contributing

This is an open-source project accepting community contributions. Please read our Contributing Guide and Code of Conduct before submitting pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.