Game Flow

Pentangle St. - Code Plugins - Oct 24, 2023

Game Flow Plugin allows user to create state machines and configure them for various reasons

  • Supported Platforms
  • Supported Engine Versions
    5.1 - 5.4
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.
Game Flow Plugin



SUPPORT/FEEDBACK/DONATE

EXAMPLE/SOURCE CODE

TUTORIAL



You can create all assets provided by this plugin via opening Content Browser context menu (with Right Mouse Button) and navigating to Gameplay category after plugin is installed. In the next sections all assets will be covered.



Game Flow


Game Flow - is main asset class which contains state machine. It is configured via Graph Editor by creating and editing nodes, links between them, setting properties on that nodes, links and asset itself. By default there is an Entry Node which defines state machine entry point.



Game Flow State


Game Flow State - is the only node class available for user to add while editing Game Flow.


Game Flow State properties:

  • [Sub Flow] - with this property user can include one Game Flow into another one, so building by this some hierarchy of Game Flows. Avoid referencing Game Flow by itself with this property - this can create execution logic cycle and cause problems.
  • [Instanced Sub Flow] - If true, referenced [Sub Flow] will be used as template to create instance inside this state. If false, referenced [Sub Flow] will be used as shared flow. IS AVAILABLE ONLY WHEN [Sub Flow] IS SET
  • [Reset Sub Flow On Enter State] - If true, referenced [Sub Flow] will be reset when this state is entered. IS AVAILABLE ONLY WHEN [Sub Flow] IS SET AND [Instanced Sub Flow] IS FALSE - INSTANCED [Sub Flow] IS ALWAYS RESET WHEN STATE IS ENTERED
  • [Reset Sub Flow On Exit State] - If true, referenced [Sub Flow] will be reset when this state is exited. IS AVAILABLE ONLY WHEN [Sub Flow] IS SET AND [Instanced Sub Flow] IS FALSE - INSTANCED [Sub Flow] IS ALWAYS RESET WHEN STATE IS EXITED
  • [Steps] - collection of Game Flow Step objects to execute when state is entered and exited, going from first to last when entering and vice versa when exiting. See Steps section below.
  • [Transition Key] - if set, state will try to make transition with this Transition Key object after executing its [Steps]



Game Flow Transition


While editing Game Flow user can select links between states via their labels.


Game Flow Transition properties:

  • [Transition Key] - this property defines what Transition Key object will trigger thais transition.



Transition Key


Transition Key - is asset class for all objects that are used as keys to control transitions between states of Game Flows.



Game Flow Step


Game Flow Step - is base blueprint class for all objects that can be executed by Game Flows when entering and exiting their states. States contains [Steps] property, that stores collection of Game Flow Step objects to execute. Execution order is different when entering (from first step to last) and when exiting (from last step to first). That is similar to stack execution model.


User can create own subclasses of this class both in C++ and Blueprints. See pictures to check sync and async templates.



Game Flow Context


Game Flow Context - is an interface which provide some common mechanism to get and set values by keys. It is possible that user will need some data to be stored in the sense of place (globally/locally) and time (permanent/temporary) when using Game Flows. For example, there can be some state that is creating SaveGame for active game session. In this case, it will be needed to store that information somewhere globally while this game session is active. Although, it can be done with internal logic of user created subclasses of Game Flow Step, it also can be done based on Game Flow Context, achieving the same in more abstract and formal way.


Plugin contains default implementation for this interface based on Map.

Technical Details

Features:

  • Game Flow Plugin allows user to create Game Flows (state machines) and configure them for various reasons
  • Game Flow Plugin allows user to create Game Flow Steps that are executed by Game Flows when entering and exiting their states
  • Game Flow Plugin allows user to create Game Flow Contexts that can store data for Game Flows related to their states or flows
  • Game Flow Plugin allows user to create Transition Keys that are used as keys to control transitions between states

Code Modules:

  • GameFlowCore [Runtime]
  • GameFlowCoreEditor [Editor] 

Number of Blueprints: 0

Number of C++ Classes: 25

Network Replicated: (Yes/No)

Supported Development Platforms: Win64, Linux, Mac

Supported Target Build Platforms: Win64, Linux, Mac

Documentation: see full description above

Example Project: https://github.com/klauth86/UE_Plugin_GameFlow

Important/Additional Notes: