Skip to content

Input capture and playback functionality for the Bevy game engine.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE.md
MIT
LICENSE-MIT.md
Notifications You must be signed in to change notification settings

Leafwing-Studios/leafwing_input_playback

Repository files navigation

About

An input recording and playback library for the [Bevy] game engine in Rust. Test your games and applications without breaking a sweat. Support Tool Assisted Speedruns (TAS) effortlessly. Make crazy game mechanics where your player's inputs are echoed??

This crate currently captures the following input modes:

  • keyboard
  • mouse
  • gamepad

If you need more, please feel free to file an issue or open a PR!

Getting started

If you're new to this crate, check out the input_playback example to get a good overview of how it all works in practice.

Playback-powered testing

This crate can be used to capture, save to disk, and then play back user inputs in a macro-like fashion. This serialization-based workflow is a natural (if somewhat brittle) fit for testing UI, app logic and gameplay elements of your Bevy apps.

Simply toggle on InputCapturePlugin, set a PlaybackFilePath, perform your inputs and then close the app.

Then, when evaluating tests, loop through each saved input sample, and run your app with the InputPlaybackPlugin, providing a PlaybackFilePath corresponding to the input sample you are testing. AppExit events are also captured, your tests will close down automatically when they're complete.

About

Input capture and playback functionality for the Bevy game engine.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE.md
MIT
LICENSE-MIT.md

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages