Skip to content
Michael Adaixo edited this page Feb 1, 2024 · 8 revisions

FlowPilot

FlowPilot is a simple, modular and extensible gameplay system that allows fast data-driven gameplay flow creation.

FlowPilot is a sequencer for FlowPilot Task nodes that executes one node after another. When a TaskNode completes the next one starts by default. You can extend this functionality with built-in Selector or Parallel task node ot easily branch out different execution paths. FlowPilot is heavily inspired by behavior trees so you'll find the same concepts here: a Sequence runs TaskNodes until one fails, a Selector runs TaskNodes until one succeed, etc..

Use FlowPilot for local behavior logic such as Interactions, when you don't need much information about the outside world. Or use it for global orchestration of events. You will find FlowActorReferences that fetch actors in the level, or via GameplayTags. Combined with a simple but powerful caching functionality, the cost to find actors is paid upfront with Prefetch functionality.

Join the Conversation on Discord : https://discord.gg/sF9KjZ9qqj

Features

  • Start/Pause/Stop FlowPilot sequences
  • Inject FlowPilotAssets into FlowPilotAssets for maximum re-use flexibility
  • GameplayTag based Actor reference fetching and caching system
  • Integrated CPU Traces and Visual Logs on TaskNode internal methods for Performance monitoring
  • Large set of default nodes: Sequence, Selector, Parallel, Loop, Delay, FlowPilotAsset, Spawn Class, Despawn Actor, Load Level, (more to come)..
  • Easily Extend functionality by creating new TaskNodes via Cpp or Blueprint

Use cases

  • Game loop control: Play Music, Fade Screen, Spawn Players, Initial AI Spawns.
  • Level Reload conditions. Listen for Player Death.
  • Smart object interactions (e.g. Activate based on pre-conditions, play sound effects, etc)

FlowPilot is very versatile as its not made for a specific game genre, so adding new nodes for new functionality is highly game dependent. FlowPilot aims to streamline level design, provide flexibility and ease of use when creating gameplay.

Help

Clone this wiki locally