Skip to content

Latest commit

 

History

History
17 lines (15 loc) · 1.34 KB

README.md

File metadata and controls

17 lines (15 loc) · 1.34 KB

FlowConcrete

Flow is a compact task registration unit that provides user-friendly registration interface and exports registration results as TaskCollection. In order to make registration more convenient, Flow provides some additional features:

  • Dependency injection: task is able to make itself a dependency of other tasks. Using this technique game-level tasks, that do some additional game-specific work, can be easily placed between engine-level tasks.
  • Checkpoints: user can declare logical milestones, called checkpoints, to avoid web-like dependency graphs. Both usual dependency declaration and dependency injection work with checkpoints. And they will not affect exported TaskCollection: Flow erases them during export.
  • Resource usage registration: tasks can declare read and write accesses to registered resources. This allows Flow to detect possible data races between tasks.
  • Verification: if Flow exports non-empty TaskCollection, then it's guaranteed that there is circular dependencies, missing dependencies and data races.
  • Visualization: even if there are mistakes in registered tasks, whole pipeline with resource usage could be visualized as VisualGraph. It's much easier to pinpoint issues visually.