
상태 머신State Machine
상태 전이로 캐릭터나 시스템의 행동을 구동합니다
태그 필터
상태 머신
클래식 사례
Dark Souls Enemy AI · Hollow Knight · Fighting games
① 개념, 역할과 의의
개념
상태 머신 특성은 캐릭터, 적, 게임 시스템이 뚜렷한 상태 사이를 전환하는 것을 강조합니다. 각 상태는 명확한 진입 조건, 행동, 이탈 조건을 가져 복잡한 행동을 예측 가능하고 디버깅 가능하게 합니다. AI, 캐릭터 제어, 전역 흐름 관리의 기반 엔지니어링 구조입니다. 메뉴에서 게임플레이, 결과로의 흐름도 상태 머신이고, 적의 순찰/교전/공격 사이클도 상태 머신입니다. 상태 머신의 가장 큰 위협은 상태 인플레이션입니다. 상태 수가 늘면 전이 조건이 충돌하고 디버깅이 어려워집니다. 그 시점에는 계층적 상태 머신이나 행동 트리를 고려하세요. 시스템의 행동이 유한하고 상호 배타적이며 잘 정의된 단계로 분해될 수 있을 때만 상태 머신을 사용해야 합니다.
역할
상태 머신은 복잡한 행동 로직을 관리해, 플레이어와 개발자가 '지금 어느 단계이고 무엇이 일어날지'를 이해하게 합니다. AI, 캐릭터 제어, 프로세스 관리의 기반입니다.
의의
상태 머신 특성을 마스터하면 State 패턴, 행동 트리, 이벤트 주도 아키텍처를 이해하는 데 도움이 됩니다. 단순 스크립트에서 복잡한 시스템으로 가는 필수 경로입니다.
② 특징 시스템 분석
2.1 해결하는 문제
- 복잡한 행동을 관리 가능한 상태로 분해합니다
- 캐릭터/적의 행동을 예측 가능하고 확장 가능하게 합니다
- 다중 조건 검사로 인한 논리 혼란을 방지합니다
2.2 학습 목표
- 유한 상태 머신(FSM)을 설계한다
- 상태 전이 조건과 콜백을 마스터한다
- 계층적 상태 머신이나 행동 트리로 복잡성을 확장한다
2.3 최소 규칙 집합
- 시스템/캐릭터는 유한 수의 뚜렷한 상태를 가집니다
- 상태 사이에 명확한 전이 조건이 있습니다
- 각 상태는 구체적인 행동을 정의합니다

③ 흔한 조합과 변형
상태 머신 + AI
적이 리드미컬한 공격, 순찰, 피격 반응을 보이게 합니다
상태 머신 + 애니메이션
상태 주도 애니메이션 전이로 일관성을 보장합니다
상태 머신 + 흐름
전역 게임 흐름을 관리합니다(메뉴 → 게임 → 결과)
④ 고급 설계와 알고리즘 (접힘)클릭하여 펼치기
설계 시 주의사항
- FSM은 상태가 너무 많으면 유지보수가 어려워집니다
- 충돌하는 전이 조건은 교착을 일으킬 수 있습니다
- 복잡한 AI는 행동 트리나 계층적 FSM으로 마이그레이션하는 것을 권장합니다
알고리즘 예시
- 유한 상태 머신(FSM) 구현
- 계층적 유한 상태 머신(HFSM)
- 행동 트리와 상태 머신의 결합
