플레이어, 몬스터 AI를 Unity Open Project에서 사용하는 SO기반 FSM을 기반으로 제작하였었다.
2인 개발중인 Color Lim에 굳이 저걸 사용했던 이유는
1. 언제든 다른 누군가가 우리 프로젝트에 들어올 여지가 있다
2. State별로 다루기 쉬움, 객체지향적이고 확장성이 좋음 => 앞으로 우리 게임이 얼마나 커질지 모르기 때문에 변화에 용이하다고 판단되는 구조를 가져다 씀
정도이다.
하지만 캐릭터들의 State가 늘어나면서 FSM의 단점이 장점보다 번거롭다고 느껴졌다.
간단히 FSM, Behavior Tree, HFSM 에 대해 비교해보자면
FSM (Finite State Machine)
상태(State)와 전이(Transition)으로 구성됨
상태를 직관적으로 확인할 수 있음
상태가 많아지면 노드가 복잡해짐 (확장성이 낮음)
HFSM (Heirarchical Finite State Machine)
FSM의 노드가 복잡해지는 단점을 개선함 (상태 계층화)
어느정도의 확장성이 있으나 여전히 제한적임
Behavior Tree
HFSM을 개선함
변화에 빠르게 대응 가능
확장성이 좋음
정도이다.
(그림으로 보니까 한눈에 어떤느낌인지 들어오던데 나중에 추가하겠습니다)
추가할 내용
FSM HFSM BT등을 그림, 도식 등을 이용해 설명하기
하여튼 그래서 늘어나는 State들을 좀 더 편하게 다루고 싶던 전..
BT를 사용하기로 하였습니다
BT를 처음부터 구현해보고 싶은 마음은 크지만
이렇게 모든걸 처음부터 구현하다보면 게임 제작이 언제 완료될지 모르겠어서..
BT의 이론들만 공부한 뒤 유니티 에셋인 Behavior Design을 사용하기로 결정!
현재 Behavior Design을 공부하고 다뤄가는 중입니다.
'프로젝트 > Color Lim 개발일지' 카테고리의 다른 글
2021-05-30 개발일지 (0) | 2021.05.31 |
---|---|
2021-05-28 개발일지 (0) | 2021.05.29 |
2021-05-27~28 개발일지 (0) | 2021.05.28 |
2021-05-25 개발일지 (0) | 2021.05.26 |
2021-04-18 개발일지 (0) | 2021.04.18 |