진행 사항
개발 프로세스를 바꾸고 있습니다. 이전에는 웹기반 LLM에 물어보면서 진행 했는데 최근 트랜드나 속도등에서 월등한 AI 에이전트를 사용해보려고 합니다. 지인의 추천으로 antigravity로 진행하고 있습니다.
AI 에이전트의 추천으로 State Machine을 이용한 코드구조를 변경 하였습니다. 직접 코드를 작성할 일이 거의 없어지겠지만 이해는 꼭 필요한 부분이라고 생각합니다. 이전에도 한번 공부 했었지만 이해도가 떨어지니 쉽게 코드를 못만지니 흥미도 떨어지고 잘 안만들어지더군용…
State 패턴 학습
FSM : Finite State Machine의 약자로, 한국어로는 유한 상태 기계(또는 상태 머신)라고 부릅니다.
게임 개발에서 캐릭터나 AI의 행동 패턴(Idle, Move, Attack 등)을 여러 ‘상태(State)’들로 잘게 나누고, 현재 어떤 상태인지 명확하게 규정하여 전환(Transition)을 관리하는 설계 패턴을 뜻합니다.
AI 에이전트에 질문했을때 답변입니다.
의미 없는 이미지일지 모르겠지만 이해한것을 설명을 최대한 해보자면. State Machine을 가지고 있는 Node가 해당 머신의 구동 메서드를 호출해서 사용합니다. Node의 코드에서는 그 코드가 무엇인지는 작성되있지 않습니다. 그냥 행동해! 하는것처럼 동작합니다. Node에서는 “지금 상태를 ‘이동’으로 바꿔줘.”로 요청만 합니다. 이동하기 위한 동작은 State에 정의되어 있어서 State Machine이 상태를 바꾸고 필요한 동작을 지속적으로 수행합니다.
State에는 “동작해!”라고 한다면
- 공격 : 팔을 휘두름
- 이동 : 다리를 움직임
- 대기 : 아무것도 안하고 멈춤 을 각각 구해놓은 상태들이 있는 구조?
당연한 말 같은데 코드로 보면 Node는 지속적으로 동작하는 루프에서 State Machine의 동작 메서드만 호출하고 경우에 따라 상태만 바꾸는 메서드만 호출하는 형식입니다.
좀 더 제데로된 설명을 하기위해 공부를 더 해와야겠습니다.
