고성능 계층적 유한 상태 머신
완전히 정적으로 정의된 구조(동적 할당 없음)를 사용하고 가변 템플릿으로 구축된 C++11의 헤더 전용 계층적 FSM 프레임워크입니다.
컴파일러 지원
- 비주얼 스튜디오: 2015, 2017, 2019, 2022
- GCC: 8, 9, 10, 11, 12, 13
- GCC(ARM): 9
- 클랭: 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- AppleClang: 14
빠른 시작
참조
- HFSM2 UPlugin : HFSM2 라이브러리용 언리얼 엔진 플러그인
- FFSM2 : 고성능 평면 유한 상태 머신
- FFSM2 UPlugin : FFSM2 라이브러리용 언리얼 엔진 플러그인
- HFSM Mono : HFSM2 및 FFSM2 라이브러리용 고정폭 비트맵 유니코드 글꼴
선적 서류 비치
주요 기능
- 허용적인 MIT 라이선스
- 널리 지원되는 최신 C++11로 작성되었습니다.
- 헤더만
- 편리하고 최소한의 상용구
- 완전 정적, 동적 할당 없음
- 인라인 친화적인 컴파일 타임 다형성을 사용하며 가상 메서드는 사용되지 않습니다.
- 유형이 안전한 전환: 선택적 페이로드가 있는
FSM.changeTo<TargetState>()
-
HFSM2_ENABLE_*
매크로를 사용한 유연한 구성 - 확장 가능하며 상태 주입을 통해 강력한 상태 재사용을 지원합니다.
- 계층적 , 복합(하위 기계) 및 직교 영역 선택 가능
- Gamedev 친화적이며 명시적인
State::update()
지원합니다. - 또한
State::react()
사용하여 기존 이벤트 기반 워크플로를 지원합니다. - 이전 및 현재 전환, 상태 활성화 상태 등 무엇이든 검사하세요!
- 동적 계획 지원으로 게임 AI 친화적
- 효용 이론 지원(최대 점수 및 순위 가중치 무작위)
- 활동 및 전환 기록 지원을 통해 직렬화 가능
- 디버그 지원 ,
#define HFSM_ENABLE_STRUCTURE_REPORT
사용한 자동 구조 및 활동 시각화 API 포함 - 내장된 로깅 지원
타사 라이브러리
- doctest 단위 테스트 프레임워크
- XoShiRo 의사 난수 생성기
연락하기
- 트위터: @andrew_gresyk
- 디스코드: HFSM.dev
- 기터: Andrew-gresyk/HFSM2
특별한 감사
- 알렉산드로스크0
- 케이시 산체스
- 디쥬에고
- 케빈 그린
- 킬드 마티아스 피터슨
- 라우 박만
- 메디 후슈만드
- Mrcmry
- 필 내쉬
- 로맹 케미네이드
- 쇼펜글라스
- 트리스탄 브린들
- C++::런던 모임
- Splash Damage의 프로그래밍 커뮤니티