조조전이나 파랜드 택틱스 시리즈 같은
타일 기반의 턴제 게임에서 적의 ai를 만드는 법을 공부하는 중입니다.
제가 생각한 알고리즘은 아래와 같습니다.
1.적이 갈 수 있는 각 타일로 이동했을때의 경우를 모두 생각한다.
2. 해당 타일에서 지금 당장 할 수 있는 행동 + 앞으로의 턴에서 예측되는 행동을 모두다 점검후 점수로 바꾼다.
3. 제일 높은 점수 특정 갯수의 행동중 점수가 높은순으로 확률을 정하여 임의의 행동을 선택한다.
가령 아래와 같은 방법으로 가장높은 3개의 점수가 만들어 젔을 경우
a. 탱커에게 3데미지(1*3) + 원딜에게 5데미지(3*5) + 각 영웅들과의 거리의 합이 약 20(20/3)=17
b. 서포터 에게 8데미지(4*8) + 적 영웅과의 거리 합이 약 14(12/3)=36
c. 10만큼 회복(3*10)+적 영웅과의 거리 약 9(9/3)=33
이럴경우 3개 경우의 합이 총 86 이므로
17/86 , 36/86 , 33/86 3개의 확률로 나누어서 임의의 행동을 취하게 합니다.
즉, 각 행동에 대해 제가 짜놓은 공식대로 점수를 합해 가서 제일 높은 점수의 행동을 하게 만드는 것인데요
공격, 방어, 지원 등 몬스터의 종류에 따라 공식의 종류 또한 다양회 시켜볼 예정입니다.
실력과 성능 문제만 해결된다면 당장의 해당턴 뿐만 아니라 수턴 이상의 상황에 대해서도 예견하고
근처 아군과의 상호 조합또한 가능한 식으로도 짜볼 예정인데
혹시 업계에서 공식이라고 불릴만한 다른 방법이 더 있는지 궁금하네요
다른 좋은 방법이 더 있을까요??