상태
FSM(Finite State machine) ; 유한 상태 기계
FSM이란 여러 제한된 상태가 존재하며 그 존재들이 특정 조건에 따라 상태를 전이하는 형태의 개념적 모델이다.
간단하게 말하자면 보스의 패턴 구현 시 어느 특정 조건을 달성해 공격을 할 수 있게 되는 상황을 만들었다면 IDLE -> ATTACK 으로 상태가 바뀌는 것도 간단한 FSM 구현에 속한다.
키 입력 등을 통해 '입력'이나 '이벤트가' 현재 움직여야 하는 머신에 전달이 되면 그에 해당하는 상태를 머신이 갖게 되는 것이다.
◎ FSM의 장점?
1. 가질 수 있는 '상태'가 한정되며 한 번에 '한 가지' 상태만을 갖는다.
상태란 행동이나 현재의 기능을 뜻한다. 예를 들어 플레이어의 움직임에서 생각해보면 걷기, 달리기, 점프 등은 각각 상태인 것이다.
여기서 동시에 두 가지 상태가 일어나지 않게 하기 위해 사용하는 것이 FSM이다.
2. 내부 구조와 구현이 쉽다.
머신의 행동을 직관적으로 간단하게 구현할 수 있다.
3. 오류의 수정이 용이하며 유연성이 있다.
4. 각 상태에는 입력에 따라 다음 상태로 바뀌는 '전이'가 있다.
입력이 들어왔을 때 현재 상태에 해당하는 전이가 있다면 전이가 가리키는 다음 상태로 변경한다.
예를 들어 기본 IDLE 상태에서 Down 키를 누르면 엎드리기 상태로 바뀌지만 점프 상태에서 Down키를 누르면 내려찍기로 전이한다.
◎ FSM의 단점
1. 규모가 커지면 설계가 복잡해 진다.
2. 제한된 범위의 문제에만 적용이 가능하다.
참고 자료;
더 빠르고 깔끔한 게임 코드를 구현하는 13가지 디자인 패턴 게임 프로그래밍 (저; 로버트 나이스트롬 , 역; 박일, 출판사; 한빛미디어)
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=debuff9710&logNo=221333379009
'Study > 디자인패턴' 카테고리의 다른 글
[디자인패턴] 어댑터 (Adapter) (0) | 2021.10.12 |
---|---|
[디자인패턴] 싱글톤(Singletone) (0) | 2020.10.23 |