1. 서론

 이 글은 로아 모든 레이드 보스에 공통적으로 들어가는 알고리즘을 분석, 추측해보고자 한다.
결과(레이드 보스의 행동)을 통해 과정을 추측하는 것을 전제로 작성되기 때문에 실제의 프로그램과 다른 점이 있을 수 있다.

 우선 AI(인공지능)의 행동을 분석하기에 앞서 이것이 어떤 알고리즘을 통해 행동하는 지 간략하게 알아보자.
게임의 AI는 구현하는 방식에 따라 크게 상태 머신(State Machine), 비헤이비어 트리(Behavior Tree)로 나눌 수 있다.
물론 프로그램으로 AI를 구현하는데 있어 조건문과 함수, 변수의 나열인 하드코딩, 딥러닝과 같은 무거운 알고리즘이나 상태 머신을 세부적으로 나눈 스택 베이스 상태 머신 등의 방식도 있지만 알고리즘 자체를 전달하기 위한 글이 아니니 넘어간다.
 현재의 상용 게임 엔진은 크게 유니티 엔진, 언리얼 엔진이 있고 유니티 엔진은 상태 머신(정확히는 유한 상태머신)을, 언리얼 엔진은 비헤이비어 트리를 기본으로 제공한다. 따라서 언리얼 엔진으로 제작된 로아는 비헤이비어 트리가 사용되었다고 추측할 수도 있으나 언리얼 엔진에서 비헤이비어 트리를 기본으로 제공하기 시작한 버전은 언리얼 4부터이고 로아는 언리얼 3 버전으로 제작되었고 여러 버그(?)들을 토대로 당시 널리 쓰이던 방법인 상태 머신을 사용하였다고 가정한다.


2. 레이드 보스의 행동

 그래서 상태 머신은 무엇인가를 간략히 설명하면 독립적으로 계속 실행될 수 있는 형태의 일종이다.
상태(State)에 정의된 행동을 하다가 일정 조건을 만족하면 다른 상태를 변경 시키는 알고리즘이고 상태가 처음 시작할 때, 상태가 지속될 때, 상태가 끝날 때의 행동을 정해두고 이것들이 순환한다.
가장 간단한 예시로 전구가 있는데 스위치 on이라면 불이 켜지고 off라면 불이 꺼지는 상태끼리 돌고 도는 구조도 일종의 상태머신이고 일상에서 제일 많이 보는 상태머신은 자판기 일 것이다.

이를 레이드 보스에 대입하여 상태를 나눠보면
1) 기본 상태 : 끝없이 공격할 대상을 찾는 단계, 대상을 찾을 시 공격 상태로 전환

2) 공격 상태 : 상태 시작 시 랜덤 공격 기술을 설정
                   설정된 공격 범위 내에 플레이어가 있다면 공격 후 기본 상태, 없다면 추적 상태로 전환

3) 추적 상태 : 공격 상태의 기술 범위 안에 플레이어가 들어갈 때까지 이동, 회전
                   범위 내의 플레이어가 있다면 공격 상태, 일정 시간이 지나도 범위 안에 없다면 기본 상태로 전환

4) 무력화 상태 : 조건을 충족하였을 때 어느 상태에서도 진입, 보스가 일정 시간 동안 무력화
                      시간 경과 시 기본 상태로 전환

1~3까지의 단계가 무한히 회전하는 형태이다. 
여기서 조건에 따른 무력화와 보스가 사망하게 되면 중단되는 것은 모든 레이드 보스 공통 사항이고
이외의 상태와 상태가 전환 될 때의 시간, 이동 속도, 방향 전환 속도, 사용 기술이 보스별로 다르고 최근에 나온 레이드 보스일수록 조건에 따라 다음 상태를 변경하는 경우(흔히 말하는 패턴)가 많다.
조건의 예시로는 HP가 일정 이하로 내려갔을 때, 일정 시간이 지났을 때, 타겟 플레이어가 행동 하였을 때(프로켈 내부 한정), 공격이 히트 하였을 때 혹은 히트하지 않았을 경우 밖에 없다.
 이것들의 조합으로 모든 보스의 특수 패턴의 조건을 설명할 수 있다.


3. 결론

상태 머신의 기본적인 사이클에서 주목해야 할 점은 항상 기본 -> 공격 -> 추적 순으로 돌아간다는 사실이고 앞을 공격하는 기술의 경우 추적에서 타겟인 플레이어가 머리 바로 앞에 올 때까지 추적한다는 사실과 엮어서 생각해보면 이상적인 위치 선정이 가능하다.

 이상적인 사멸 파티는 1명의 헤드 어택 딜러(워로드, 디트), 서포터가 항상 보스의 앞에 서고 백어택 딜러 2명이 항상 뒤로 이동하는 것이다.
타겟이 된 플레이어는 본인이 추격 상태에서 공격 상태로 전환 되는 것을 확인하고 위치를 변경해야 하며 이동이 최소화 할 수록 좋다. 상태 전환을 확인하고 이동하는 이유는 추적 상태에서 방향 전환 속도가 느린 칼엘리고스, 하누마탄과 같은 경우 하루 종일 보스랑 강강술레를 즐기는 경우가 생길 수 있고 보스의 머리가 회전한다는 것 자체가 사멸 파티에게는 딜로스로 직결되기 때문이다. 서포터가 머리에 위치하는 이유 또한 마찬가지이다.
 타대 딜러만으로 조합된 파티라면 쉽다. 어디서든 버프를 줄 수 있는 홀나와 함께라면 4명이 편하게 흩어지면 된다. 
타겟이 된 사람은 항상 사람이 없는 방향으로 회전하면 되고 눈치껏 겹치지 않게 잘 돌기만 해도 이상적이다.
만일 타대와 사멸이 섞인 형태의 파티더라도 타대딜러는 서포터의 버프를 받을 수 있는 범위에서 퍼져있는 것이 좋을 것이다.

고정팟이 아니거나 보스, 파티원이 끝없이 이동해서 별 의미가 없는 경우도 있을 것이다.
하지만 이 글을 읽고 팀원을 위한 위치를 신경 쓴다면 분명 클리어 타임에 차이가 있을 것이고 늘어나고 반복적인 숙제를 아무 생각 없이 하는 것보다 이런 것도 생각해 보는 게 재미있지 않을까 싶다.

정 심심하면 타대 딜러가 일부러 사멸 딜러 방해 가능할지도 몰?루