Mesin Keadaan Hingga Hierarki Berkinerja Tinggi
Kerangka kerja FSM hierarki khusus header di C++11, dengan struktur yang ditentukan sepenuhnya secara statis (tanpa alokasi dinamis), dibuat dengan templat variadik.
Dukungan Kompiler
- Visual Studio: 2015, 2017, 2019, 2022
- GCC: 8, 9, 10, 11, 12, 13
- GCC (LENGAN): 9
- Dentang: 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- AppleDentang: 14
Mulai Cepat
- Contoh Minimal
- Tutorial yang Diperpanjang
Lihat Juga
- UPlugin HFSM2 : Plugin Unreal Engine untuk perpustakaan HFSM2
- FFSM2 : Mesin Keadaan Hingga Datar Berkinerja Tinggi
- FFSM2 UPlugin : Plugin Unreal Engine untuk perpustakaan FFSM2
- HFSM Mono : Font Unicode bitmap monospace untuk perpustakaan HFSM2 dan FFSM2
Dokumentasi
Sorotan Fitur
- Lisensi MIT Permisif
- Ditulis dalam C++11 modern(ish) yang didukung secara luas
- Hanya untuk header
- Boilerplate minimal yang nyaman
- Sepenuhnya statis, tidak ada alokasi dinamis
- Menggunakan polimorfisme waktu kompilasi yang ramah inline, tidak ada metode virtual yang digunakan
- Transisi yang aman untuk tipe:
FSM.changeTo<TargetState>()
dengan payload opsional - Konfigurasi fleksibel menggunakan makro
HFSM2_ENABLE_*
- Dapat diskalakan, mendukung penggunaan kembali status yang kuat melalui suntikan status
- Hierarki , dengan pilihan wilayah komposit (sub-mesin) dan ortogonal
- Ramah Gamedev, mendukung
State::update()
secara eksplisit - Juga mendukung alur kerja berbasis peristiwa tradisional dengan
State::react()
- Periksa apa pun: transisi sebelumnya dan saat ini, status aktivasi status, dan banyak lagi!
- Game ramah AI dengan dukungan perencanaan dinamis
- Dukungan teori utilitas (skor maksimal dan peringkat acak tertimbang)
- Dapat diserialkan , dengan dukungan aktivitas dan riwayat transisi
- Berbantuan debug , mencakup struktur otomatis dan API visualisasi aktivitas dengan
#define HFSM_ENABLE_STRUCTURE_REPORT
- Dukungan pencatatan bawaan
Perpustakaan Pihak Ketiga
- kerangka pengujian unit doctest
- Generator nomor acak semu XoShiRo
Hubungi Kami
- Twitter: @andrew_gresyk
- Perselisihan: HFSM.dev
- Gitter: andrew-gresyk/HFSM2
Terima kasih khusus
- alexandrosk0
- Casey Sanchez
- DJuego
- Kevin Greene
- Kjeld Mathias Petersen
- Lau Bakman
- Mehdi Houshmand
- mrcmry
- Phil Nash
- Romain Cheminade
- Schoppenglas
- Tristan Brindel
- C++::Pertemuan London
- komunitas pemrograman di Splash Damage