게임 규칙의 헛점을 최대한 악용(활용)하는 AI
By SeukWon Kang
설명: 여러개의 월드를 지원하는 요약 페이지
설명: 하나의 월드의 자세한 상태를 보여주는 페이지
게임의 규칙을 악용하는 것은 사람만 할 수 있는 것은 아닙니다.
go4game처럼 단순한 규칙의 게임에서도 룰의 헛점을 찾아내서 그것을 활용하는 것이 가능합니다.
AI를 만들다 보니 몇가지 고민스러운 것이 생겼는데 그 중 하나는 AI의 강함의 정도를 어떻게 정량화 할 것인가 하는 점입니다. 얼핏 생각하면 하나의 월드에 두개의 AI를 넣고 일정 시간후 승점(격추수) 가 높은 쪽이 강한 것이 아닌 가 생각 되지만 테스트를 하다보면 1:1 에 강한 AI 도 있고 , 다대 다 에 강한 AI 도 있으며 서로 상성이 있는 AI 가 있는 경우도 있습니다. A > B > C > A 같은 경우지요. 두종의 AI 여러개를 하나에 월드에 넣었을때 약해지는 경우도 있습니다. ( 즉 자기와 동종 AI 가 있으면 취약해지는 AI ) 게다가 이 상성 + 동종 취약점이 있는 경우 다수의 AI 여럿 ( 즉 동종 도 있는 경우 )을 하나의 월드에 넣고 테스트 하면 그야 말로 매번 다른 경우가 나오기도 합니다. 특히나 상성이 한쪽 방향 ( 즉 특정 AI에만 강점을 보이는 경우 )를 향할 때는 보통 약하던 AI가 ( 상성 AI 덕분에 )갑자기 승률이 올라 가기도 합니다.
설명: 최신 버전의 4종 32팀AI 가 3차원 에서 대전중인 동영상.
그리고 제목의 이야기 . AI가 게임 규칙의 헛점을 악용한다니 그런 SF같은 이야기는 아닙니다. ( 자율 학습 형의 AI면 가능 할지도 모르겠지만 ) 일단 AI도 사람이 만드는 거니 프로그래머가 찾아낸 헛점을 AI에 반영하는 이야기지요.
go4game은 client action으로 5가지를 할수있는데 이번에 찾아낸 헛점은 homming bullet의 활용도를 높여주는 것입니다.
원래 homming은 느린 속도로 목표를 꾸준히(60초간) 추적하면서 적을 압박하는 용도로 쓰라고 만든 것입니다. 일반 bullet으로는 맞춰도 없애지 못하니 superbullet, hommingbullet 또는 shield로 막거나 60초간 계속 도망 다녀야 하는 것이지요. 목표한 적이 죽으면 ( 꼭 homming이 잡을 필요가 없고) homming도 같이 사라집니다. 적을 노리면 중간에 요격 되거나 적이 죽어 버리면 효용 가치가 떨어지지요. 즉 60초의 수명을 다 사용하지 못하는 경우가 더 많습니다. 게다가 같은 적을 다른 적이 노려서 여러개의 homming이 하나의 목표를 추적하면 적을 잡기 전에 homming 끼리 부딪혀 없어지는 겨우도 많습니다. 그런데 룰상 목표를 꼭 적으로 설정할 필요가 없다는 것을 알았습니다.
즉 일종의 꼼수로 homming의 목표를 자신으로 설정하면
1. 룰상 같은 편끼리는 부딪치지 않습니다.
2. homming은 관성 비행을 합니다.
의 효과로 자신의 주변을 천천히 순회하는 일종의 방어막으로 작동하게 할 수 있습니다.
게다가 고속 관통용으로 사용하는 super bullet보다 ap도 적게 드니 이렇게 만들어진 homming은 아주 훌륭한 shield 역할을 하게 되더군요.
그래서 만들어진 AI가 AICloud입니다.
이 AI는 아무것도 하지 않고 모든 AP를 자신을 타겟으로 하는 homming을 발사하는 데만 사용합니다. ( + 무작위 이동 )
그렇게 만들고 테스트를 돌려보니 난리가 났습니다.
그동안 만든 모든 AI가 이 아주 단순한 알고리즘의 AICloud를 이기지를 못합니다.
main object 주변에 무수히 돌아 다니는 homming의 모습은 어떻게 보면 구름 같기도 해서 cloud라고 이름 짓기는 했습니다만 행동은 완벽한 슬라임입니다. 천천히 무작위로 이동하면서 주변에 있는 모든것을 집어 삼키더군요.
이 homming의 구름은 일반 bullet으로는 영향을 주지 못하고 최소 같은 homming이나 AP가 비싼 super bullet으로만 공격할수 있는데 없애는 속도보다 생기는 속도가 더 빠릅니다.
물론 동종 AI끼리상성은 최악 입니다. 이 경우 어부지리로 다른 AI의 승률이 올라 갑니다.
설명: 2d 모드 에서 만들어진 슬라임 몬스터; 2d 모드(y축클리어로 가시성을 올린모드)
그래서 결론은 homming을 너프 시켰습니다. ^^;;; ( 좋게 말하면 밸런스 조정 )
크기를 줄이고 AP를 올리고 super 의 ap를 줄이는 과정을 거쳤습니다.
그 결과가 위의 그림/동영상입니다.
조정하긴했지만 상당히 유효한 전략이라고 생각해서 AI3와 AIRandom에도 적용을 했습니다. (AP가 남고 딱히 할일이 없으면 방어용 homming 발사 )
그러고 나니 이젠 super bullet의 악용 가능성이 눈에 띄기 시작 하더군요.
어떻게 써먹어 볼까 고민 중입니다.