티스토리 뷰

이글은 KGDA의 nairrti 이 올리신 글입니다. 상당히 좋은 글이라 생각되어 일단 블로그로 가져왔습니다. 하지만 허락을 받지 않았기 때문에 문제가 된다면 삭제 하겠습니다.

 

 

나아진 인공지능에 대해서 (3) – 조셉 스윙  

A Better Monster AI - Joseph Swing

 

                      나아진 인공지능에 대해서 (3) – 조셉 스윙

 

2002년 10월 14일, 저자로부터의 허락을 받아 번역 및 주석을 달았음.

김 종 득(Nairrti@mail.com)

 

(사실상 1, 2편으로 원문은 모두 번역이 되었으며, 이 3편에서는 개인적으로 글을 읽고 고마운 마음에 보냈던 메일과 약간의 제안에 대해서 J. Swing의 답변을 번역한 것입니다. 실제적인 AI에 대한 이야기는 아니니 참고로 보아주시면 좋겠습니다.)

 

안녕하세요, 조셉.

 

당신이 ‘roguelikedevelopment.org’에 올린 글을 읽었고, 로그 게임의 AI에 대한 당신의 제안에 대해서 매우 감명을 받았습니다. 저도 당신의 생각과 대체로 비슷하게 생각하지만, 유저들은 조금 다르게 받아들이지 않을까 생각되는군요.

 

RL게임에서는 몬스터의 움직임이라는 것이 유저의 움직임에 따라서 결정되게 되어있고, 대부분의 게임들이 당신의 글처럼

 

    if (ISeeHero) then (MoveToAttackHero)

    else (DoNothing)

 

라고 되어있다는 것입니다.

 

제가 정확하게 기억한다면, 당신의 AI에 대한 제안은 몬스터가 각자의 목표를 가지고 움직인다는 것이었습니다.

 

하지만, 유저는 단지 자신에게 접근하거나 도망가는 것만 볼 수 있을 뿐이고, 이것은 결국 유저에게 별다른 차이가 없지 않을까 하는 것입니다.

 

개발자가 당신이 썼던 글의 내용을 받아들여서 구현을 하는 경우, 아마도 몬스터가 지금 무엇을 하는지에 대한 묘사를 해 주어야 하지 않을까 싶습니다.

 

...

 

이건 단지 간단한 제안일 뿐이고, 예의 알고리즘에 크게 영향을 주지는 않는 것입니다만, 읽으면서 느꼈던 제 생각을 말씀 드린 것입니다.

 

어쨌든, 메일을 읽어주시고, 글을 웹에 올려주셔서 고맙습니다.

 

영어를 잘 못해서 부끄럽네요.

 

안녕히 계십시오.

 

켈빈.

(주1 – 저는 영문 이름으로 Kelvin을 사용하고 있고, Kelvin은 화씨온도를 만든 그 Kelvin에서 이름을 따왔습니다. 에... 이것은 거의 잡담 글이므로 편하게 읽어주세요. ^^)

 

추신) 아, 제가 당신의 글을 한국어로 번역해서 한국 개발자 사이트에 올려도 될런지요.

 

안녕하세요, 켈빈.

 

제가 올렸던 글에 대해서 시간을 할애하여 코멘트를 해주셔서 고맙습니다. 제 글은 공개된 것이니까 한국어로 번역을 하시거나 원하시는 사이트 어느 곳에든 올려주셔도 괜찮습니다. 그리고 추가로 코멘트까지 해주시는 것에 대해서 고맙게 생각합니다.

 

좋은 지적을 해주셨습니다. 플레이어가 몬스터의 기호에 의해서 움직이는 것에 대해 아무런 변화도 느끼지 못한다면 이 AI는 값어치가 없을 겁니다.

 

하지만, 기호(behavior, 주2 전에는 욕구라고 번역을 했습니다만, 기호가 더 어울리는 듯 합니다)에 따라서 몬스터가 움직인다는 것은 단지 움직인다라는 것 이상의 가치가 있습니다. 몬스터가 누구를 공격하느냐 뿐만 아니라, 플레이어가 방에 들어왔을 때 서로 다른 몬스터가 싸우기로 결정하고 플레이어는 무시한 채 싸움질을 해대는 것도 가능하겠지요.

 

플레이어는 자신의 피해를 감수하고 싸움 한 가운데에 끼어들던가 아니면 싸움이 끝나서 기진맥진한 승리자를 때려잡는 것도 가능할 것입니다. 쉬운 방법이지만 유저가 가져가게 되는 경험치는 두마리를 잡을 때 보다 적겠지요.

 

이것은 또한 플레이어가 살금살금 투명 기술이나 마법으로 돌아다니면서 던전을 돌아다니는 재미도 줄 수 있을 겁니다. 대부분의 게임에서는 플레이어가 보이지 않게 돌아다니는 경우 멀거니 서있다가 공격을 받아야 반격을 하겠지만, 몬스터들이 자신의 목표를 가지고 있는 경우에라면 플레이어의 움직임에 상관 없이 무언가를 할 겁니다.

 

플레이어의 전략에도 여러가지 선택을 줄 수 있을 겁니다.

 

예를 들어서 플레이어가 고블린을 만났을 경우, 고블린은 플레이어가 강하다고 생각하고 도망을 갈 겁니다. 고블린은 도망치다가 동료를 만났고 둘은 같이 행동하게 되지만, 유저는 여전히 강력하지요. 그래서 둘 다 도망을 치다가 또 다른 동료를 만나고... 해서 여섯 마리의 그룹이 되면 이제 플레이어와 싸움을 할 만 하다고 생각하여 플레이어에게 덤빌 겁니다. 플레이어는 이제 몬스터가 다른 동료를 만나기 전에 재빨리 죽여야 한다는 것을 알게 되겠지요. (주3 에... 뭐 중요한 내용은 아니므로 날림 번역 중입니다.)

 

플레이어가 이기기 어려운 그룹의 몬스터가 있는 경우에는, 플레이어가 아이템을 한 두 개 떨구는 것으로 한 마리씩 꼬셔낼 수도 있겠습니다. 그룹화 하려는 성향이 약한 몬스터는 아이템을 갖는 것이 더 좋아 보일 수도 있을 것이고, 다른 몬스터들을 떠나서 물건을 집으로 올 겁니다. 플레이어는 이 몬스터를 기습해서 한 마리씩 죽이는 것도 가능할 겁니다.

 

저도 아직 이 AI에 대한 가능성을 예상해 본 적은 없지만, 아마도 아주 재미있는 결과가 나올 것 같습니다.

 

> 몬스터의 행동 묘사를 해야 하지 않을까

 

아주 좋은 생각입니다. 한 줄로라도 지금 뭐가 어떻게 돌아가는 지 묘사를 해주는 것이 게플레이어에게 아주 큰 도움이 되겠군요. (트롤이 고블린을 쫓고 있다.거나 용이 금 냄새를 맡고 이쪽으로 접근하고 있다.)

 

플레이어가 버린 물건을 줍거나 주변을 어슬렁대는 도둑 또는 청소부의 경우를 언급했던 걸로 기억하는데, 플레이어가 가까이 가면 이런 말을 하는 것도 좋겠군요.

 

신경쓰지마 도둑이 말했다.

넌 이 물건이 필요 없는거지, 그렇지? 도둑이 멀찌감치 떨어진다.

 

이거 아주 재미있겠군요. 단지 자신에게 접근을 하거나 멀어지는 몬스터만 보는 게 아니라 왜 그런지를 알 수 있으니 말입니다.

 

이게 좋은 적용이라고 생각되나요? 몬스터의 (주4 - 기호에 따른) 최상위 상태에 따라서 독특한 메시지를 뿌려주는 겁니다.

 

몬스터가 하는 행동에 따라서 몬스터의 종류별로 추가적인 내용을 주는 게 나을까요? 예를 들어서 오크는 엘프들을 싫어한다면 다른 것들을 추격할 때와 엘프를 추격할 때를 다르게 해주는 것이지요.

 

그룹의 경우에는 각각의 몬스터마다 메시지를 주는 것 보다 그룹 전체의 메시지를 주는 게 나을까요?

 

의견을 듣고 싶습니다. 다른 의견들도 보내주시면 좋겠네요.

 

JSwing

 

(주5 아직 이 메일 이후로는 다른 내용이 오간 것이 없네요. 답장을 써야하는데... 역시 귀차니즘의 발동에... 쿨럭. 좋은 의견이 있으시면 이야기 해주세요. 대신 전달 해 드리도록 하겠습니다.)

 

 

 

김 종 득 (Nairrti, A.K.A. LorD WhitE)

최근 새로 생긴 닉네임으로 로오두화투(老傲頭譁鬪) 및 나루터, 나리티 등이 있음.

게 임 기 획 자 – 계속 삽질중임

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함