게임 인공지능
게임 인공지능(Game Artificial Intelligence)은 비디오 게임에 등장하는 플레이어 이외의 캐릭터(NPC)나 적, 혹은 게임 내 시스템의 행동을 제어하기 위해 사용되는 알고리즘 및 기술의 총칭이다. 학술적인 의미의 인공지능(AI)과는 달리, 최적의 해를 찾는 것보다는 플레이어에게 재미있고 몰입감 있는 경험을 제공하는 것을 최우선 목표로 한다.
개요
게임 AI는 일반적인 소프트웨어 AI와는 다른 독특한 요구사항을 가진다. 학술적 AI나 산업용 AI가 '문제 해결'과 '최적화'에 초점이 맞춘다면, 게임 AI는 '엔터테인먼트'에 초점을 맞춘다.
- 의도된 불완전성: 너무 완벽한 AI는 플레이어에게 좌절감을 줄 수 있다. 따라서 적절한 수준의 실수나 반응 속도 지연 등을 인위적으로 구현하기도 한다.
- 실시간 처리: 게임은 초당 30~60프레임 이상으로 실행되어야 하므로, AI 연산에 너무 많은 자원을 할당할 수 없다. 따라서 가볍고 효율적인 알고리즘이 선호된다.
- 예측 가능성: 플레이어가 AI의 패턴을 파악하고 공략할 수 있도록 어느 정도의 일관성과 텔레그래프(행동 전조)가 필요하다.
주요 구현 기법
게임 AI는 다양한 기술들의 계층적 결합으로 이루어진다. 상세한 내용은 각 문서를 참고하라.
이동 (Movement)
캐릭터가 월드 내에서 물리적으로 움직이는 방식이다. 조향 행동(Steering Behaviors)이나 대형 유지 기술 등이 포함된다.
경로 탐색 (Pathfinding)
장애물을 피해 목적지까지의 최적 경로를 찾는 기술이다. A* 알고리즘과 네비게이션 메시(NavMesh)가 주로 쓰인다.
의사 결정 (Decision Making)
NPC가 현재 상황에서 무엇을 할지 판단하는 로직이다.
- 유한 상태 기계 (FSM): 상태와 전이를 정의하는 고전적 방식.
- 행동 트리 (Behavior Tree): 계층적 구조로 행동을 정의하는 현대적 표준.
- GOAP / 유틸리티 시스템: 상황에 따른 유연한 계획 수립 및 가중치 기반 선택 방식.
다수 에이전트 간의 협동, 전술적 지점 분석, RTS 게임의 자원 및 생산 관리 기술이다.
체스, 바둑 등에서 최적의 수를 찾는 알고리즘이다. 미니맥스(Minimax) 탐색과 몬테카를로 트리 탐색(MCTS)이 대표적이다.
환경 상호작용 (World Interfacing)
AI 에이전트가 게임 월드로부터 정보를 인식(Sensing)하고 행동을 반영하는 인터페이스 기술이다.
실행 관리 (Execution Management)
한정된 연산 자원 내에서 AI를 효율적으로 구동하기 위한 스케줄링 및 부하 분산 기술이다.
AI의 속임수 (Cheating)
게임의 긴장감을 높이거나 연산 자원을 아끼기 위해, 개발자는 AI에게 플레이어가 알지 못하는 정보를 제공하거나 능력치를 조작하기도 한다.
- 전지전능한 감각: 실제 시야나 청각 로직을 거치지 않고, 플레이어의 좌표를 직접 참조하여 추적한다.
- 자원 무한: RTS 게임 등에서 AI 플레이어는 자원 보너스를 받거나 자원을 무한정 가지고 시작하는 경우가 많다.
- 고무줄 AI (Rubber Banding): 레이싱 게임에서 플레이어와의 거리 차이를 강제로 조절하여 항상 접전이 벌어지도록 하는 기법이다.