Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork6
High-Performance Flat Finite State Machine Framework
License
NotificationsYou must be signed in to change notification settings
andrew-gresyk/FFSM2
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Header-only flat FSM framework in C++11, with fully statically-defined structure (no dynamic allocations), built with variadic templates.
- Visual Studio: 2015, 2017, 2019,2022
- GCC:9, 10, 11, 12, 13, 14
- GCC (ARM):9
- Clang:13, 14, 15, 16, 17, 18
- AppleClang:15, 16
- FFSM2 UPlugin: Unreal Engine plugin forFFSM2 library
- HFSM2: High-PerformanceHierarchical Finite State Machine
- HFSM2 UPlugin: Unreal Engine plugin forHFSM2 library
- HFSM Mono: Monospaced bitmap Unicode fonts for HFSM2 and FFSM2 libraries
- PermissiveMIT License
- Written in widely-supported modern(ish) C++11
- Header-only
- Convenient, minimal boilerplate
- Fully static, no dynamic allocations
- Uses inline-friendly compile-time polymorphism, no virtual methods are used
- Type-safe transitions:
FSM.changeTo<TargetState>()with optional payloads - Flexible configuration using
FFSM2_ENABLE_*macros - Scalable, supports robust state re-use via state injections
- Gamedev-friendly, supports explicit
State::update() - Also supports traditional event-based workflow with
State::react() - Inspect anything: previous and current transitions, state activation status, and more!
- Game AI-friendly with dynamic planning support
- Debug-assisted, includes automatic structure and activity visualization API
- Built-in logging support
- doctest unit testing framework
- Twitter:@andrew_gresyk
- Discord:HFSM.dev
- Gitter:andrew-gresyk/FFSM2
About
High-Performance Flat Finite State Machine Framework
Topics
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Contributors3
Uh oh!
There was an error while loading.Please reload this page.
