게임 프로그래머의 만담, 게임코디 2nd
0 투표
3.7k views 만담 (8p)
재 태그 , 3.7k views
분명 게임프로그래머들 기획자들도 간단한 AI가아니라 딥러닝식의 AI 혹은 좀 복잡한 AI를 배우거나 공부한사람이있을텐데

왜 게임들은 대부분 AI가 단순한것밖에없을가요?

예를들어 npc는 단순하게 판매 구매 혹은그자리에 고정되거나 그저 그냥 단순한 상호작용일뿐이고

gta같은 게임도 ai가 그렇게 좋진않고요 물론 게임이오래됬지만요

그나마 크킹같은식의 AI에 특성 트레잇들로 매커니즘을 다양하게 해서 인물들의 개성을 좀 나타내고 알아서 생존하도록 하는게 그나마 제일 제가 본게임중에 나은AI인거같은데요

가상현실급을 원하는게아니라 그런 방향성을 가진 게임마저도 존재하지않는건지 아니면 제가 잘몰라서 그런건지 모르겠네요.

혹시 기술적으로 AI를 폭넓게 구현하면 과부하가 심해서 그런건지 그렇다면 따로 클라우드로 구성하면 되는게아닌건지

AI를 공부해보려고하는데 이부분이 궁금합니다.

 

정말 기술적인문제때문인지 다른 복합적인 개발사의 문제 혹은 구지 그렇게 할필요가없다고 생각되어 그런게임이 안만들어지는건지요.

그런데 그렇다고보기에는 자유도나 리얼리티를 추구하는 게임들도 이런 부분에서는 너무  떨어져서요.

 

그리고 AI에대해서 배우려면 독학하는방법밖에없을가요?

AI전문으로 게임에 적용하는 그런걸 배우는곳이나 그런건 없을가요?

만담에 대한 답글을 하려면 로그인 또는 가입해야합니다.

9 answers

–1 vote
우수 답변
음...

제가 AI를 만들었을때 저도 같은 고민을 했었는데요.
 
글쓴이 분은 AI 객체의 Behavior 선택에 있어서의 방법론적인 부분을 원하시는거죠?

 

구글링을 깊고 많이 해보셔야 할거예요.

한국에서는 좋은 레퍼런스를 찾기는 힘들었고요,

해외 서적을 통해서 많이 배웠고요,

AI Game Programming Wisdom 시리즈에 좋은 내용들이 많이나와요. 한번 참고해보시는게 좋을 것 같고요.

최근에는 다양한 AI 기법(ML 등)을 이용에서 현업에서 사용한다고는 하는데,

 

제가 한국 게임업계는 떠나있어서 잘 모르겠습니다만,

제가 몇년 전까지 경함한 바로는

한국 게임업계의 몬스터 AI기술은 발전하기 힘들어보입니다.

특히 부분유료화 체제에서는 ....

먄약 게임의 기획 방향이 몬스터 AI가 게임의 재미에 절대적으로 영향을 행사하고,

그 것으로 인해 많은 수익이 발생된다면 모를까....

 

해외게임들 중 패키지로 판매하는 게임들의 경우,

몬스터 들의 AI 행동 패턴들이 게임의 재미를 상당부분 차지하는 경우에는

많은 기획자, 엔지니어들이 투입되서 개발을 진행할 테구요,

저희 스튜디오 경우, 게임 플레이가 게임의 퀄리티에 가장 큰 부분을 차지하는 터라,

AI 를 전문으로 하시는 프로그래머들이 많은 반면,

한국에서는 최소한의 인력으로 몬스터 AI를 제작하기 때문이 아닐까 싶네요.

한국에 전문 몬스터AI 하는 분이 있을까 싶네요.

있어도 아주 극소수 일 거라고 추측됩니다.
답글 (207p)
선택됨
제가 궁금했던 부분을 정확히 집어주셧네요 감사합니다. 아무래도 역시 한국은 제대로된 게임AI에관한걸 배울곳이나 그런시스템이 없나보네요.  독학으로 찾아봐야되나보군요 답변감사합니다.
+4 투표
gta 도 그렇게까지 AI 자유도를 높이지 않은 이유는, 그렇게까지 할 필요성을 느끼지 못했었기 때문 아닐까요? 자원은 한정되어 있는거고, 어디에 자원을 투입해야 더 이로울지를 판단해보면, 굳이 그런 자유도 높은 AI 를 만들필요가 없지 않았나 싶습니다. 물론 개인적인 생각이구요.

그리고 높은 자유도는 게임성에 영향을 주기도 하고, 생각지 못한 변수가 많이 나타날 수 있으니 원하는대로 통제하려면 AI 에 제약을 둬야할거구요. gta 같은 경우 다양한 미션들이 있는데, 높은 자유도의 AI 들 때문에 그 미션이 방해를 받는다면 의도한대로 게임플레이가 되지 않으니 문제가 많이 발생하지 않을까 싶습니다.

게임 재미 측면에서도, 그러한 AI 시스템이 과연 어떤 재미요소를 줄 수 있을지도 고민해볼만한 일이 아닌가 싶습니다.

개인적으로는, 예측할 수 없는 행동패턴을 가진 AI 를 만들어 RPG 에 적용해보고 싶은 생각도 있습니다. 그렇게 만든다면, 정말 그 AI 의 다양한 행동에 대응할 게임전체의 어떤 기획적인 설계가 필요하지 않을까 싶네요.
답글 (777p)
+1 vote
완전한 답변이 될 수는 없겠지만, 들어볼 만한 얘기를 소개하고 싶네요.

 

답글 (211p)
+1 vote
이 문제에 대한 정석적인 답변은

컴퓨터 성능 자원을 할당할 때 그래픽이 1순위고 AI가 최하순위라서 그렇습니다.

 

그래픽을 MUD로 가져간 AI 최우선 게임들도 존재합니다.
답글 (26.5kp)
역시 기본은 우선순위문제군요 혹시 AI최우선인 게임 체험해보고싶은데 그런게임을 알려주시면 감사하겠습니다
AI 최우선이라면 시뮬레이션 장르를 보시는게 어떨까요? 그리고 여기 게임코디 보다 외국 논문이나 관련 커뮤니티를 뒤져보는게 빠를 것 같긴 합니다.
울티마 같은 것들도 있죠 무언가  월드에서 행동들에 대한 변화가 왠만한 것들은 다 존재하죠
예를들면 8편에서 전투 중 죽은 시체를 큰 배낭에 넣고 다닐 수 있는데 시체를 어디에 버리냐에 따라 달라지는데 물가였던가 어딘가에 버리면 악어가 올아와서 시체 먹기도 하는데 먹게 되면 그 후에 시간 흐르면서 마을 경비병이 하나씩 없어진다고 하죠
0 투표
절차적 애니메이션 찾아보세요
답글 (1.1kp)
감사합니다
+1 vote
고도화된 NPC의 행동 패턴을 위해서 말씀하신게 머신러닝이라면 BehaviorTree 기반 의사결정 그래프 를 만든 뒤 최소 의미 있는 결과가 나오기 위한 정규 데이터를 위해 10억번 이상 돌려보고 의미 있는 데이터를 구축 한 뒤 실시간으로 각 NPC 들이 그 의사결정 그래프를 타야 하는데 기본 AAA급 게임에서 최소 동시대 일반 그래픽 카드 기준 초당 30번을 무조건 그려야 하는 게임 특성상 실제 적용하기가 아직은 어렵나 봅니다.
답글 (185p)
+3 투표
일단 딥러닝이 모든 부분에서 다 좋은 결과가 나오지 않는걸 아셔야 할거 같고 실제 많은 게임을 딥러닝 시켜본 연구 중 어떤 게임들은 게임 파악도 못한 경우의 결과들도 있습니다
그리고 딥러닝 방식은 개발하는데 인력도 인력인데 어마어마한 컴퓨팅 파워와 시간이 필요하고 결정적으로 결과가 어떻게 나올지 모르기 때문에 리스크가 있죠
그리고 한 게임에서 인공지능 데이터를 만들었다고 그걸 다른 게임에서 그대로 적용 하면서 재활용하기도 힘든 부분이 있고요
뭐 fps 같은 단순 슈팅 게임 같은것에서야 딥러닝 아닌 설계 방식으로도 이미 20년전에 프로가 못 이기는 급 ai 만들 수야 있었지만 위에 말하는 ai가 어떤 동작들의 최적화로 하는걸 말하는게 아닐테니 결국 게임과 컨텐츠와 구조에 맞게 동작하는 ai를 생각해야하니 그대로 적용하기도 힘들죠

그리고 윗분들도 말씀하셨지만 가상현실 재현이 아닌 게임이기 때문에 게임 컨텐츠 자체가 그런 인공지능이 핵심인 게임이 아니고서야 만들어야 하는 것들도 많고 계속 추가 해줘야하는 상황에서 필요 이상으로 ai 작업 할 상황이 안되죠
차라리 컨텐츠 하나라도 더 넣는게 실질적으로 유저들에게 어필이 되니까요
실제 개발 시간이 부족해서 테스팅 기간 충분히 못 가져서 버그 많이 가지고 출시하는 게임들이 많은것만 생각해도 알 수 있죠
만드려던 것들도 못 만들고 테스트도 제대로 못하고 나오는데 ai에 필요 이상으로 작업하는걸 기대하기는 힘들죠
그리고 장르적으로 그게 그렇게 필요한 장르는 심즈 같은 시뮬레이션 게임에서 필요성이 높아지지 다른 장르들은 장르에 따라 떨어지고 심즈조차 어느 필요한 선까지만 만들고 부가 컨텐츠 만드는데 주력하고 있죠 그게 더 팔리니까요

그리고 게임 종류에 따라 레벨 디자인과 게임 플래이 유도를 해야하는 게임들도 많은데요
심지어 플래이어에게 보여주는 것하고 실제 뒤에서는 뜸금 버프를 주거나 무적을 줘서 아슬아슬하게 살아남는것처럼 연출하거나 등의 작업들도 많은데 그런 설계에서 AI도 결국 설계 된 범위 안에서의 행동을 하게 만들 수 밖에 없는 경우도 많죠
답글 (681p)
수정됨
+4 투표

너무 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가 아닐지..

 

결론 : 박사학위 두개정도 따면 뭔가 보이지 않을까요?

답글 (350p)
여러 게임에서의 인공지능 사례들을 알려주셔서 감사합니다.
+1 vote
http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788955508536

게임 장르에 따라 다르지만 AI가 너무 똑똑하면 게이머가 피곤하거나 재미가 없거든요
답글 (877p) 1 신고

게임 프로그래머의 만담 커뮤니티, 게임코디 입니다

온종일 코드와 씨름하는 우리들의 외로움을 삭이고자 합니다