It’s a crate for dynamic and contextual input mappings for Bevy, inspired by Unreal Engine Enhanced Input.

I really like the UE approach and decided to bring it to Bevy.

Despite being the first release, it’s packed with features:

  • Map inputs from various sources (keyboard, gamepad, etc.) to gameplay actions like Jump, Move, or Attack.
  • Assign actions to different contexts like OnFoot or InCar, which are regular components.
  • Activate or deactivate contexts by simply adding or removing components.
  • Control how actions accumulate input from sources and consume it.
  • Layer multiple contexts on a single entity, controlled by priority.
  • Apply modifiers to inputs, such as dead zones, inversion, scaling, etc., or create custom modifiers by implementing a trait.
  • Assign conditions for how and when an action is triggered, like “hold”, “tap”, “chord”, etc. You can also create custom conditions, such as “on the ground”.
  • React on actions with observers.

I’ve implemented everything from UE and even added some extras. The crate also has ~90% test coverage.

📦bevy_enhanced_replicon

  • arendjr
    link
    fedilink
    arrow-up
    2
    ·
    1 month ago

    This does look cool. How would it work together with Steam Input?

    • Shatur@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 month ago

      Thanks!

      It should work seamlessly since Steam Input operates at a lower level.
      The app will receive the already-mapped input, so no additional handling needed.