글 수 57

메시지 기반의 인공지능

조회 수 137 추천 수 0 2016.03.19 23:36:48


대부분의 게임 인공지능에서 FSM과 함께 메시지 방식이 많이 사용됩니다. 메시지 방식이란 어떤 행동이나 사건이 발생하였을때 그 사실과 정보를 메시지에 담아 해당하는 객체에 전송하는 것을 말합니다. 윈도우에서 마우스를 눌렸을때 이벤트가 발생하여 각 응용프로그램에 보내지는 것과 비슷하다고 할 수 있습니다.

사실 메시지 방식이 꼭 인공지능에만 쓰이는 것은 아니고 게임안에서의 이벤트를 처리하는데 주로 사용됩니다. 예를 들어 주인공이 몬스터를 공격하여 10만큼의 데미지를 주었다고 했을때 어떻게 이런 정보를 처리할 수 있을까요.

 

 


첫번째 방법은 주인공의 처리 루틴에서 직접 몬스터의 데이터를 수정하는 것입니다. 몬스터의 객체를 가져와서 몬스터 체력변수를 10만큼 빼주고 만약 체력이 0이 되었을 경우 몬스터 객체를 삭제합니다.

언뜻 생각하면 직관적이긴 하지만 몬스터의 종류가 여러가지이고 각 종류마다 데미지 계산이나 처리 방법이 다르다고 하면 구현이 힘들어 집니다. 하나의 모듈에서 모든 처리를 다 해야되기 때문에 너무 복잡해질 수 있습니다.

두번째 방법은 공격을 했다는 ID값과 공격력 등의 정보를 메시지로 만들어서 몬스터 객체에게 전송을 한 다음 각 몬스터 객체마다 자신의 데미지 처리 방법에 따라 계산합니다. 이 방법이 구조도 깔끔하고 확장성도 좋습니다.



인공지능을 구현할때도 이러한 메시지 방법을 그대로 사용합니다. 몬스터가 공격을 할때도 공격 메시지를 주인공에게 보낼 수 있고, 체력이 떨어지면 주변 몬스터에게 도와달라는 메시지를 보낼 수도 있을 것입니다.

그리고 꼭 움직이는 객체만이 아니라 사물과 같은 객체에서도 메시지가 사용될 수 있습니다. 예를 들어 의자 객체가 주변 NPC들에게 자기에게 앉으라는 메시지를 주기적으로 보냅니다. 만약 우연히 그 옆을 지나가던 NPC가 이 메시지를 받았을때 자신의 내부 상태를 검사하여 피곤한 상태일 경우 의자에 앉아 휴식을 취하는 처리가 가능합니다.



메시지 방식에 대해서 간략하게 정리해 보았습니다. 좀 더 자세한 동작방식을 알고 싶으시면 아래 책들을 참고하시기 바랍니다.

- 실용적 예제로 본 게임인공지능, p.74
- DirectX를 이용하여 게임만들기, p.318

엮인글 :
List of Articles
제목 글쓴이 날짜 조회 수
블랙 앤 화이트의 인공지능 file 깊은바다 2016-03-24 473
스타크래프트 인공지능 토너먼트 깊은바다 2016-03-19 303
심즈2의 인공지능 file 깊은바다 2016-03-19 310
감성형 게임의 미래, 러브플러스와 동물의 숲 file 깊은바다 2016-03-19 165
가상세계의 소년 - 마일로 file 깊은바다 2016-03-19 83
MMORPG 게임의 오토봇을 판단하는 기술 file 깊은바다 2016-03-19 219
컴퓨터 게임과 AI file 깊은바다 2016-03-19 181
게임에서 사용하는 인공지능 기술 깊은바다 2016-03-19 149
2013년 게임 인공지능 최신 연구동향 file 깊은바다 2016-03-19 122
인공지능이 뛰어난 게임들 file 깊은바다 2016-03-19 412
크라이시스의 인공지능 file 깊은바다 2016-03-19 116
메시지 기반의 인공지능 깊은바다 2016-03-19 137
프리스타일에 적용된 인공지능 file 깊은바다 2016-03-19 145
리얼타임 연애시뮬레이션 - 러브 플러스 file 깊은바다 2016-03-19 284
하스스톤의 인공지능 file 깊은바다 2016-03-19 423