1291.25 게임 인공지능에서의 행동 제어 기법 발전
1. 게임 인공지능과 행동 제어의 관계
게임 인공지능(Game AI)은 비플레이어 캐릭터(Non-Player Character, NPC)의 자율적 의사 결정과 행동 생성을 다루는 분야이다. 게임 AI에서 행동 제어(behavior control)란, NPC가 게임 환경의 상태를 인식하고, 사전 정의된 규칙 또는 학습된 정책에 기반하여 적절한 행동을 선택·실행하는 과정 전반을 지칭한다.
게임 AI의 행동 제어 기법은 로봇공학의 행동 계획(behavior planning)과 공통된 이론적 기반을 공유한다. 양 분야 모두 에이전트가 동적 환경에서 목표 지향적 행동을 수행하여야 하며, 환경 변화에 대한 반응성(reactivity), 복수 행동의 동시 관리, 행동 모듈의 재사용성이 핵심 설계 요구사항이다. 특히, 행동 트리(Behavior Tree)는 게임 산업에서 독립적으로 발전한 후 로봇공학으로 이전된 대표적 사례로서, 게임 AI의 행동 제어 기법 발전사를 이해하는 것은 로봇공학에서 행동 트리 도입의 역사적·기술적 맥락을 파악하는 데 필수적이다.
2. 초기 게임 AI의 행동 제어 기법
2.1 하드코딩된 조건 분기
1970년대에서 1980년대 초기 비디오 게임의 NPC 행동은 조건문(if-else)의 중첩 구조로 직접 구현되었다. Pac-Man(1980)의 유령(ghost) 에이전트가 대표적 사례로서, 각 유령은 고유한 추적 전략을 하드코딩된 조건 분기로 구현하였다. 이 방식은 소수의 행동 규칙으로 충분한 초기 게임에 적합하였으나, NPC 행동의 복잡도가 증가함에 따라 조건문의 중첩 깊이가 급증하여 유지보수와 디버깅이 사실상 불가능해지는 한계를 노출하였다.
2.2 스크립팅(Scripting) 기반 행동 정의
1990년대 초반, 게임 엔진과 행동 논리의 분리를 위하여 스크립팅 언어(scripting language)를 활용한 행동 정의 방식이 도입되었다. Doom(1993)과 Quake(1996) 시리즈에서 NPC의 행동 패턴을 외부 스크립트 파일로 정의하여, 프로그래머가 아닌 게임 디자이너도 행동 수정이 가능하도록 하였다. 그러나 스크립팅 방식은 행동 논리의 구조화를 강제하지 않으므로, 스크립트 규모가 증가하면 하드코딩과 동일한 복잡도 문제에 직면하게 된다.
3. 유한 상태 머신의 게임 AI 적용
3.1 FSM의 게임 AI 도입 배경
유한 상태 머신(Finite State Machine, FSM)은 NPC 행동 제어에 구조적 프레임워크를 제공하는 최초의 형식적(formal) 기법으로서, 1990년대 중반부터 게임 AI의 표준적 행동 제어 기법으로 광범위하게 채택되었다. FSM은 NPC의 가능한 행동 상태(예: 순찰, 추적, 공격, 도주)를 명시적으로 정의하고, 환경 조건에 의한 상태 간 전이 규칙을 체계화함으로써, 하드코딩 방식 대비 현저히 개선된 가독성과 설계 명료성을 제공하였다.
Half-Life(1998)는 FSM 기반 NPC 행동 제어의 산업적 성공 사례로 빈번히 인용된다. 이 게임에서 적 NPC는 순찰(Patrol), 경계(Alert), 탐색(Search), 전투(Combat), 후퇴(Retreat) 등의 상태를 보유하며, 플레이어의 가시성, 청각 자극, 체력 수준 등에 기반한 전이 조건이 상대적으로 직관적인 행동 패턴을 생성하였다.
3.2 FSM 기반 게임 AI의 한계 노출
2000년대 이후 게임의 복잡도가 급증하면서, FSM 기반 행동 제어의 구조적 한계가 명확히 드러나기 시작하였다. 주요 한계는 다음과 같다.
상태 폭발과 전이 복잡도 증가. NPC의 행동 요구사항이 정교화됨에 따라 상태의 수가 급격히 증가하였고, 상태 간 전이 규칙의 수가 상태 수의 제곱에 비례하여 증가함으로써, 대규모 FSM의 설계·검증·수정이 극도로 어려워졌다.
모듈성과 재사용성의 결여. 하나의 NPC에 대하여 설계된 FSM의 특정 행동 패턴을 다른 NPC에 재사용하기 위해서는 상태와 전이의 부분적 추출이 필요하나, FSM의 상태 간 밀결합(tight coupling)으로 인하여 개별 행동의 독립적 추출이 어렵다.
반응성의 구조적 부족. FSM에서 긴급 상황(예: 피격, 함정 감지)에 대한 즉각적 반응을 구현하기 위해서는, 모든 상태에서 긴급 상태로의 전이를 일일이 정의하여야 한다. 상태 수가 n이면 n개의 추가 전이가 필요하며, 긴급 상황 유형이 k가지이면 n \times k개의 추가 전이가 필요하다.
4. 계층적 유한 상태 머신과 그 한계
4.1 HFSM의 도입
FSM의 상태 폭발 문제를 완화하기 위하여 계층적 유한 상태 머신(Hierarchical Finite State Machine, HFSM)이 게임 AI에 도입되었다. HFSM은 하나의 상태 내부에 하위 FSM을 내포하는 구조로서, Harel(1987)이 제안한 Statecharts의 영향을 받은 기법이다. Unreal Tournament(1999)과 F.E.A.R.(2005)의 NPC 행동 제어에서 계층적 상태 구조가 활용되었다.
4.2 HFSM의 잔존 한계
HFSM은 상태의 계층적 그룹화를 통하여 국소적 복잡도를 감소시키나, 상태 간 전이가 계층을 관통(cross-hierarchy transition)할 경우 계층 구조의 캡슐화가 깨지며, 계층 깊이가 증가할수록 전이 경로의 추적이 어려워진다. 또한 병행 행동의 표현을 위해서는 직교 영역(orthogonal region)의 도입이 필요하며, 이는 동기화 복잡도를 추가적으로 발생시킨다.
5. 규칙 기반 시스템과 유틸리티 시스템
5.1 규칙 기반 시스템
규칙 기반 시스템(Rule-Based System)은 조건-행동 쌍(condition-action pair)의 집합으로 NPC 행동을 정의하는 기법이다. 각 규칙은 “만약 [조건]이면 [행동]을 수행하라“의 형식을 따르며, 규칙 엔진(rule engine)이 현재 환경 상태에 부합하는 규칙을 평가하여 행동을 선택한다. 규칙 기반 시스템은 FSM 대비 상태의 명시적 열거가 불필요하나, 규칙 간 충돌 해소(conflict resolution)와 규칙 수 증가에 따른 평가 성능 저하가 한계이다.
5.2 유틸리티 시스템
유틸리티 시스템(Utility System)은 가능한 행동 각각에 효용 점수(utility score)를 부여하고, 최고 점수의 행동을 선택하는 의사 결정 기법이다. The Sims(2000)에서 활용된 이 방식은 NPC의 욕구(need)와 환경 자극에 기반한 연속적 효용 함수를 통하여 자연스러운 행동 전환을 달성한다. 유틸리티 시스템은 이산 상태 전이의 경직성을 완화하며, 복수의 경쟁 행동 간 우선순위를 수치적으로 결정할 수 있으나, 효용 함수의 설계와 튜닝에 상당한 노력이 요구되며, 행동 선택의 결정론적 예측이 어렵다는 한계를 가진다.
6. 목표 지향 행동 계획
6.1 GOAP의 도입
목표 지향 행동 계획(Goal-Oriented Action Planning, GOAP)은 Orkin(2003, 2006)에 의하여 제안되었으며, F.E.A.R.(2005)에서 최초로 상용 게임에 적용되었다. GOAP은 NPC의 목표(goal)와 사용 가능한 행동(action)의 전제 조건(precondition) 및 효과(effect)를 정의하고, 현재 세계 상태에서 목표 상태에 도달하는 행동 시퀀스를 실시간 탐색(planning)을 통하여 자동 생성한다.
GOAP은 디자이너가 개별 행동과 목표만 정의하면 행동 시퀀스가 자동으로 결정되므로, FSM의 수동 전이 정의에 비하여 설계 부담이 대폭 감소한다. 또한 새로운 행동의 추가가 기존 구조에 미치는 영향이 국소적이므로 확장성이 우수하다.
6.2 GOAP의 한계
GOAP은 계획 탐색의 계산 비용이 높으며, 세계 상태의 표현과 행동 효과의 정확한 형식화가 전제되어야 한다. 실시간 제약이 엄격한 게임에서 계획 수립 시간이 프레임 예산(frame budget)을 초과할 위험이 있으며, 환경의 비결정성(non-determinism)과 부분 관측성(partial observability)에 대한 처리가 제한적이다.
7. 행동 트리의 게임 AI 도입
7.1 행동 트리의 등장 배경
행동 트리(Behavior Tree, BT)는 2000년대 초반 게임 산업에서 FSM과 GOAP의 한계를 절충하는 행동 제어 기법으로 등장하였다. BT는 FSM의 명시적 설계 명료성과 GOAP의 모듈적 행동 구성을 결합하되, 계획 탐색의 계산 비용 없이 반응적 행동 제어를 실현하고자 하는 설계 목표에서 출발하였다.
Isla(2005)는 Bungie Studios에서 Halo 2(2004)의 개발 과정에서 기존 FSM 기반 NPC 행동 제어의 유지보수 어려움을 경험하고, 트리 기반의 행동 제어 구조를 고안하였다. 이 구조가 후속작 Halo 3(2007)에서 본격적으로 도입됨으로써 행동 트리의 산업적 실용성이 입증되었다.
7.2 행동 트리의 산업적 확산
Halo 시리즈 이후, BT는 게임 산업 전반으로 급속히 확산되었다. Epic Games의 Unreal Engine은 BT를 내장 AI 시스템으로 채택하였고, Unity 엔진에서도 다수의 BT 플러그인이 제공되었다. Crysis(2007), BioShock(2007), Grand Theft Auto V(2013) 등 대형 타이틀에서 BT 기반 NPC 행동 제어가 채택됨으로써, BT는 2010년대에 이르러 게임 AI의 사실상 표준(de facto standard) 행동 제어 기법으로 자리잡았다.
7.3 행동 트리가 게임 AI에서 지배적 기법이 된 요인
BT가 게임 AI에서 지배적 기법으로 채택된 주요 요인은 다음과 같다.
첫째, **디자이너 친화성(designer-friendliness)**이다. BT의 트리 구조는 시각적 편집 도구(visual editor)와의 친화성이 높아, 프로그래밍 숙련도가 낮은 게임 디자이너도 행동 논리를 직관적으로 설계·수정할 수 있다.
둘째, **점진적 개발 용이성(incremental development)**이다. 새로운 행동은 기존 트리에 서브트리 또는 노드를 추가하는 방식으로 통합되므로, 기존 행동에 미치는 영향이 국소적이며 점진적 기능 확장이 용이하다.
셋째, **디버깅 투명성(debugging transparency)**이다. BT의 탐색 경로가 루트에서 리프로 정해진 순서를 따르므로, 특정 시점에서 NPC가 특정 행동을 선택한 이유를 트리 탐색 경로를 역추적하여 명확히 파악할 수 있다.
8. 게임 AI에서 로봇공학으로의 기술 이전
게임 AI에서 성숙한 BT 기법은 2010년대에 로봇공학 분야로 이전되었다. Marzinotto 등(2014)은 BT를 로봇 매니퓰레이션 작업에 적용하는 연구를 발표하였고, Colledanchise와 Ögren(2018)은 BT의 형식적 분석과 로봇공학 적용을 체계화한 학술 서적을 출판하였다. 게임 환경과 로봇 환경의 유사성—동적 환경에서의 에이전트 의사 결정, 실시간 반응성 요구, 행동 모듈의 재사용 필요성—이 기술 이전의 이론적 근거를 형성하였으며, BT의 형식적 구조가 안전성 검증과 형식적 분석을 가능하게 함으로써 안전 임계(safety-critical) 로봇 시스템에의 적용 가능성이 확보되었다.
9. 참고 문헌
- Millington, I., & Funge, J. (2009). Artificial Intelligence for Games (2nd ed.). Morgan Kaufmann.
- Orkin, J. (2006). “Three States and a Plan: The A.I. of F.E.A.R.” Proceedings of the Game Developers Conference (GDC).
- Isla, D. (2005). “Handling Complexity in the Halo 2 AI.” Proceedings of the Game Developers Conference (GDC).
- Harel, D. (1987). “Statecharts: A Visual Formalism for Complex Systems.” Science of Computer Programming, 8(3), 231–274.
- Colledanchise, M., & Ögren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
- Marzinotto, A., Colledanchise, M., Smith, C., & Ögren, P. (2014). “Towards a Unified Behavior Trees Framework for Robot Control.” Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), 5420–5427.
- Champandard, A. J. (2007). “Understanding Behavior Trees.” AiGameDev.com.
v0.2.0