Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 321f29b

Browse filesBrowse files
N23: backroll-rs and GGRS (rust-gamedev#685)
Co-authored-by: Joe Clay <27cupsofcoffee@gmail.com>
1 parent 7b65c8c commit 321f29b
Copy full SHA for 321f29b

File tree

Expand file treeCollapse file tree

2 files changed

+50
-0
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+50
-0
lines changed

‎content/news/023/index.md

Copy file name to clipboardExpand all lines: content/news/023/index.md
+50Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,56 @@ https://www.reddit.com/r/rust\_gamedev/comments/nx79kq/)_
205205

206206
## Library & Tooling Updates
207207

208+
### [backroll-rs] and [GGRS]
209+
210+
[backroll-rs] ([Discord](https://discord.gg/VuZhs9V),
211+
[crates.io](https://crates.io/crates/backroll)) by [@james7132] and
212+
[GGRS]([crates.io](https://crates.io/crates/ggrs)) by [@g_schup] are pure
213+
Rust implementations of the [GGPO] rollback networking library.
214+
215+
![Evo Moment 37](rollback.jpg)
216+
_[Evo Moment 37](https://www.youtube.com/watch?v=JzS96auqau0):
217+
Only offline or with rollback!_
218+
219+
Rollback networking is a peer-to-peer network technique designed to hide
220+
network latency in fast-paced games with precise inputs. Traditional techniques
221+
account for network transmission time by delaying the game execution, resulting
222+
in a sluggish game-feel. Rollback uses input prediction and speculative
223+
execution instead. Upon receiving inputs from remote clients, resimulation of
224+
incorrect game states occurs. This allows for gameplay that "feels just
225+
like offline". The open source standard for rollback netcode [GGPO] is used
226+
in successful games like Skullgirls, Guilty Gear XX Accent Core +R or
227+
Fightcade. For further explanation about rollback,
228+
[click here](https://ki.infil.net/w02-netcode.html).
229+
230+
Two projects in Rust were independently created to provide a working
231+
implementation as well as helpful resources for developers.
232+
backroll-rs features an added abstraction for the transportation layer and
233+
also provides a bevy plugin, [bevy-backroll]. GGRS replaces the
234+
C-style callback API of GGPO with a simpler, more understandable control flow.
235+
The authors of both libraries recommend backroll-rs for developement,
236+
as it is currently more actively collaborated on.
237+
GGRS is recommended as a learning recource and entry point,
238+
with a plethora of internal documentation and explanation.
239+
240+
The main requirement to make use of both presented libraries is determinism
241+
in your game execution. Resimulation requires that the result of progressing
242+
the game state depending on the given inputs yield the exact same results
243+
every time. Additionally, you need to be able to load, save and progress
244+
your gamestate without rendering the outcome.
245+
246+
If you are interested in integrating rollback networking into your game or
247+
just want to chat with other rollback developers (not limited to Rust),
248+
check out the [GGPO Developers Discord]!
249+
250+
[backroll-rs]: https://github.com/HouraiTeahouse/backroll-rs
251+
[bevy-backroll]: https://github.com/HouraiTeahouse/backroll-rs/tree/main/bevy_backroll
252+
[GGPO Developers Discord]: https://discord.gg/8FKKhCRCCE
253+
[GGRS]: https://github.com/gschup/ggrs
254+
[GGPO]: https://www.ggpo.net/
255+
[@g_schup]: https://twitter.com/g_schup
256+
[@james7132]: https://twitter.com/james7132
257+
208258
### [erupt]
209259

210260
![erupt logo](erupt.svg)

‎content/news/023/rollback.jpg

Copy file name to clipboard
145 KB
Loading

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.