AI 캐릭터의 전략적 이동

AI Game Programming Wisdom [Steve Rabin, 2002, AI Game Programming Wisdom] 책에 나온 5.1섹션의 내용을 인용해 보고자 한다. 개념을 설명하는 부분과 개인적인 의견을 표현하는 부분으로 나누고, 의견 부분은 Italic체로 표현하였다.  그 섹션의 원제는 ‘Strategic and Tactical Reasoning with WayPoints’ (Lars Liden, page 210-220)로 번역하면, 지점에 대한 전략과 전술적 판단이라고 할 수 있다.

AI 캐릭터가 타겟으로 잡은 적을 공격하기 위해 안전한 지점을 찾는 과정은 기억해 둘 만하다.  책의 Figure 5.1.2에 보면 그림이 아주 흥미롭게 잘 그려져 있다.

<Figure 5.1.2, page 214, AI Game Programming Wisdom>

타겟의 시야에 있는 지점(이하 노드)들은 타겟에게 노출되어 있는 노드들로서 회색으로 표시되어 있다.  AI 캐릭터가 도망치려면 타겟과 적의 시야에 없는 노드로 가면 된다.  하지만 AI 캐릭터가 타겟을 공격할 전략적 위치를 찾아야 한다면 현재의 위치는 다른 적에게도 노출이 되어 있어 적합하지 않다.  

<Figure 5.1.2, page 214, AI Game Programming Wisdom>

2번 그림은 다른 적의 시야에 들어있는 노드들을 회색으로 표시하여 보여주고 있다.  이 노드들을 피하고, 타겟과 마주할 수 있는 노드가 적절한 공격 지점이 될 수 있다.  책에서는 inverse라는 수학적 표현으로 회색 노드들이 아닌 노드들을 표현하고 있다.  즉, 2번 그림에서의 흰색 노드들과 1번 그림에서의 회색 노드들과 겹치는 노드가 타겟을 공격할 수 있는 노드로 판단 할 수 있다.

<Figure 5.1.2, page 214, AI Game Programming Wisdom>

3번 그림에서 보여주는 회색 노드가 그 지점이다.  여기에 더하여 공격 지점에서 은폐/엄폐 가능한 노드는 현재 노드에서 가깝고 적의 시야에 들지 않는 노드로 찾을 수 있는 데, 그림에서 녹색 노드로 볼 수 있다.

이 섹션에서 두번째로 설명하고 있는 개념은 고정 노드 분석이다.  노드의 노출도를 계산하여 저격이 가능한 지점을 판단하는 것으로, 가장 노출이 많이 된 노드와 가장 노출이 적은 노드의 조합을 찾는 것이다.  노출의 계산은 시야에 들어올 수 있는 노드의 개수로 판단한다.  Figure 5.1.3을 보면 미리 노출도가 계산된 노드들을 볼 수 있다.

<Figure 5.1.3, page 216, AI Game Programming Wisdom>

파란색 화살표는 두개의 노출도를 가진 노드를 표현한 것이고, 녹색 화살표는 10개의 노출도를 가진 노드를 표현한 것이다.  그래서 책에서는 10과 2의 조합이 가장 적합한 스나이퍼 포지션으로 나타내고 있다.

이 고정 노드 분석법은 노드의 위치를 어디에 두느냐에 따라 판단의 기준이 달라질 수 있을 것 같다.  인접한 노드라는 기준도 노드 사이의 거리가 어느 정도 까지 허용되는 지도 게임과 맵의 형태에 따라 달라 질 수 있기 때문에 이 부분은 여러 보완 요소가 필요한 것으로 보인다.  책에서도 레벨 디자이너의 역할을 강조 하고 있으며, 자동화된 노드 세팅에 대해서도 언급하고 있다.

이 섹션에서 세번째로 설명하고 있는 개념은 핀치 포인트와 스쿼드 전략인데 위의 두 개념과 비교하면 좀 어렵다.

방과 거실의 구조와 같은 좁은 지역과 넓은 지역 사이에서 적절한 노드에 AI 캐릭터가 위치하여, 좁은 지역에서 나오는 적들을 공격할 수 있는 노드를 판단하는 개념이다.  책에서 설명하는 알고리즘은 다음과 같다. 

오직 두개의 이웃을 가진 노드 N을 찾는다.
N을 임시로 제외하고 인접한 두개의 이웃을 A와 B로 부른다.
A와 B가 둘다 넓은 지역에 연결되어 있다면 N은 핀치 포인트가 아니므로 다른 N을 찾는다.
A와 B 사이에 경로가 존재하면, N이 핀치 포인트가 아니므로 다른 N을 찾는다.
A와 B중 넓은 지역으로 연결되는 노드를 O라고 부른다.
A와 B중 좁은 지역으로 연결되는 노드를 I라고 부른다. 
<Figure 5.1.4, page 217, AI Game Programming Wisdom>

이제 이렇게 O와 I와 N노드를 찾았다면, 습격이 가능한 노드는 N노드 시야에서 보이지 않고, O노드의 시야에 있는 노드로 선택 할 수 있다.  그 노드는 위의 그림에서 회색 노드로 표현된다.  

이해가 잘 안되던 부분은 넓은 지역과 좁은 지역의 판단을 어떻게 할 수 있는가 하는 것이었다.  예를 들어, 두번째 개념을 가져와서 I노드의 노출도와 O노드의 노출도를 계산하여, 노출이 어느 정도 되어 있는지는 판단할 수 있으나 좁은 방에서도 노드가 많을 수도 있고 넓은 지역이지만 노드의 개수가 적을 수도 있기 때문에 판단의 기준이 애매할 수 있어 보였다.  그리고 방과 거실이 같은 크기라면 I와 O노드의 판단이 안되는 문제도 존재하였다.  이 부분 역시 노드의 배치가 AI 캐릭터의 전략적 위치를 판단하는 데 중요한 역할을 하기 때문에, 배치에 관한 연구가 같이 필요할 것으로 보인다.

Figure 5.1.4에서 다른 맵의 형태에 대해서 좀 더 깊은 내용이 있으나 여기에서는 스킵하겠다.  책에서 나머지 내용을 참고하면 좋을 것 같다.


Leave a Reply

Your email address will not be published. Required fields are marked *