{"repo":"johanhelsing/bevy_roll_safe","free":true,"listed":false,"github":"https://github.com/johanhelsing/bevy_roll_safe","clone":"git clone https://github.com/johanhelsing/bevy_roll_safe.git","description":"Rollback-safe implementations and utilities for Bevy Engine","language":"Rust","stars":20,"topics":["bevy","deterministic","game-development","rollback"],"license":"Apache-2.0","category":"game-templates","readme_excerpt":"bevy roll safe Rollback-safe implementations and utilities for Bevy Engine. Motivation Some of Bevy's features can't be used in a rollback context (with crates such as [ bevy ggrs ]). This is either because they behave non-deterministically, rely on inaccessible local system state, or are tightly coupled to the Main schedule. Roadmap - [x] States - [x] Basic freely mutable states - [x] OnEnter / OnLeave / OnTransition - [x] FrameCount - [x] Rollback-safe \"Main\"/default schedules - [x] Audio playback - [x] Support all PlaybackMode s - [ ] Support for seeking in \"time-critical\" audio - [ ] Support for formats that don't report sound durations (mp3/ogg) - [ ] Events States Bevy states when added through app.init state:: () have two big problems: 1. They happen in the StateTransition schedule within the MainSchedule 2. If rolled back to the first frame, OnEnter(InitialState) is not re-run. This crate provides an extension method, init roll state in schedule:: (schedule) , which lets you add a state to the schedule you want, and a resource, InitialStateEntered which can be rolled back and tracks whether the initial OnEnter should be run (or re-run on rollbacks to the initial frame). If you are using the rollback schedule plugin as well. Adding a rollback safe state is a simple as app.init roll state:: () . See the states example for usage with [ bevy ggrs ]. Default rollback schedule RollbackSchedulePlugin adds rollback-specific alternatives to the schedules in Bevy's FixedMain / ","default_branch":null,"files":null,"tree":[],"storefront":"/r/johanhelsing","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/johanhelsing/bevy_roll_safe/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}