전투 행동의 대상은 전투 시스템에 기반하도록 설계해야 합니다

여러 프로젝트에서 전투용으로 설계되지 않은 대상에 전투 방식으로 상호작용 시키기 위한 요구사항을 반영하기 위해 고생하는 모습을 봅니다. 근데 좀 이상하지 않나요?

전투 행동의 대상은 전투 시스템에 기반하도록 설계해야 합니다

프로젝트에 따라 여러 가지 이름으로 불리곤 하는 플레이어와 고정된 상호작용을 통해 플레이어가 어떤 행동을 하게 만드는 대상을 이 블로그에서는 인터랙션 오브젝트라고 부르고 있습니다. 오래 전체 참여했던 어떤 프로젝트에서는 이를 필드오브젝트라고 부르기도 했습니다. 왜 그런 이름이었을까 궁금했는데 알고 보니 회사가 외국계 개발사 한 곳을 인수하고 그 회사에서 사용하던 개발 환경을 가져와 제가 참여했던 프로젝트를 시작했는데 그들이 자신들의 게임을 만들며 몬스터는 아닌 상호작용 대상을 필드오브젝트라고 불렀고 그 흔적이 그들의 개발환경 곳곳에 남아 있었기에 우리들도 그렇게 불렀습니다. 여기서 상호작용 혹은 인터랙션이란 말의 의미는 종종 게임 전체에 걸쳐 모호하게 사용될 수 있습니다. 가령 기반 장르가 MMO인 게임에서 게임의 핵심 메커닉은 전투일 때가 많은데 이 전투 행동 역시 대상과 하는 상호작용이라고 표현해도 전혀 이상하지 않습니다. 그렇지만 MMO 게임에서 플레이어와 몬스터가 전투하는 행동을 상호작용이라고 하지는 않는데 분명 어떤 모호한 구분 방법이 있지만 이를 명확하게 설명하기는 어렵습니다. 전투는 분명 상호작용이지만 상호작용이라고 부르지 않습니다. 하지만 던전에 있는 보물상자를 여는 행동은 전투는 아니지만 상호작용이라고 부르곤 합니다. 이런 모호한 정의를 한참 생각하다가 개인적으로는 상대에 2차원 좌표 상에서 이동하는 동작이 포함되어 있으면 그 대상과 하는 상호작용을 전투라고 부르고 상대가 2차원 좌표 상에서 이동하지 않으면 그 대상과 하는 상호작용을 그냥 상호작용이라고 부르기로 했습니다.

이 관점에서 몇몇 가상의 게임에 등장하는 예를 들어 전투와 상호작용을 구분해 보겠습니다. 플레이어가 게임의 핵심 메커닉인 전투 행동을 하는 대상은 주로 몬스터라고 정의합니다. 프로젝트 초반에 앞으로 구축할 온갖 행동의 기반이 될 게임의 주요 등장인물인 플레이어, 몬스터, 오브젝트 따위를 정의할 때 이들의 외형에 따라 등장인물을 정의하는 실수가 일어나곤 합니다. 가령 외형이 사람처럼 생겼으면 이를 NPC라고 정의하고 괴물처럼 생겼으면 몬스터라고 정의하는 식인데 이 단계에서 실수를 아무도 눈치 채지 못하면 본격적으로 다른 시스템을 만들다가 사람처럼 생겼지만 전투를 해야 하는 상황을 만날 때가 된 다음에야 뭔가 잘못되었음을, 그리고 꽤 많은 개념과 코드를 고쳐야 함을 알게 될 수도 있습니다. 또 플레이어가 아닌 모든 2차원 좌표 상에서 움직이는 대상을 NPC라고 정의해버리기도 하는데 이 역시 얼마 후 마을에 돌아다니는 사람처럼 생긴 전투 하지 않는 대상과 마을 밖에 돌아다니는 사람처럼 생겼지만 전투 해야 하는 대상을 구분하는데 어려움을 겪게 만듭니다. 여기서 몬스터란 그 외형에 관계 없이 플레이어와 전투 가능한 대상으로 정의하겠습니다. 플레이어가 마을 밖에 돌아다니는 몬스터를 공격해 주로 스킬 모양으로 정의된 행동을 시작하면 이를 전투라고 합니다. 스킬은 외형 상 주로 상대를 공격하는 모양으로 만들어져 있는데 실은 스킬에 의해 일어나는 시스템 상 중요한 상호작용은 대상에게 대미지를 주는 것입니다. 플레이어 관점에서 전투 대상 역시 거의 비슷한 기술적 기반을 사용해 플레이어에게 상호작용을 시도하는데 이 역시 시스템 상 가장 중요한 상호작용은 플레이어에게 대미지를 주는 것입니다. 스킬이 아무리 화려해지고 시전시간이 걸어지고 스킬을 시전하기 위한 조건이 복잡해져도 근본적으로 전투를 정의하는 상호작용은 상호작용 대상에게 대미지를 주는 결과로 귀결됩니다.

그런데 상호작용 대상이 괴물 모양을 하고 있지 않고 또 대상에게 상호작용을 시도하면 대상에게 대미지를 주지 않는 행동을 하는 상황은 어떻게 정의해야 할까요? 던전 안에 있는 몬스터들과 싸우는 행동은 분명 전투라고 할 수 있을 것 같습니다. 겉보기에 플레이어는 괴물들을 공격하는 여러 가지 애니메이션을 재생하며 그들에게 대미지를 줄 테고 괴물들 역시 여러 가지 애니메이션을 재생하며 플레이어에게 대미지를 줄 테니 서로 대미지를 주고 받는 상호작용이라는 관점에서 이는 전투가 확실해 보입니다. 그런데 던전 중간에 있는 보물상자는 대상과 상호작용을 하는 관점에서는 전투라고 해야 할 것 같지만 분명 시각적으로 이 활동은 전투가 아닌 것 같습니다. 보물상자를 가리켜 상호작용을 시작하면 플레이어는 보물상자 가까이까지 아동한 다음 보물상자 뚜껑을 붙잡고 들어 올려 보물상자를 열고 안에서 보물이 드랍 됩니다. 분명 어떤 상호작용이 일어났습니다. 플레이어는 보물상자 뚜껑을 여는 애니메이션을 재생했고 보물상자 자신은 뚜껑이 열리는 애니메이션을 재생했으며 안에서 보물이 튀어나오는 여러 가지 효과가 함께 재생되었습니다. 하지만 이들 사이에서 어떤 대미지를 주고 받지 않았습니다. 그렇다면 이 행동은 단어의 의미에 집중하면 전투와 똑같은 어떤 상호작용이라고 볼 수도 있겠지만 전투라고 볼 수는 없을 것 같습니다.

필드에 있는 나무를 베는 동작은 어떨까요? 필드에 있는 나무는 일단 플레이어가 상호작용을 시작하기 전에는 그 스스로 플레이어에게 어떠한 상호작용도 시도하지 않습니다. 게임 상에 부는 가상의 바람에 의해 흔들거리는 애니메이션을 재생할 뿐 플레이어가 상호작용을 시작하기 전까지 나무는 그저 이동을 가로막는 물체에 불과합니다. 그런데 플레이어가 나무에 대한 상호작용을 시작하면 나무를 베는 행동을 하고 이 행동에는 일정 시간이 필요하며 행동이 끝나면 나무는 쓰러지거나 사라진 다음 아이템을 드랍 합니다. 사실 이 행동은 넓게 해석하면 나무에 대한 일종의 공격 행동이라고 볼 수도 있습니다. 전투 행동과 같은 관점에서 이 행동을 해석하면 플레이어는 나무에 대한 공격 스킬을 사용해 나무에게 대미지를 주고 나무의 체력이 0이 되면 쓰러지며 아이템을 드랍한다고 볼 수 있습니다. 하지만 여러 게임에서 나무를 몬스터로 만들지 않는데 이는 시스템을 단순하게 만들고 또 실제 세계의 규칙과 비슷한 상태를 만들되 기존에 구축한 전투 규칙을 수정하고 싶지 않기 때문입니다. 만약 나무를 별 생각 없이 나무 모양을 한 몬스터로 만들면 플레이어는 굳이 도끼를 집어들지 않고서도 나무에게 아무 공격을 해도 나무에게 대미지를 줄 수 있습니다. 가령 플레이어가 방금 획득한 강력한 검은 몬스터들에게 강한 대미지를 줘 이들을 한방에 썰어 버릴 수 있습니다. 만약 나무가 몬스터 규칙에 기반해 만들어졌다면 플레이어는 굳이 도끼를 집어 들 필요 없이 검으로 나무를 베어 버릴 수 있고 제 아무리 단단한 나무라도 몬스터와 똑같이 단칼에 쓰러져야만 합니다. 이는 전투 시스템 관점에서 전혀 이상하지 않지만 실제 세계의 규칙에 근거하면 이상한 동작입니다. 아무리 강한 검토 수 백 년 묵은 거대한 나무를 한 방에 두 동강 낼 수는 없습니다.

또 게임에 따라 무기 체계를 단순하게 만들기 위해 나무를 베는데 주로 사용하는 도구인 ‘도끼’를 무기 개념으로 사용할 수 있도록 하지 않곤 하며 도끼가 인벤토리와 장착 슬롯을 차지하는 게임 관점에서 실존하는 물체로 나타나기를 원하지 않기도 합니다. 전투 메커닉 관점에서 나무를 몬스터로 정의하고 도끼를 무기로 정의하는 순간 도끼 역시 무기를 성장 시키기를 바라는 게임에서 성장 대상으로 정의되어야 할 뿐 아니라 나무를 벨 때는 도끼를 장착해야 하고 또 몬스터를 썰 때는 검을 장착해야 하는 등 실제 세계에서는 동시에 일어나지 않기 때문에 전혀 이상하지 않은 행동이 게임 속 세계에서는 동시에 일어나기 대문에 극도로 불편한 상황을 만듭니다. 그래서 여러 게임들이 도끼를 인벤토리나 장착 슬롯을 차지하는 실제 도구가 아니라 나무와 상호작용 하려 할 때 애니메이션에만 잠깐 나타나 나무를 벨 때는 도끼를 사용한다는 실제 세계의 규칙을 따르는 척 하는데 사용되지만 인벤토리나 장착 슬롯 어디에도 존재하지 않도록 합니다. 이렇게 나무와 상호작용 하기 위핸 규칙은 무기를 사용해 상대에게 대미지를 주는 기존 전투 시스템과는 분명히 다릅니다. 이들을 똑같은 전투 시스템으로 개발하려고 하면 갑자기 무기가 없는 상태에서 공격하는 방법을 정의해야 하고 또 지금까지는 고객이 직접 플레이어에게 장착한 무기에 기반한 애니메이션을 재생하며 상대에게 대미지를 주도록 설계한 전투 시스템이 대상이 무엇인지에 따라 무기를 전투에 적용하지 않고 대상에 따라 올바른 애니메이션을 재생하는 이전까지 구축했던 전투 메커닉과는 상당히 다른 규칙을 전투 시스템에 욱여 넣어야만 하는 상황을 맞게 됩니다. 개인적으로는 이 모든 상호작용을 ‘전투’라는 표준화된 상호작용 시스템에 기반해 설계하는 것이 올바르다고 생각하지만 채용 공고에 ‘전투 기획자’라고 써서 채용한 사람들 대부분은 보통 그렇게 생각하지 않기 때문에 실제로 이렇게 설계해본 적은 없습니다. 결국 이런 이유로 핵심 메커닉인 전투, 그리고 이 방식을 사용하지는 않지만 어쨌든 상호작용이라고 부를 만한 나머지 행동이 서로 다른 메커닉과 시스템을 통해 개발됩니다. 그 결과 등장한 것이 전투와는 다른 상호작용 또는 인터랙션입니다. 어느 쪽으로 불러도 상관 없지만 한국어로 표현하는 쪽이 읽을 때 침이 덜 튄다는 이유로 상호작용이라고 부르겠습니다.

전투를 제외한 나머지 상호작용을 별도의 시스템으로 만드는 방식은 다들 이렇게 해 왔기도 하고 또 기반 장르가 MMO인 프로젝트에서 핵심 메커닉을 전투로 삼은 이상 전투를 담당하는 부서의 영향력이 가장 강하기 때문이기도 하는 등 여러 가지 이유로 전투에 영향을 주지 않는 규칙으로 개발해야 할 때가 많습니다. 앞서 잠깐 설명했지만 나무를 베는데 사용할 도끼가 실제 무기 개념으로 만들어져 나무에 대미지를 주는 방식으로 만들려고 한다면 핵심 메커닉인 전투를 개발하는 부서의 강력한 저항을 겪게 됩니다. 때문에 근본적으로 대상과 주고 받는 상호작용으로 정의할 수 있음에도 전투를 설계하는 부서의 심기를 거스르지 않는 범위로 전투가 아닌 상호작용의 기능이 결정됩니다. 이제 앞서 인벤토리에도 장착 슬롯에도 존재하지 않는 도끼가 나무와 상호작용 할 때 갑자기 튀어나와 나무를 베는 애니메이션을 재생할 때만 등장하고 똑같이 어디에도 존재하지 않던 낫이나 작은 칼이 약초를 채집할 때 갑자기 등장했다가 드랍 아이템을 남기고 사라지는 이유를 이해할 수 있을 겁니다. 이런 상호작용은 게임의 핵심 메커닉으로써 결국 상대에게 대미지를 주는 똑같은 결과로 귀결되는 여러 가지 스킬을 여러 가지 상황마다 달리 적용되는 수많은 시각적인 차이만을 가진 스킬을 만드는 것과 달리 대상에 따라 단 한 가지 상호작용 방법만 만들게 됩니다. 나무에는 항상 똑같은 도끼질을, 약초에는 항상 똑같은 채집을 할 수밖에 없는 이유는 이 상호작용이 게임의 핵심 메커닉이 아니며 게임의 핵심 메커닉을 개발하는 부서만큼 큰 영향력을 발휘할 수 없고 또 그만한 자원을 획득할 수도 없는 부서가 만들어야 하기 때문이기도 합니다. 이제 우리들이 나무를 베고 약초를 채집하고 보물상자 뚜껑을 열고 닫힌 문을 열거나 스위치를 당기는 행동을 근본적으로 대상에게 하는 똑같은 상호작용이라는 관점에도 불구하고 게임의 핵심 메커닉인 전투와 완전히 구분되어 서로 영향을 주고 받지 않는 완전히 독립된 시스템으로 설계하게 된, 그리고 그렇게 설계해야만 하는 이유를 이해하게 되었습니다.

이렇게 설계한 전투 메커닉과 상호작용 메커닉은 서로 영향을 주고 받지 않으면서 개발되더라도 근본적으로 서로 상호작용 하는 대상이 완전히 구분되기 때문에 아무런 문제도 일으키지 않는 것처럼 보입니다. 몬스터가 갑자기 제자리에 가만히 서서 나무처럼 행동할 일은 없고 또 보물상자가 갑자기 플레이어를 공격해 대미지를 줄 일도 없습니다. 솔직히 그런 사례가 아예 없지는 않지만 사실 보물상자처럼 보였던 그놈은 보물상자가 아니라 미믹이라는 괴물일 뿐이었고 이 괴물에는 전투 시스템을 통한 상호작용을 하면 됩니다. 자기 자리를 유지하며 플레이어가 상호작용 해 올 때까지 아무런 행동도 하지 않는 보물상자와 달리 미믹은 적극적으로 이동하며 플레이어를 공격하기 대문에 겉모양을 의도적으로 똑같이 만들었다 하더라도 이들을 구분할 수 있습니다. 이제 앞에서 전투 행동과 이를 제외한 상호작용 대상을 대상의 외형이나 행동 같은 속성을 기반으로 구분하는 대신 2차원 좌표 상에서 이동하는지, 그렇지 않은지 여부로 구분한 이유를 이해할 수 있을 겁니다. 보물상자는 상호작용에 따라 움직이지 않지만 미믹은 움직이며 이 규칙은 실제 세계의 규칙을 모방한 여러 상호작용 대상에 걸쳐 거의 일정하게 적용됩니다. 똑같이 거대한 나무 모양이더라도 제자리를 유지한 채 플레이어의 도끼질에 의해 베어진다면 그건 전투가 아닌 상호작용 대상이며 나무가 갑자기 가지를 휘둘러 플레이어를 공격한다면 이 나무는 분명 이동하며 플레이어를 공격할테니 이는 전투 행동에 기반해 상호작용 해야 하는 몬스터로 봐야 합니다. 한동안은 이렇게 평화롭게 항상 더 많은 영향력을 행사하고 또 항상 더 많은 자원을 받는 전투 방식의 상호작용을 만드는 부서와 이런 특성은 없지만 게임 곳곳에서 일어나는 전투가 아닌 방식의 상호작용을 설계하는 부서가 서로에게 영향을 주지 않은 채 개발을 계속합니다. 하지만 그러던 어느 날 어느 게임에나 반드시 등장하곤 하는 어중간한 요구사항이 나타나며 평화롭던 개발팀에 작은 파문이 일어납니다.

게임 상에 등장하는 상호작용 대상이 항상 몬스터 모양과 나무 모양만 있는 것은 아닙니다. 게임을 플레이 하다 보면 고객이 경험할 플레이 호흡을 조절해야 하는데 던전 입구부터 맨 끝까지 끝없이 몬스터로 가득 차 있어 전투를 계속해야 하도록 만들면 계속해서 정신 없는 전투를 계속함에도 불구하고 고객은 지루함을 느낍니다. 영화 존윅 시리즈에서 존윅이 끝없이 몰려오는 적들과 계속해서 싸우는 모습을 바라보는 것은 분명 즐거운 경험입니다. 특히 존윅 3, 4에서 정말 대놓고 끝없이 몰려오는 적들을 온갖 장소에서 온갖 방법으로 죽이는 장면을 몇 십 분에 걸쳐 보고 있어도 결코 지루하지 않습니다. 이유는 이 행동을 관객이 직접 수행하지 않기 때문이며 관객이 존윅을 직접 조종하지 않기 때문에 고객의 과실에 의해 존윅이 중간에 죽을 가능성이 없다는 안정감 때문에 존윅의 행동에 집중을 유지할 수 있기 때문입니다. 어떤 적이 나타나더라도 이번에는 존윅이 어떻게 상대를 죽일지 기대하고 그 결과를 지켜보기만 하면 됩니다. 하지만 게임은 상황이 다른데 던전 입구부터 맨 끝에 있는 핵심 보상을 드랍할 보물상자에 이르는 경로가 몬스터로 가득 차 있다면 이들을 모두 처치하는 과정이 시각적으로는 화려해 보일 수 있겠지만 실제로 고객은 그 적 하나하나를 직접 상대해야 하고 이 과정은 반복적일 가능성이 높으며 난이도에 따라 다르기는 하지만 종종 고객 과실로 주인공이 죽어 버릴 수도 있기 때문에 그저 다음에 나타날 괴물을 기대하며 게임을 지켜볼 수 없습니다. 실은 영화 존윅도 마찬가지이기는 하지만 호흡을 조절할 필요성은 영화보다 게임에 훨씬 더 크게 적용됩니다. 그래서 던전에는 몬스터가 나타나지 않는 구간도 있고 또 이동과 전투 외에 가벼운 전투처럼 보이지만 절대 고객 과실로 죽지 않는 안전한 전투 상황을 만들어 지루해지기 쉬운 이동을 밋밋하지 않게 만들어줄 방법이 필요한데 바로 이 때 지금까지 한 번도 정의한 적 없는 이상한 상호작용 대상이 필요해집니다. 바로 바리케이드입니다.

지금까지 전투 행동과 그 대상인 몬스터, 그리고 상호작용 행동과 그 대상을 구분해서 살펴봤습니다. 이에 따라 이들 모두가 결국 정규화 가능한 상호작용이라는 사실을 이해하지만 여러 가지 현실적인 이유, 그리고 역사적인 이유에 의해 이들을 한 가지 방법으로 정규화 하는 대신 두 가지 서로 다른 방법으로 정규화 하고 각각의 업무를 서로 다른 부서에 할당해 왔음을 알고 있습니다. 그런데 이런 관점과 상황에서 바리케이드는 아주 이상한 물건입니다. 앞서 전투 행동과 나머지 상호작용 방식을 구분하기 위해 대상이 2차원 좌표 상에서 이동하는지, 이동하지 않는지 여부에 따라 구분했습니다. 이 구분 방식은 꽤 잘 작동하는 것처럼 보였습니다. 움직이지 않는 나무는 비전투 상호작용 대상인 나무이고 움직이는 나무는 플레이어를 공격하는 앤트 몬스터로 분류할 수 있습니다. 또 움직이지 않는 보물상자는 비전투 상호작용 대상이고 움직이는 보물상자는 괴물인 미믹이었습니다. 그런데 바리케이드는 움직이지 않아 비전투 상호작용을 해야 할 것처럼 보이지만 거의 모든 개발팀에서 바리케이드를 전투 행동을 사용해 파괴하기를 원합니다. 오래 전 악마 투석기는 무슨 기능으로 만들어야 하나요?에서 같은 고민을 해본 적 있습니다. 퀘스트 목표는 악마 투석기를 파괴하는 것인데 이 파괴라는 단어에 집중해 보면 악마 투석기는 전투 행동을 통해 파괴해야 할 대상처럼 보입니다. 그렇다면 악마 투석기는 비록 움직이지는 않지만 몬스터에 기반해 만들어야 할 것처럼 보입니다. 하지만 위 글에 설명한 여러 가지 이유 때문에 악마 투석기는 전투 행동에 의해 파괴되지 않고 별도의 비전투 상호작용을 통해 파괴되도록 해야 했습니다. 이와 달리 바리케이드는 그렇게 할 수 없는데 이유는 바리케이드를 비전투 상호작용으로 없애는 것과 전투 행동으로 파괴하는 행동 사이에 경험이 상당히 다르기 때문입니다.

악마 투석기는 그 주변을 지키던 몬스터들을 전투 행동으로 모두 제거한 다음 마지막으로 악마 투석기를 비전투 상호작용을 통해 없앨 수 있습니다. 이 경험은 말이 되기는 하지만 썩 유쾌한 경험이 아니며 실제 세계의 규칙과 동떨어져 있어 설명하기 어렵기도 합니다. 실제 세계의 전장에서 투석기를 파괴하려면 어떻게 해야 할까요? 당연히 투석기를 강력한 방법으로 직접 공격해야 합니다. 분명 괴물을 썰던 칼로 공격하기에 적합한 대상은 아닙니다. 하지만 거대한 망치와 도끼를 동원해 말 그대로 때려 부숴 더 이상 투석기로써 역할을 하지 못하게 만들거나 아예 불태워 버릴 수도 있습니다. 하지만 게임 상에서 투석기를 파괴하기 위해 정성껏 설계하고 마치 일본식 정원 마냥 잘 관리해 온 전투 시스템으로 투석기를 파괴하기 위해 투석기 전체를 몬스터로 만드는 것은 이를 담당한 부서의 영향력을 고려할 때 별로 받아들이고 싶지 않은 종류의 일입니다. 그래서 투석기는 비전투 상호작용 대상으로 만들어져 말이 되기는 하지만 이를 파괴하는 경쾌한 느낌을 주지는 못합니다. 바리케이드는 이런 상황에서 전투 행동을 통해 파괴할 수 있는 대상으로 동작해 긴 던전의 전투 호흡을 조절하기 위해 몬스터가 등장하지 않는 이동 경로를 만들었으면서도 이동 과정이 밋밋해지지 않도록 중간에 경쾌하게 파괴할 수 있는 대상으로써 역할을 합니다. 그렇기 때문에 악마 투석기처럼 비전투 상호작용 대상으로 만들 수 없습니다. 그렇게 할 수 없지 않지만 그럴 거면 그냥 아무 것도 배치하지 말고 플레이어들이 빨리 다음 공간으로 이동하며 한 숨 돌릴 수 있도록 하는 편이 나을 것입니다. 그 공간에 뭔가 제거해야만 하면서도 플레이어의 안전을 보장하고 한 숨 돌리도록 만들기 위한 목적을 달성하기 위해서는 몬스터처럼 보이지 않지만 몬스터처럼 상호작용 해야 합니다.

그렇다면 간단히 게임의 핵심 메커닉을 담당한 부서에서 움직이지 않는 바리케이드 모양을 한 몬스터를 만들면 되지 않을까요? 하지만 바리케이드를 핵심 메커닉을 담당하는 부서에서 만드는 일은 일어나지 않습니다. 이유는 바리케이드 같은 장치를 필요로 하는 곳이 이 부서가 아니기 때문입니다. 앞서 핵심 메커닉을 담당한 부서의 행동을 정원을 가꾸는 일에 비유했는데 이들의 주 관심사는 여러 클래스에 따른 전투 경험, 다양한 스킬, 이 스킬에 맞아 줄 몬스터, 이들 사이에 일어나는 전투 기반의 상호작용에 집중되어 있습니다. 이들이 실제로 던전에 배치되는 방법, 던전의 호흡, 움직이지 않는 대상과 상호작용 같은 주제는 이 부서의 관심사가 아닙니다. 이런 이유로 던전 플레이 중 한 숨 돌릴 구간을 지날 때 밋밋하지 않은 경쾌한 경험을 하게 만들기 위한 바리케이드는 몬스터로 만들어지지 못합니다. 이 시점에 게임에는 전투 상호작용을 하는 몬스터와 비전투 상호작용을 하는 물체, 맨 처음에 설명하고 시작한 인터랙션 오브젝트가 있을텐데 이제 이 상황에 적용할 바리케이드를 만드는 방법은 인터랙션 오브젝트 뿐이라는 사실을 이해할 수 있을 겁니다. 그래서 악마 투석기를 시원하게 때려 부술 수 없고 또 던전 중간에 몬스터들이 나타나지 않는 통로 공간에 놓인 바리케이드 역시 편리한 방법으로 시원하게 때려 부술 수 없습니다. 하지만 악마 투석기를 비전투 상호작용을 통해 파괴하는 경험이 구렸던 것처럼 바리케이드를 조심스럽게 해체하는 건 던전 안에서 한 숨 돌리며 이동하는 목적을 달성하기에는 나쁘지 않아 보이지만 이 역시 이동 경험을 경쾌하게 만들지는 못합니다. 그래서 대체로 이런 바리케이드는 때려 부술 수 있도록 만들고 싶어합니다. 이제 가까이에서 볼 때만 보이는 비극이 시작됩니다. 아마도 멀리서 보면 꽤 다른 모습일 겁니다.

바리케이드를 비전투 상호작용 대상으로 만들기는 쉽습니다. 하지만 이를 전투 행동에 기반해 때려 부수도록 만들어 경쾌한 느낌을 주기 위해서는 지금까지 인터랙션 오브젝트를 개발해 오며 한 번도 만들어 본 적 없는 새로운 기능을 개발해야만 합니다. 사실 이 모든 기능은 이미 핵심 메커닉에 온전히 구현되어 있지만 이를 사용할 수는 없음을 앞에서 한참 설명했습니다. 그래서 바리케이드는 나무처럼 비전투 상호작용 대상이면서도 이와 상호작용 하는 방법은 전투 시스템의 일부를 사용해야만 합니다. 그런데 전투 시스템의 일부를 가져와 사용하려고 보면 지금까지 인터랙션 오브젝트를 개발해 오면서 단 한 번도 생각해본 적 없는 완전히 이상한 주제를 고민하지 않으면 안됩니다. 가령 전투 대상으로써 동작하려면 앞서 전투 행동에서 시청각적 측면을 제거하면 나타나는 이 행동의 근본인 상대에게 대미지를 전달하는 부분이 나오는데 바리케이드를 공격하기 위해서는 인터랙션 오브젝트에서 지금까지 한 번도 고려해본 적 없는 대미지 연산을 고려해야 합니다. 인터랙션 오브젝트는 이 시점 전까지 전투 연산과는 아무런 관계도 없이 기껏해야 상태가 변할 뿐이었을 가능성이 높기 때문에 이들은 전투 연산은 고사하고 체력 개념 조차 없었을 수 있습니다. 그런데 갑자기 플레이어가 바리케이드를 전투 행동으로 파괴할 수 있도록 하기 위해 지금까지 상상한 적도 없는 바리케이드의 최대 체력, 방어력 따위를 고려해야만 하는 상황에 놓입니다. 전투 행동의 대상이 되는, 그러니까 이미 몬스터라는 모양으로 개발되어 있는 기능을 놔두고 인터랙션 오브젝트가 몬스터의 일부 기능을 모방해 비슷한 동작을 하도록 만들려면 전투 행동이 필요로 하는 온갖 숫자, 에셋 따위가 필요해지는데 이는 이 자체로도 난이도가 낮지 않은 일일 뿐 아니라 지금까지 이런 일을 해본 적 없는 부서의 구성원들에게는 더더욱 어려운 일이 될 수밖에 없습니다.

인터랙션 오브젝트를 전투에 기반한 상호작용을 통해 파괴하도록 만들려면 대미지를 받게 만들기 위한 숫자를 제공해야 하는 것 뿐만 아니라 전투 대상인 몬스터들에게는 너무 당연했지만 인터랙션 오브젝트에는 상상조차 하지 못했던 것들이 필요합니다. 가령 일단 바리케이드가 공격 대상이 되는 순간 몬스터들에게는 너무 당연했던 머리 위에 표시된 체력 표시가 바리케이드 위에도 나타나야 할 지 정의해야 합니다. 또 몬스터들은 타격감을 위한 다양한 피격 시각 효과를 가지고 있습니다. 몬스터를 때리면 분명 아파 하는 애니메이션을 재생하고 또 실제 세계에서는 일어나지 않을 법한 시청각 효과를 동반합니다. 만약 몬스터에게 큰 대미지를 주면 화면 전체를 깜빡여 때릴 맛 나는 경험을 만들기도 합니다. 바리케이드 같은 비전투 상호작용 대상은 지금까지 이렇게 플레이어에게 ‘맞을’ 일이 없었기 때문에 이 모든 에셋이 준비되어 있지 않습니다. 실제 세계에서 바리케이드에 도끼를 휘두른다고 해서 바리케이드가 아파 하지도 않고 또 화면을 깜빡일 일도 없습니다. 하지만 게임 세계에서 똑같이 행동하면 바리케이드는 그 목적과 달리 아무런 경쾌함, 경쾌함의 근본이 되는 타격감도 주지 못하는 멍청한 물체가 될 뿐입니다. 그래서 바리케이드 역시 몬스터와 마찬가지로 맞을 때 아파 하는 시청각 효과가 필요한데 이 역시 지금까지 인터랙션 오브젝트를 설계하고 개발하며 단 한번도 고민해본 적 없을 가능성이 높은 주제입니다. 또 바리케이드를 파괴하기 위해 플레이어는 분명 자원을 소모하게 됩니다. 근거리 클래스 캐릭터가 무기를 휘두르기만 해도 최소한 시간을 소모하며 마법 클래스 캐릭터가 불덩어리라도 발사했다면 분명 마나를 사용했을 것입니다. 그럼에도 바리케이드는 파괴되기만 할 뿐 아무런 보상도 없어도 괜찮을까요? 플레이어들에게 자원을 소모하게 만들었으면 그에 합당한 경험치나 아이템 같은 보상을 제공해야 하는 것은 아닐까요? 이런 고민을 하다 보면 인터랙션 오브젝트를 설계하던 부서는 큰 어려움에 빠지게 되며 여러 프로젝트에 걸쳐 썩 예쁘지는 않은 결말을 맞이하는 모습을 여러 차례 봐 왔습니다.

그럼 도대체 뭘 어떻게 하란 말인가요. 분명 요구사항 자체는 의미 있습니다. 던전의 비전투 구간을 이동할 때 이동이 너무 밋밋하지 않게 만들기 위해 전투 행동을 통해 경쾌하게 파괴되는 물체를 배치하는 것은 여러 모로 올바른 접근입니다. 다만 이 요구사항을 던전을 개발하던 부서나 인터랙션 오브젝트를 개발하던 부서가 핵심 메커닉을 정원처럼 가꾸는 부서의 도움을 받지 않고 해결하려고 하는 접근이 모든 문제를 일으킵니다. 한국에서 MMO를 기반 장르로 삼아 게임을 개발하는데 참여하다 보면 어지간한 높은 분들이 항상 게임의 핵심 메커닉, 그러니까 전투 경험에 집중하며 여기에 상당한 자원을 투입하는 모습을 너무 쉽게 볼 수 있습니다. 게임의 핵심 메커닉 개발에 집중한다는 말을 보면 분명 아무 문제도 없어 보이지만 이런 접근은 이를 담당하는 부서가 나머지 조직과 유리된 모양으로 일하게 만들 수 있습니다. 만들 수 있다고 조금 살살 말해 봤지만 실제로 거의 격리되다시피 한 상태로 일하는 경우가 대부분입니다. 이들은 마치 정원을 가꾸듯 성당 안에 틀어박혀 그들의 관심사에 집중하며 게임의 나머지 부분에 대한 이해도가 상대적으로 낮을 수 있을 뿐 아니라 자신들이 개입해야 할 순간을 놓치기도 합니다. 지금까지 설명한 바리케이드 사례는 바리케이드를 전투 상호작용으로 파괴해야 하는 요구사항이 나타난 순간 이를 몬스터에 기반해 개발하면 온갖 요구사항에 아주 쉽게 대응할 수 있습니다. 관련 기반을 갖추지 않은 인터랙션 오브젝트가 갑자기 전투 상호작용과 비슷한 행동을 하기 위한 온갖 기반을 새로 설계하고 개발할 필요가 없습니다. 하지만 여러 프로젝트에 걸쳐 이런 협업이 원활하게 이루어지는 사례는 거의 본 적이 없습니다. 항상 인터랙션 오브젝트에 전투 비슷하게 보이는 상호작용을 욱여 넣기 위해 고통 받는 담당자들이 있을 뿐입니다.

근본적으로 MMO를 기반 장르로 삼은 프로젝트에서 ‘전투’로 분류되곤 하는 핵심 메커닉의 범위를 확장해야 한다고 생각합니다. 전투를 담당하는 부서는 아주 쉽게 새로운 클래스, 이들이 사용할 새로운 스킬, 새로운 스킬을 뒷받침할 다양한 개념, 애니메이션 시스템, 상황에 따라 올바르게 표시되어야 하는 이펙트를 관리하는 상태 개념, 이 모든 시청각 효과의 결과로 상대와 주고 받는 대미지 연산 등에 집중하곤 합니다. 그런데 이 너절한 정의를 조금 정리하면 게임에 등장하는 여러 객체 사이의 상호작용으로 정의할 수도 있습니다. 넓게 해석한 객체 사이의 상호작용에는 전투 방식의 상호작용과 비전투 방식의 상호작용이 있으나 실은 비전투 방식의 상호작용은 전투 방식의 상호작용에 기반하되 잘 사용되지 않는 일부 개념과 이 개념을 지탱하는 기능을 건너 뛴 모양으로 볼 수 있습니다. 이 관점에서 나무를 베는 행동은 상호작용 대상의 종류에 따라 플레이어가 무기를 사용하는 시스템을 건너 뛴 채 나무를 공격하는 도끼를 포함한 별도의 애니메이션을 재생하는 것으로 해석할 수 있고 나무가 쓰러지는 이유는 비전투 상호작용의 결과이기 때문이 아니라 간략화된 전투 행동에 의해 체력이 0이 되었기 때문으로 해석해 설계할 수 있습니다. 바리케이드 역시 마찬가지로 간략화된 전투 상호작용에 기반해 바리케이드를 파괴하게 만드는 일은 전투 기능이 아예 없던 인터랙션 오브젝트에 전투 기능을 추가하는 것에 비해 이미 온전한 전투 기능을 갖춘 몬스터의 일부 기능을 생략하면 되기 때문에 압도적으로 설계와 개발이 단순해집니다. 없던 체력 표시, 없던 피격 애니메이션, 없던 체력과 없던 방어력을 추가하는 대신 있던 이동 기능, 있던 네임플레이트, 있던 공격력, 있던 무기 개념을 생략하는 편이 전체 업무를 훨씬 단순하게 만듭니다. 이런 이유로 전투 행동으로 파괴해야 하는 바리케이드는 전투 행동의 대상인 몬스터에 기반해 만들어져야 하고 이를 위해 핵심 메커닉의 범위를 확장해 각 부서가 담당할 업무를 조정해야 합니다.

게임 상에 일어나는 다양한 종류의 상호작용을 전투와 비전투로 구분하는 순간 게임 상에 앞으로 나타날 다양한 요구사항에 낮은 비용으로 기민하게 반응할 기회를 놓칠 가능성이 높습니다. 분명 팀에는 타격감을 유지하고 올바른 대미지를 연산하며 적절한 보상을 지급하는 일을 항상 고민하는 전문가가 있을 겁니다. 이들에게 또 다른 종류의 상호작용을 만들어내는 업무를 담당하게 하는 것은 이상하지 않습니다. 이 상황을 이상하게 만드는 것은 게임에 등장하는 여러 객체 간의 상호작용을 전통적인 전투와 비전투로 분류하려는 현대적인 요구사항을 처리하기에 적절하지 않은 조직 구분 뿐이라고 생각합니다. 이 관점에 근거해 바리케이드를 전투 행동을 통해 때려 부수기를 원한다면 바리케이드는 인터랙션 오브젝트가 아니라 몬스터로 만들어져야 합니다. 이런 접근을 확장한다면 나무나 약초 역시 별도의 인터랙션 오브젝트가 아닌 전투 행동에 기반하되 간략화된 몬스터에 근거해 설계할 수 있는데 이 결과 게임으로부터 인터랙션 오브젝트라는 개념이 필요 없어질 수 있고 장기적으로는 이런 접근이 현대의 다양한 상호작용 요구사항에 더 기민하게 대응하면서도 시스템의 복잡도를 낮추는 방법이라고 생각합니다. 일단 나무를 그렇게 만들어야 할 지는 아직 확신하지는 못하겠습니다. 하지만 바리케이드는 전투 시스템이 기반해 만들어야 합니다.