Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

요즘 개발하다가 일어나는 일을 종종 미래의 눈높이와 현재의 목표, 온라인 멀티플레이 게임과 가장 완벽한 상호작용 같은 글을 통해 소개하곤 하는데 이번 프로젝트는 과거의 다른 프로젝트와 비교해 개발하며 일어나는 일을 공유하는데 더 약한 제한이 있기 때문입니다. 다른 프로젝트 같으면 당연히 회사 밖에서는 입이 없고 회사 전체에 유일한 입은 PR 부서에 있을 뿐이었으며 개발 관련된 어떤 정보도 실수로라도 공유해서는 안되는 강한 보안 규칙을 적용 받고 있었습니다. 그런데 이번에는 흥미롭게도 개발하며 일어나는 사건 사고, 또 우리들의 개발 상황 같은 주제에 대해 상대적으로 느슨한 제한에 따라 이야기할 수 있게 됐습니다.

덕분에 이전에 비해 좀 더 편안하게 프로젝트에 참여하며 겪는 여러 가지 일을 소개할 수 있게 되어 개인적으로 나쁘지 않다고 생각합니다. 아주 오래 전에 겪은 일을 그 때 일기를 동원해 이제 와서 소개하려고 해도 요즘 시대에 잘 어울리는 정보나 사례가 아니기가 쉽기 때문에 소개하기 어려운데 이번에는 지금 당장 일어나는 일을 소개하고 또 문제를 해결하거나 의사결정을 하는 과정 자체를 설명할 수 있어 설명하는 입장에서도 재미있고 또 현재 시점에 어느 정도는 어울릴 거라 예상합니다.

MMO 장르의 흔한 PvE 환경을 준비하며 레벨에 스폰 된 플레이어가 목표를 찾아 이동하고 행동하게 할 방법을 마련해야 했습니다. 모든 준비를 갖춘 이미 출시된 게임을 생각해 보면 화면에 지금 수행해야 하는 목표가 퀘스트 모양으로 나타나고 또 바닥에 이동 경로를 그려 주거나 화면 어딘가에 미니맵을 표시하거나 화면 상에 인디케이터를 띄워 방향과 거리를 안내해 주기도 합니다. 우리는 이런 방법 모두를 남은 기간 안에 채용할 수 없는 상황이기 때문에 이들 중 비용 대비 효율이 너무 떨어지지 않는 방법을 선택해야 했습니다.

우선 퀘스트 모양은 꽤 괜찮기는 하지만 개발에 참여하는 우리들 스스로도 일부만 완성된 상태를 상상해 그 수준까지 개발하기 쉽지 않기 때문에 고려하지 않았습니다. 일단 퀘스트처럼 보이는 인터페이스가 화면에 나타나는 순간 개발팀 전체가 그걸 이미 완성된 퀘스트라고 착각하고 완성된 퀘스트를 통해 경험한 온갖 기능의 부재를 문제 삼기 시작하는데 제한 시간 안에 완결된 빌드를 만들어내는데 심각한 문제를 일으키기 때문입니다.

미니맵도 고려하지 않기로 했습니다. 미니맵은 꽤 단순해 보이지만 본격적으로 이걸 잘 만들려고 마음먹으면 결코 간단하지 않습니다. 우선 미니맵에 표시할 에셋를 별도로 제작해야 하는데 단순히 레벨을 탑뷰에서 찍은 이미지를 미니맵 에셋으로 사용할 수는 없습니다. 물론 탑뷰에서 찍은 이미지를 기준으로 시작하기는 하지만 의도를 가지고 리터칭을 한 다음에야 미니맵에 사용할 수 있습니다. 하지만 우리는 지금 미니맵에 아무런 의도를 가지고 있지 않았기 때문에 그저 보기 좋은 모양으로 만들기 위한 리터칭은 재작업 가능성이 너무 높았습니다. 또한 미니맵 상에 표시할 대상과 표시하지 않을 대상, 정적으로 존재하는 대상과 동적으로 존재하는 대상의 표시 방법 결정, 특정 지점과 범위를 표시할 정책과 방법 같은 단시간 안에 동작을 정의하고 이를 구현하기 쉽지 않으리라 판단했습니다.

카메라 방향과 대상의 방향이 일치하면 화면 안에 그 대상의 위치와 거리를 표시하는 수준으로 구현하기로 했습니다. 물론 대상과 반대 방향을 바라보면 화면에 아무 표시도 나타나지 않겠지만 게임 안에서 목적을 잃었을 때 주변을 둘러보며 인디케이터를 찾은 다음 그쪽으로 이동하기 시작하면 지금 싸움이 일어나고 있는 위치에 도달할 수 있습니다. 인디케이터 인터페이스만 결정하면 중요한 결정 요소가 거의 없습니다. 중간에 뭔가 문제가 생겨도 기획적 문제보다는 대부분 기술적 요소일 가능성이 높아 부담이 적었기도 했고요.

한편 이런 의사결정을 뒤로 하고 슈터 장르 게임에서 PvE 또는 PvP 모드에서 상황에 따라 지금 수행해야 할 목표를 그때그때 플레이어에게 알려주는 기능을 게임 규칙 자체에 내장한 모드는 CTF입니다. 데스매치나 팀 데스매치 같은 규칙은 상황에 따라 목표가 달라지기는 하지만 개개인마다 우선시 하는 목적이 다르기 때문에 상황마다 서로 생각하는 목적이 다를 수 있습니다. 나는 내 눈 앞의 적을 죽이는데 관심이 있지만 팀 전체 관점에서는 누구든 빨리 새로 스폰 된 헬스를 먼저 먹어 상대 팀이 먹지 못하도록 하는 것이 더 중요할 수도 있습니다.

반면 CTF는 상황에 따라 각자가 수행해야 할 목적이 꽤 잘 일치됩니다. CTF의 상황은 한 쪽 팀을 기준으로 우리 팀 깃발이 제 자리에 있거나 누군가가 탈취한 상태이거나와 상대 팀 깃발이 제 자리에 있거나 우리 팀 누군가가 탈취한 상태인 네 가지 상태가 있습니다. 상황을 좀 더 정확히 보려면 각 상황이 상대 팀에 어떻게 해석되는지를 추가로 생각해 보면 되지만 그러면 본격적으로 복잡해지니 한 팀의 네 가지 상태가 있다고 보면 됩니다. 이 네 가지 상황에서 플레이어들의 마이크로퀘스트는 굳이 알려주지 않아도 규칙을 이해하고 있다면 비교적 명확합니다.

우리 팀 깃발이 탈취 당한 상태라면 그 깃발이 상대 진영에 도달하기 전에 깃발을 든 플레이어를 죽여야 합니다. 이보다 중요한 목표는 없습니다. 반대로 우리 팀이 상대편 깃발을 탈취한 상태라면 그 플레이어를 보호해야 합니다. 누군가를 죽이더라도 이 행동은 상대편 깃발을 들고 있는 우리 편 플레이어를 보호하기 위한 행동이어야 합니다. 만약 상대 팀의 약한 플레이어가 눈 앞에 있더라도 이 플레이어를 함부로 죽여 자기 진영으로 돌아가 무기를 먹고 돌아오지 않도록 적당히 통제하는 선에서 놔 두는 결정이 더 나을 수 있습니다.

현대의 슈터 장르는 종종 지금 해야 할 일을 게임 규칙 차원에서 알려주는 사례가 많습니다. 한때는 퀘스트나 미니맵 모양을 사용했지만 작위적이고 익히기 쉽지 않으며 창발적인 플레이를 제한합니다. 반면 자기장을 피하거나 시점에 따라 모르는 상대와 협동하거나 경쟁하거나 전투를 그만 두고 탈출하는데 집중하는 등 시점에 따라 달라지는 목적은 작위적이지 않아 상황에 몰입하게 만들며 창발적인 플레이를 하도록 압력을 가합니다. 개인적으로 이런 플레이의 기초는 CTF 규칙이라고 생각하며 슈터 장르의 작위적이지 않은 플레이 규칙을 만들려고 할 때 여기서부터 시작하면 도움이 될 거라고 생각합니다.

  • No labels