🚀 Spring Sale is live! 🚀 Don't miss your chance to get all my products at 30% OFF!  

Get it!

Input Buffering System

Input Buffer System

The "Input Buffer Mechanism" is a common requirement in combat games, and this framework also provides support for it.

In simple terms, by configuring the input buffer, it allows you to more easily achieve branching combo effects, similar to the image below:


gips buffer intro

Define Input Buffer Windows

Define input buffer windows on the input configuration (InputConfig). Here all available input windows are defined.

gips input buffer window definitions

You can define multiple input buffer windows. Each window is associated with a GameplayTag. Each window can define which inputs (including their event types) are allowed to be buffered, as well as the priority of these inputs, and the trigger method for buffered inputs.

At runtime, only one buffer window can be active at a time.

At the same time, there are three trigger methods for buffered inputs:

LastInput

During the window period, the last allowed input pressed will trigger the input event after the window period ends. This is the default method.

HighestPriority

During the window period, only the highest priority of any input that can be buffered will be recorded, and then triggered after the window period ends.

Instant

During the window period, if any allowed input event occurs, it will be triggered immediately and the window will be closed early.

Different trigger methods can bring different feelings to your game and more diverse mechanism changes. Below are the effects of triggering combos with Instant and LastInput trigger methods.

Instant method:

gips buffer instant

LastInput method:

gips buffer lastinput

Place Input Buffer Anim Notify State

Anim Notify State: ANS_GCS_InputBufferWindow

You can place this animation notify state on an animation montage to control the opening/closing of the buffer window.


gips buffer notify

In the image above, after completing an attack trace, a buffer window named "InputBuffer.Combo" is opened for a period of time, allowing other combat-related inputs (combo inputs, dodge, etc.) to be received.

In the non-Instant method, the buffered input (if any) is triggered only when the anim notify state ends.
If you have multiple input buffer windows overlapping, all active input buffer windows will be removed when a buffered input is fired.

Input Buffer Flow

The input buffer mechanism is used in conjunction with InputChecker. Any input that is currently not allowed will enter the input buffer flow.

The specific flow is as follows:

  1. When any input event occurs, it first goes through InputChecker for preliminary judgment to determine if the input is allowed.
  2. If the input is not allowed, it checks if there is an active buffer window at the moment. If there is an active window and the window allows the current input, the input can be successfully buffered.
  3. The buffered input, when triggered, will not go through InputChecker again but will directly execute the input processor associated with that input.