서버의 작업 부하는 MMORPG가 처음 만들어 질 때부터 나왔던 이야기다. 바람의 나라가 96년이므로, 지금은 딱 10년이 지났다. 무어의
법칙을 대강 적용하면, 10년동안 프로세서의 성능은 대략적으로 2^(10/1.5) = 101배가 늘어났을 것이다. 그런데 지금 온라인게임의
서버가 96년당시보다 100배의 일을 하고 있는가는 재고해볼 여지가 있다. 사실 프로세서의 성능이 딱 100배가 되었다고 할 수는 없고, 온라인
게임의 서버가 하는 일이 늘어난 것도 사실이지만, 정말로 지금의 서버 머신이 CPU를 100%활용하고도 과부하에 허덕이고 있는 것인지는 확인해
봐야 아는 일이다. (나는 서버개발자가 아니므로 '머신 좋은거 쓰면 안그래요'라는 서버팀의 말을 그냥 믿을 수 밖에)
몬스터 사냥은 거의 모든 온라인 게임이 동일한 체험을 제공해 준다. 길가에 널부러져 있는 몬스터를 타겟팅하고, 공격을 하면, 서로 공격과
방어를 주고 받다가, 몬스터의 체력이 깎이고 결국 죽는다.
몬스터의 생활이라고는 "누군가 와서 잡아죽여주기를 기다리는 생활"밖에 없으므로 몬스터의 사냥은 결국 지루한 마우스클릭질의 반복일 뿐이다.
마우스 클릭을 경험치로 바꾸는 변환작업일 뿐.
상상해 보자. 생활이 있는 몬스터를 사냥하는 작업은 어떻게 될까.
자꾸 사람을 헤치는 못된 멧돼지를 잡아야 한다. 멧돼지의 흔적을 추적한다. 멧돼지가 좋아하는
먹이는 잘 알고 있다. 그 먹이가 어디있는지도 안다. 가서 기다린다. 긴 잠복 끝에 멧돼지가 나타난다. 재빨리 공격을 가한다. 상처입은 멧돼지는
전력으로 도망친다. 멧돼지의 흔적을 놓치고 은신처를 찾아야 한다. ......
사실 문제가 있다. 멧돼지의 습성에 대한 것은 게임 내에서 알려주지 않더라도 누군가가 처음 알아내면 게임 커뮤니티에 급속도로 확산된다는
것이다. 그럼 결국 유저는 커뮤니티 게시판에서 멧돼지 출몰지역을 알아내서 그자리에 가서 그냥 사냥하는, 결국 전과 똑같은 결과가
벌어진다.
따라서 멧돼지는 고유한 습성을 가지지만, 그 습성은 세계의 상황에 따라 다르게 적용될 수 있도록 디자인 되어야 한다. 특정지역에 자주
가도록 만드는 습성을 가진 개체가 그곳에 가서 자꾸 살해된다면, 그 지역에 가는 개체수가 줄어들게 되므로 자연스럽게 유저는 더 많은 사냥감을
찾아 다른 곳으로 가게 될 것이다. 그리고 게임 커뮤니티에서는 몬스터의 위치를 제보하는 게시물로 숨가쁘게 활동이 일어나지 않을까.
"멧돼지는 동막골 뒷산에 가면 잡을 수 있어요"
라는 게시물이 3년동안 자료실에 쌓여 있는 게임과,
"지난주까지 동막골 뒷산에서 멧돼지 봤는데 지금은 없네요"
"그제는 양촌리 밭에 들어온거 잡았데요"
"오늘 보신분은 없나요"
등의 게시물로 활발히 정보교환이 일어나는 게임, 어떤 것이 더 바람직한 유저 상호작용일까를 생각해 보면 좋지 않을까 싶다.
요는, 몬스터의 생활이 또다른 몬스터의 패턴으로 정형화하지 않도록 만드는 모종의 메커니즘이 있어야 제대로 작동한다는 것이다. 나는
진화알고리듬이 가장 유력한 후보라고 생각한다.
사냥에 드는 수고에 비해 보상이 좋은 특정 몬스터는 유저들이 선호하는 사냥감이 된다. 자연스럽게 이런 몬스터는 제아무리 몬스터가 날고 기는
재주가 있어도 개체수가 급감하게 된다. 이는 행동 패턴이 정형화되든 않았든 상관이 없는 일이다. 개개의 몬스터를 잡는 과정은 몬스터의 행동
패턴에 따라 달라지겠지만 결과적으로 몬스터는 결국 플레이어에게 잡힐 운명이다.
이렇게 개체수가 줄어든 몬스터를 가장 손쉽게 보충하는 방법은 인위적인 스폰이다. 하지만 이렇게 한다면 몬스터를 그냥 스폰하는 것과 뭐가
다른가? 개체수가 과하게 줄었을 때만 인위적 스폰을 통해 개체수를 공급한다고 해도, 노력에 비해서 더 많은 보상을 유저들에게 주는 일이 될
뿐이다. 결과는 수많은 온라인게임의 문제인 인플레이션이다. (인플레이션에는 여러 종류가 있다. 재화의 인플레이션, 경험치의 인플레이션
등등)
따라서 개체수가 줄때는 줄어든 채로 자연스럽게 놔 두되, 아주 없어지지 않게 하는 보조 수단이 강구되어야 한다. 언뜻 현재 환경보호단체에서
"국제 멸종 위기 동물"을 지정해서 보호하듯이, 서버 단위로 "멸종 위기 몬스터"같은 걸 뽑아내서 주어지는 보상을 조절하는 것이 좋을 듯 하다.
보상을 줄이거나, 혹은 -의 보상을 주는 것도 고려해 볼 수 있다. 멸종위기 몬스터가 된 것은 보상이 좋기 때문이며, 보상이 줄어든다면 유저들은
더이상 이들을 잡을 필요가 없기 때문이다. 멸종 위기의 보호 동물을 사냥했을 때 법률적 제제가 가해지는 것을 생각하면 쉬울듯 하다.
모든 게임 기획자는 유저들이 자기가 만든 시나리오대로 체험하기를 원하는 것 같다. 혹은 자기들이 만든 시나리오대로만 되는 게임만 기획할 수
있는 것일지도 모른다. 사실 게임에 들어가면 모든 것이 정형화 되어 있다. '시나리오'라는 껍데기로 잘 포장되어 있긴 하지만 1레벨때는 어디가서
무엇을 사냥하고, 20레벨일때는 어디가서 무엇을 사냥해야 하는 등으로 정해져 있고, 이는 1년 뒤에 새 캐릭터를 만들어서 새로 해도 똑같은
과정이다.
아마도 퀘스트를 지급할 때 "옆동네 초원에 가서 늑대 5마리를 잡아서 머리가죽을 벗겨오게"같은 식으로 되어 있기 때문일 것이다.
하지만 꼭 그래야 하는가? 1월에 했을 때는 늑대가 옆동네 초원에 있었는데, 6월에 새로 할 때는 뒷산 수풀에 숨어살고 있으면 안될 이유가
무엇인가?
몬스터가 생활을 가지게 되면서 세계 자체가 동적으로 변하게 된다. 이런 시스템이 제대로 작동하려면 퀘스트와 보상체계 전반에 대한 재구성이
필요하다. 동적으로 변하는 세계에서는 퀘스트 역시 동적으로 변해야 맞는 것이다. 퀘스트를 지급할 때 NPC가 몬스터나 주변 여건과의 상호작용의
역사를 기반으로 지급하는 방식이 되어야 한다.
한 NPC가 1월에는 이런 퀘스트를 지급한다. "지난주에 늑대한테 죽은 사람을 봤어요. 늑대가
이 근처에 있나봐요. 잡아주세요"
그런데 같은 NPC가 4월에는 이런 퀘스트를 지급할 수도 있는 것이다. "늑대가 이제 사람을
헤치지 않는 거 같아요. 새끼 늑대를 기르고 싶은데 데려와주세요"
몬스터의 행동 패턴이 변화하므로 몬스터 사냥을 기반으로 하는 시스템 (퀘스트 같은) 역시 동적으로 바뀌어야 한다. 기존 시스템을 바꿔야
하는 부담이 있지만 작동하는 시스템을 만들 수 없는 것은 아니라는 것이 요지이다.