高性能の階層型有限状態マシン
C++11 のヘッダーのみの階層 FSM フレームワーク。完全に静的に定義された構造 (動的割り当てなし) を備え、可変引数テンプレートで構築されています。
コンパイラのサポート
- Visual Studio: 2015、2017、2019、2022
- GCC: 8、9、10、11、12、13
- GCC (ARM): 9
- クラン: 6、7、8、9、10、11、12、13、14、15
- アップルクラング: 14
クイックスタート
関連項目
- HFSM2 UPlugin : HFSM2 ライブラリ用の Unreal Engine プラグイン
- FFSM2 : 高性能フラット有限ステートマシン
- FFSM2 UPlugin : FFSM2 ライブラリ用の Unreal Engine プラグイン
- HFSM Mono : HFSM2 および FFSM2 ライブラリ用の等幅ビットマップ Unicode フォント
ドキュメント
機能のハイライト
- 寛容なMIT ライセンス
- 広くサポートされている最新の (っぽい) C++11 で書かれています
- ヘッダーのみ
- 便利で最小限の定型文
- 完全に静的で、動的割り当てはありません
- インライン対応のコンパイル時ポリモーフィズムを使用し、仮想メソッドは使用しません
- タイプセーフな遷移: オプションのペイロードを含む
FSM.changeTo<TargetState>()
-
HFSM2_ENABLE_*
マクロを使用した柔軟な構成 - スケーラブルで、状態注入による堅牢な状態の再利用をサポートします。
- 複合 (サブマシン) 領域と直交領域を選択した階層型
- ゲーム開発に適しており、明示的な
State::update()
をサポートしています。 -
State::react()
を使用した従来のイベントベースのワークフローもサポートします - 以前と現在の遷移、状態のアクティブ化ステータスなど、あらゆるものを検査します。
- 動的なプランニングをサポートするゲーム AI フレンドリー
- 効用理論のサポート (最大スコアとランク付けされた重み付きランダム)
- シリアル化可能、アクティビティおよび遷移履歴のサポートあり
- デバッグ支援、
#define HFSM_ENABLE_STRUCTURE_REPORT
を使用した自動構造およびアクティビティ視覚化 API が含まれています - 組み込みのロギングのサポート
サードパーティのライブラリ
- doctest単体テスト フレームワーク
- XoShiRo擬似乱数生成器
連絡する
- Twitter: @andrew_gresyk
- Discord: HFSM.dev
- ギッター:アンドリュー・グレシク/HFSM2
特別な感謝の気持ち
- アレクサンドロスク0
- ケイシー・サンチェス
- デジェゴ
- ケビン・グリーン
- キジェルド・マティアス・ピーターセン
- ラウ・バクマン
- メディ・ホシュマンド
- mrcmry
- フィル・ナッシュ
- ロマン・シュミナード
- ショッペングラス
- トリスタン ブリンドル
- C++::ロンドンミートアップ
- Splash Disaster のプログラミング コミュニティ