- 에이전트가 환경과 상호작용하면서 보상을 최대화하는 정책을 스스로 학습하는 기법
- 환경 : 상태와 보상이 정의된 시뮬레이션
- 행동 : 에이전트가 취할 수 있는 입력
- 정책 : 상태를 행동으로 매핑하는 함수
- 학습 : 에피소드를 반복하며 보상을 최대화하도록 정책을 업데이트
장점
- 게임 내 규칙을 일일이 프로그래밍하지 않고도 에이전트가 스스로 최적의 전략을 발견할 수 있습니다.
- 복잡한 환경에서도 학습만으로 적응력 높은 AI를 만들 수 있습니다.
단점
- 학습에 필요한 시뮬레이션 환경 구축과 학습 시간이 오래 걸립니다.
- 학습 중 예기치 않은 비정상 행동이나 과적합이 발생할 수 있어 튜닝이 까다롭습니다.
- 복잡한 전략/전술 학습이 필요하거나 사람이 규칙을 정의하기 어려운 경우
- 미래 시나리오를 시뮬레이션 해보고 확률적으로 최적의 경로를 탐색하는 기법
장점
- 수많은 시뮬레이션을 통해 확률적으로 높은 성공 확률을 가진 행동을 선택할 수 있습니다.
단점
- 계산량이 매우 많아 실시간 게임보다는 턴제 전략 및 보드 게임에서 사용됩니다.
- Unity 일반 NPC에는 과도하게 무겁고 구현이 복잡합니다.
- 턴제 전략, 보드 게임 같은 복잡한 탐색이 필요한 경우
- 참/거짓이 아닌 어느 정도로 상태를 표현하고 퍼지 규칙을 기반으로 행동을 결정하는 방식
- 퍼지 집합 : 입력 변수를 퍼지 멤버십 함수로 정의
- 퍼지 규칙 : if - then 형태로 조건과 행동을 지정
- 퍼지 추론 : 여러 규칙 평가 후 출력을 계산 후 역퍼지로 결정
장점
- 상태 변화를 부드럽게 표현할 수 있어 행동 전환이 자연스럽습니다.
- 인간 의사결정 방식을 흉내 내기 쉽습니다.
단점
- 퍼지 함수와 규칙 설계가 복잡하고 튜닝이 매우 까다롭습니다.
- 계산 비용이 FSM보다 높고 구현 난이도가 올라갑니다.
- 상태 전이가 명확히 참/거짓으로 나누기 어려운 복잡한 상황에서 사용
- GOAP처럼 목표 지향적이지만, 상위 목표를 계층적으로 설계하여 계획하는 기법
- Task 인터페이스 : CanExecute(현재 상태), Execute(Action), Decompose(subtasks) 메서드 구현
- 계층적 분해 : 상위 Task가 수행 가능한지를 검사하고 가능하면 더 세부 Task로 분해해 내려갑니다.
장점
- 복잡한 전술 및 전략 레벨의 행동을 계층적으로 설계할 수 있어 대규모 게임에도 활용이 가능합니다.
단점
- 설계와 구현이 상당히 복잡하고 작은 규모 프로젝트에는 과도할 수 있습니다.
- 분해 로직, 상태 관리, 실패 처리 등을 모두 직접 구현해야 합니다.
- 배경 NPC 순찰, 비전투 상태 NPC 등등 간단한 환경 연출용 이동이 필요한 경우
- 미리 지정하거나 동적으로 생성된 여러 웨이포인트 중 하나를 랜덤으로 골라 이동하거나 순차적으로 순찰하는 방식
- Waypoint 배열을 지정 -> 매번 끝점에 도착하면 다음 포인트를 무작위로 선택합니다.
- 반복되도록 설정해 NPC가 유유자적 돌아다니는 패턴을 구현합니다.
장점
- 구현이 매우 간단하고 가벼워서 배경 NPC나 순찰 캐릭터에 적합합니다.
- 패턴 예측이 어렵고 자연스러운 움직임을 연출할 수 있습니다.
단점
- 복잡한 의사결정 및 적응형 행동이 필요할 때는 한계가 있습니다.
- 단순 순찰 외에 추가 행동 로직을 결합해야 하면 별도 코드가 필요합니다.
- NPC가 때때로 무작위 행동을 보여야 하는 경우 (배경 NPC, 가벼운 적 AI)