#bevy-plugin #fps #behavior #quick #responsive #default #120

bevy_quick_response

A Bevy plugin for quick responsive behaviors

12 releases

0.1.11 Apr 21, 2024
0.1.10 Apr 19, 2024

#875 in Game dev

WTFPL license

27KB
406 lines

bevy_quick_response

Crates.io Docs.rs License

(README japanese: README_ja.md)

A Bevy plugin, which changes the initial settings to respond immediately to user input.

The normal behavior of Bevy is to turn on VSync, which causes a delay of 3 frames. On the other hand, turning off VSync removes the FPS limit and increases the load on the CPU/GPU.

This plugin changes the settings to turn off VSync to improve responsiveness while behaving as close as possible to when VSync is on. (By default, the base FPS is set to 60 and the maximum FPS is set to 120.)

Usage

app.add_plugins(QuickResponsePlugin::default())

(DefaultPlugin is automatically enabled, so no need to add it.)

Customizing the behavior, see examples/advanced.rs.

Version table

Bevy bevy_quick_response
0.13 0.1

What this plugin does

  • By default, Mailbox (Fast VSync) is selected for Windows/Linux (DX11/DX12, Vulkan), and AutoNoVsync is selected for macOS (Metal) and others.
  • The base FPS is set to 60, and the maximum FPS is set to 120.

Notes

  • Currently, there is no mode provided from Bevy Engine that corresponds to Fast VSync on Mac, so there may be flickering, but the tuning is fine in the author's verification environment (M1/M2). (The reason why the maximum FPS is set to 120 is for that adjustment.)

TODOs

  • Update window settings after added DefaultPlugin by other settings except this plugin.

Dependencies

~38–80MB
~1.5M SLoC