HFSM2: Hierarchical Finite State Machine Framework with Planning Support
Header-only heriarchical FSM framework in C++14, with fully statically-defined structure (no dynamic allocations), built with variadic templates.
- Visual Studio 14, 15, 16
- GCC 5, 6, 7, 8
- Clang 3.7, 3.8, 3.9, 4, 5, 6, 7
Check Wiki for basic usage and more info.
- Permissive MIT License
- Written in widely-supported modern(ish) C++14
- Fully static, no dynamic allocations
- Uses inline-friendly compile-time pylymorphism, no virtual methods were harmed
- Type-safe transitions:
- 100% NoUML-compliant
- Hierarchical, with composite (sub-machine) and orthogonal regions
- Gamedev-friendly, supports explicit
- Also supports traditional event-based workflow with
- Planning support.
- Utility theory support.
- Scaleable, supports state re-use via state injections
- Debug-assisted, includes automatic structure and activity visualization API with
- Built-in logging support
- Convenient, minimal boilerplate