너무 TMI라서 한참 쓰다가 지웠는데 많이들 관심을 가지셔서 다시 씁니다 ㅠㅜ
1. 엘더스크롤 오블리비언의 NPC는 24시간의 타임테이블을 가집니다.
해가뜨면 일을하는척하고 해가지면 집으로 들어가죠.
개발 초창기에는 직업을 정해주면 알아서 밭에서 일을하다가 알아서 들어오도록 만들었습니다.
그런데 밭일을 시키니까 삽이 없네요.
삽을 구하기 위해 다른 NPC를 죽였습니다.
개발자는 윤리AI를 만들어야 하는가를 고민했다지요.
2. 라스트오브어스 e3 공개 초창기에는 적 AI가 대단했으나 실제 게임에서는 멍청했는데 두가지 이야기가 있어요.
하나는 구현 안했다, 다른 하나는 플레이 테스트 해보니 너무 어려워서 너프했다인데 너티독은 후자라고 하긴 하는데...
초기 영상에서는 문짝이 날아간 방으로 들어가면 벽에 바짝 붙어있던 인간형 적이 조엘에게 잡기공격을 겁니다. 라오어를 해보았다면 치명적인 상황인데 실제 게임에서는 방에 들어갈때 저기 멀리서 멀뚱이 보다가 도망가는식으로 바뀌었죠.
뭐 어쨋든. 이런 AI를 구현하기 위한 여정이 gdc 발표자료에 있으니 관심있으시면 보시구요. 비헤이비어, 네비, 퍼셉션, 인바이러먼트 쿼리방식등 여러가지 도구를 구현한 부분들을 설명해주고 있습니다.
3. 유명한 이야긴데 GTA의 경찰차의 경우 최적 경로로 추적을 시키니 게임이 재미가 없었고 최악경로로 추적시키니 경찰이 여러방향에서 포위하는 모습이 연출되어 최악의 경로로 추적을 하도록 했다네요.
4. 가장 쉽게 만드는 switch-case 기반 AI의 경우 규모가 커지면 어떤 변수가 어떤 역활을 하게될지 알기가 힘듭니다. 여러 switch-case를 타서 어딘가에서 결정이 나게 되는데 변수값을 약간 손보면 아예 다른 트리로 가버린다던지.. case를 정의한 사람이 사라지면 블랙박스가 되기도 하죠.
5. switch-case가 요즘말하는 AI에 쓰이는 기법에 비하면 간단하다고 해도 그럭저럭 볼만한 축구 한 경기 모사하는데이터를 연산만 하는데도 생각보다 시간이 꽤 걸립니다.
6. 서든어택2의 경우... 사람이 등짝을 보자마자 쏘려고했지만 AI는 사람의 의사결정과정/속도를 뛰어넘어 SetRotation(-enemy.rotation); Fire(enemy.location); 이런 느낌으로 쏴버려서 비난을 좀 받았죠. 공학적으로는 '똑똑'한데 당연히 이러면 재미가 없으니까요.
7. 헤일로로 기억하는데 FPS 레벨디자이너가 다양한 방식의 난이도와 레벨을 조절해보았는데 에이밍, 기믹 보다는 체력이 더 높은데서 유저가 흥미를 느꼇다고 합니다.
8. 워크래프트같은 게임에서도 비슷한 사례인데 쩔어주는 컨 보다는 타운홀 업그레이드시 골드를 뽝 하고 줘버리니까 위화감이 들지 않으면서도 난이도가 올라갔다고 느꼈다고 합니다.
9. 문명같이 복잡한 턴제 게임의 경우 연산을 하는 시점에서 남들의 상태는 상수에 가깝습니다. 현재의 지도상 정보와 지도자간 내부적으로 설정된 몇가지 능력치에 의해 내 문명앞 국경선의 전사가 국경을 넘느냐 탐색을 가느냐가 결정되는데 후반부에 가면 턴 넘어가는데 한참 걸립니다. 내부적인 능력치의 숫자는 그렇게 많지 않고 변수도 적지만, 지도가 넓으면 컨디션 체크가 배로 많아져 그렇겠지요. 대신 좀 더 그럴듯한 캐릭터 묘사가 가능해지는거죠.
게임 AI 난이도에 대한 예시들을 이야기 해보았으니 이제 이상적인 게임을 만들었다고 가정해보죠.
오픈월드 규모이고 턴제와 달리 실시간으로 상호작용하며 개개의 객체가 가진 변수의 가지수가 많다면 고려할 값들이 말도안되게 많지 않을까요? 가령, 내일 출근하기 싫은데 전화해서 아프다고 할지 안할지를 시뮬레이션 한다면? 지금의 게임들 처럼 타임테이블에 의해서 스태틱하게 움직이되 유저가 건들때만 상호작용을 하는식이 아닌, 즉 행동을 지정하는게 아니라 윤리의식, 직업의식 같은 값만 주어진 다음 월드를 시뮬레이션 하라고 한다면?
그걸 또 60프레임으로 도는 세계에서 어색하지 않게 돌리려면 계산이 아니라 조건 판정만으로도 말도안되는 연산이 필요하겠지요.
자, 이런 기술적 난제들을 뚫고 개발 해냈다고 했을때
이 게임이 재미 있을까요? 라는 질문에 도달하게 됩니다. 게임은 결국 놀아주는게 목적이지 현실을 시뮬레이션하려는건 아니니까요..
인생도 재미가 없는데 현실을 그대로 시뮬레이션한게 재밋을지..
음...인간적인 AI라... 구현 기술이야 공학이겠지만 결국 인간에 대한 이해겠죠? 가까이 하자면 심리학, 멀리가면 뇌과학, 뇌절하면 인문학? 결국 잡스가 말하는 인문학과 공학의 갈림길은 AI가 아닐지..
결론 : 박사학위 두개정도 따면 뭔가 보이지 않을까요?