전투 중 다른 버튼이 안 눌리게 해주세요

시야가 좁아지면 게임 전체의 일관성을 깨고 개발 비용을 올리는 이상한 요구사항을 말할 수 있습니다. 누구나 그럴 수 있어 주의해야 합니다.

전투 중 다른 버튼이 안 눌리게 해주세요

언처티드 4를 플레이하며 언처티드4와 연속적인 세계, 언처티드4와 노동집약적 개발 이야기를 했습니다. 요즘도 가끔 유튜브 영상 추천에 게임 역사상 최고의 추격전 경험이라는 영상으로 언처티드 4의 그 대단한 추격 정면이 나타나곤 합니다. 개인적으로 종종 다른 대단한 게임이나 다른 게임의 어떤 대단한 경험을 마주할 때마다 제가 만약 이 게임을 경영진에게 피칭하는 입장이라면 과연 뭐라고 말할지, 또 경영진으로부터 무슨 말을 들을지 상상해 보곤 합니다. 언처티드 4를 개발하고 싶어 경영진 앞에서 피칭한다면 과연 무슨 이야기를 할 수 있을까요. 지금부터 엄청난 시행착오를 통해 최고의 게임 플레이를 만들어낼 작정인데 이 과정에서 다른 게임 10개를 만들기에 충분한 제작비를 사용할 작정이라고 솔직하게 이야기하면 과연 경영진들은 무슨 반응을 보일까요. 과연 저는 죽지 않고 무사히 그 방에서 제 발로 걸어서 나올 수 있을까요? 또 제가 제 자리로 돌아갈 때 제 자리가 온전히 유지되어 있을까요? 이런 생각을 하다 보면 시장의 다른 탑 클래스 플레이어들이 정말 대단한 경험을 만들어 당당하게 고객들을 대면할 때 저 자신은 점점 더 위축되는 느낌을 받습니다. 그렇다고 이런 현실에 불만을 가지고 있지는 않습니다. 저는 저를 포함한 우리들의 평균 만큼만 시장에 기여할 수 있음을 모르지 않기 때문입니다. 하지만 종종 그런 대단한 경험을 만들어 업계에 전설로 기록되는 시장의 다른 플레이어들을 보며 저들은 대체 경영진을 어떻게 대면했기에 저런 경험을 만들 수 있었을까 하는 생각을 반복할 뿐입니다.

갑자기 언처티드 4 이야기를 꺼낸 이유는 이 게임이 여러 스테이지로 구성되어 있음에도 각각의 스테이지 사이에 시스템 상의 일관성이 상당히 적을 수도 있겠다는 느낌을 많이 받았기 때문입니다. 여러 스테이지로 구성된 여느 게임들은 게임 전체의 규칙을 구축한 다음 그 규칙을 깨지 않는 범위 안에서 스테이지를 제작하곤 합니다. 가령 스타크래프트의 캠페인을 생각해 봅시다. 시나리오 전개에 따라 다른 스테이지에 나타나지 않는 건물이나 괴물이 등장하는 경우가 없지는 않습니다. 하지만 이들도 근본적으로 다른 유닛들과 똑같은 규칙을 따릅니다. 체력이 있고 공격을 받으면 체력이 줄어들며 체력이 0이 되면 파괴되거나 사라집니다. 게임 전체를 관통하는 근본적인 규칙에 기반해 때때로 다른 경험을 주기 위한 방법을 고안해 내지만 근본적인 규칙을 건드리지는 않습니다. 가령 게임 상에서 좀 더 강조하고 싶은 부분이 있다 하더라도 장르의 특성을 감안해 단 한 번도 게임 중에는 카메라를 움직이지 않습니다. 이 장르에서 카메라 위치는 고객이 유닛을 조작하며 화면 상에서 유닛의 사거리를 파악하는데 필요한 정보를 결정하는 가장 중요한 요소이기 때문입니다. 만약 상대 유닛의 사거리 밖으로 정확히 이동을 명령하며 능숙하게 게임을 플레이하던 고객에게 갑자기 뭔가를 강조하기 위해 카메라 거리를 함부로 조정하면 이 고객은 이제 이전까지 능숙하게 플레이 하던 경험이 모두 망가져 의도하지 않은 나쁜 경험을 하게 됩니다.

그런데 언처티드를 플레이하며 여러 스테이지에 걸쳐 경비병들을 살피고 이들의 눈을 피해 몰래 움직이고 또 풀숲에 숨었다가 갑자기 튀어나와 이들을 처치한 다음 풀숲 안으로 끌고 들어가 적들이 자기 동료의 죽음을 눈치 채지 못하게 하며 어쩔 수 없을 때는 적들과 총격전을 벌이는 경험을 여러 스테이지에 걸쳐 하다 보면 적들이 일관성 있는 모양으로 움직이지 않는다는 느낌을 받습니다. 어떤 스테이지에서는 적들이 좀 더 가까운 곳 까지만 순회하기도 하고 또 다른 스테이지에서는 경비병들이 좀 더 길고 복잡한 경로로 순회하기도 합니다. 실은 각 스테이지의 레벨디자인에 따라 이런 설정을 적절히 조정해 가장 그럴싸해 보이는 움직임과 이에 따른 가장 그럴싸한 경험을 만들 수 있습니다. 그런데 이런 요소는 각 스테이지의 플레이 경험을 그럴싸하게 만들어주는 것이 사실이기는 하지만 각 스테이지에 따라 총을 쏴 경비병을 맞추거나 경비병들의 눈을 피해 몰래 이동하는 각각의 가장 작은 경험에는 일관성을 유지하지만 이들의 움직임을 고려한 전체적인 플레이에는 일관성을 유지하지 못합니다. 앞 스테이지에서 체득한 경비병의 움직임은 분명 이번 스테이지의 이 모서리를 돌아 계속해서 이동할 거라고 예상했지만 경비병들은 이상하게도 예상보다 훨씬 짧은 거리만을 이동한 다음 풀숲 속에 숨은 저로부터 등을 돌리고 다시 돌아가 버립니다. 물론 이런 움직임 덕분에 저는 굳이 경비병에게 총을 쏘는 위험을 감수하지 않고서도 적절히 성 안으로 이동할 수 있습니다만, 뭔가 찜찜한 느낌이 드는 것을 멈출 수 없습니다.

많이 오래된 게임인 메탈기어솔리드 2를 잠깐 생각해봅시다. 이 게임의 전반부는 메탈기어를 싣고 강을 거슬러 오르는 배 안에 잠입해 메탈기어 사진을 찍어 오는 미션을 수행합니다. 이 전반부는 다시 폭우가 내리는 배 바깥과 배 안으로 나뉘는데 양쪽 공간 모두에 공간을 지키는 경비병들이 순회하고 있습니다. 이들의 움직임은 레벨디자인에 따라 달라지고 또 실제로 레벨디자인에 따라 이동 경로가 미리 설정되어 있지만 이 경로 자체가 미리 정해진 규칙을 크게 벗어나지 않습니다. 경비병 각각에게는 자신이 순회할 경로가 설정되어 있고 이 경로는 레벨디자인 상에서 한 구역을 벗어나지 않습니다. 배 밖에서 출입구를 열고 들어간 다음 이어지는 내부 공간은 복도와 문, 파티션으로 나뉜 선실, 이어지는 복도와 계단으로 구성된다면 경비병 각각은 복도와 문, 선실 내부, 이어지는 복도와 계단으로 공간을 구분해 각각의 공간만을 순회하게 만들어져 있습니다. 그래서 첫 복도에서 경비병의 눈을 피해 선실로 이동하면 이제 선실 안을 순회하는 경비병에게만 집중하면 됩니다. 이 규칙이 유지되는 한 선실을 순회하는 경비병에 집중하다가 갑자기 복도로부터 문을 열고 들어온 복도 담당 경비병에게 발각되어 곤란한 상황에 빠질 걱정을 하지 않아도 됩니다. 실제 세계에서는 이렇게 행동하지 않겠지만 이 가상 세계에서 주인공은 전설적인 잠임 임무의 귀재 솔리드 스네이크인 만큼 이런 사소한 문제로 발각될 가능성을 없애 주는 것이 그를 그 답게 만들 현명한 설정이라고 생각합니다. 이런 규칙은 게임 후반으로도 거의 같은 규칙으로 이어집니다. 후반에 난이도가 높은 곳들이 나타나지만 경비병과 함께 감시카메라가 여럿 등장하고 총을 쏘는 터렛이 등장하는 식으로 규칙을 추가할 분 기존에 만들어 놓은, 그리고 고객이 지금까지 익숙해져 온 규칙을 건드리지는 않습니다. 아무리 후반에 나오는 대단한 보스의 정예 병력이라도 자신의 임무 반경을 절대 벗어나지 않아 일관된 플레이에 집중할 수 있습니다.

반면 언처티드 4에서 경험한 적들의 행동은 이런 제 예상과는 상당히 달랐습니다. 사실 저는 이 게임이 애초에 각 스테이지마다 서로 다른 레벨디자이너가 스테이지 별로 최상의 경험을 주는데 집중하는 방식으로 개발되었다는 사실을 이미 알고 있습니다. 각 스테이지는 스토리 상 스테이지가 만족해야만 하는 최소한의 목적이 결정되어 있을 뿐 그 안에서 일어나는 모든 일은 핵심 레벨디자이너의 결정에 따릅니다. 그래서인지 적들의 움직임은 앞서 잠깐 설명한 대로 스테이지마다 상당히 다릅니다. 어느 스테이지에서 적들은 일단 총을 쏘기 시작하면 공격적으로 달려들기도 하지만 또 다른 스테이지에서는 방어 지점을 사수하며 좀처럼 앞으로 나오지 않아 서로 엄폐물을 사이에 두고 총알을 주고 받는 교착 상태에 빠지기도 하는데 아마 이런 경험은 처음부터 의도된 것일 수 있습니다. 또 스테이지마다 상당히 다른 레벨디자인은 적들이 순회할 구간을 예상하기 어렵게 만듭니다. 어떤 스테이지에서는 지형 사이에 있는 큰 고저차가 있는 부분을 기준으로 적들이 이를 침범하지 않고 순회하는가 하면 또 다른 스테이지에서는 분명 이 고저차를 오르내리는데 사용할 목적으로 별도의 애니메이션을 만들었을 것이 분명한 극히 자연스러운 모습으로 지형을 오르내리며 예상보다 훨씬 넓은 지역을 순회합니다. 이 장면들은 너무나 자연스럽게 만들어져 있어 이들이 이전 스테이지와 전혀 다른 동작을 하고 있음에도 이를 별로 이상하지 않게 느끼도록 만들지만 규칙에 따라 적들의 움직임을 예상하려고 시도하던 제 입장에서는 잠깐 당황하게 만듭니다. ‘아. 이 게임은 원래 이랬지’ 하고 이들의 움직임을 납득하고 스테이지에 따라 새로 이들의 움직임을 파악하는데 시간을 보내야 합니다.

처음부터 이들의 각기 다른 움직임을 파악하는 것 자체가 게임 플레이의 일부인 사례도 있습니다. 가령 호라이즌 제로 던에서는 플레이어의 능력 중 적들이 이동할 경로를 알아내는 것이 있습니다. 개활지에서 딱히 지형으로 이들의 이동 경로를 예측하기 어려운 상황에서 이 능력을 사용하면 적들이 이동할 경로가 표시되고 이를 참고해 아무 교전 없이 개활지를 지나갈 수 있습니다. 또 히트맨 시리즈는 처음부터 거의 모든 캐릭터들이 각 스테이지마다 전혀 일관되지 않은 움직임을 하게 만들어 놓고 이들의 움직임을 예측하기 보다는 반복을 통해 이들의 움직임을 완벽하게 습득한 다음 이에 따라 점점 더 불가능해 보이는 플레이를 요구합니다. 각 스테이지의 레벨디자인, 시나리오에 따라 적들은 이전 스테이지의 경험과 완전히 다른 모양으로 움직입니다. 어떤 경비병들은 자신들이 지켜야 하는 출입구에서 도통 움직이지 않거나 출입구가 보이는 짧은 복도를 서성이는 수준으로 움직일 뿐이지만 제가 죽여야 하는 타겟은 상황에 따라 아주 넓은 범위를 이동해 이들의 움직임을 주의 깊게 관찰하지 않으면 애초에 타겟이 어디 있는지조차 알기 어렵습니다. 디아애나가 이들의 움직임에 대한 힌트를 주긴 하지만 이들의 움직임은 이전 스테이지들로부터 쌓은 경험에 의해 예측하는 것이 아닌 반복 플레이에 의해 미래에 일어날 이들의 움직임을 미리 알고 있는 상태로 내 행동을 완벽하게 결정하는데 가깝습니다. 그래서 최고 수준의 히트맨 플레이 영상을 보면 아무 변장도 없이 그냥 총 한 자루 덜렁 들고 복도를 활보하는 것처럼 보이지만 그 누구도 에이전트 47을 인식하지 못하는 언뜻 보면 거의 버그처럼 보이는 플레이를 만들어냅니다.

MMO 장르에서는 레벨디자인에 대한 접근이 훨씬 단순한 편입니다. 가령 몬스터들은 지정된 경로를 순회하기보다는 지정된 범위 안에서 랜덤으로 다음 위치로 이동하기를 반복합니다. 그저 몬스터를 배치할 때 몬스터가 나타날 자리, 그리고 그 주변에 몬스터가 로밍할 범위를 정해 놓으면 몬스터가 스폰된 다음 지정된 반경 안에서 그저 무작위 위치를 선택해 배회하기를 반복할 뿐입니다. 여기에는 레벨디자인 상의 의도나 전략적 접근이 개입할 여지가 없습니다. 이렇게 단순한 규칙만을 사용한 가장 큰 이유는 MMO 게임의 주로 필드는 멀티플레이 환경에서 레벨디자인을 감안한 의도에 맞는 플레이를 만들어내기 아주 어렵기 때문입니다. 또한 몬스터는 앞서 설명한 여러 게임에 등장하는 적들처럼 이들을 처치하거나 피하는 대상으로 보기 보다는 플레이어의 성장을 위해 항상 전투를 벌여 경험치를 습득해야 하는 대상에 불과합니다. 이들을 전략적으로 피할 필요가 없습니다. 굳이 조금 다른 사례를 억지로 찾는다면 핵 앤 슬래시 스타일의 게임플레이에서는 반대로 적들을 몰아 한 방에 처치하는 방식으로 한 번에 높은 보상을 획득하는 사례가 있기는 합니다. 하지만 이런 스타일로 플레이 하기를 원하지 않거나 이 상황이 멀티플레이 환경에 놓인다면 높은 확률로 게임디자이너가 예상한 플레이를 만들어낼 수 없기에 몬스터들은 멍청하게 주변을 배회할 뿐이고 또 이보다 더 복잡한, 아니면 정교한 이동 메커닉을 도입할 필요가 없습니다. 몬스터 로밍의 중요성에 이야기했듯 이런 극히 단순한 움직임만으로도 필드에 생동감을 불어넣을 수 있기에 이런 단순한 메커닉이 나쁘다고 말하기는 어렵습니다.

지금까지 몇몇 게임의 사례를 들어 서로 다른 스테이지에서 게임에 등장하는 여러 개체들이 정해진 규칙에 따라 행동하며 고객의 플레이 경험을 고도화하는 관점으로 사용되거나 스테이지에 따라 개체들이 서로 다르게 움직이며 시각적으로 가장 훌륭한 경험을 만들어내는 대신 스테이지마다 서로 다른 행동을 처음부터 다시 습득하도록 하거나 애초에 스테이지마다 비슷한 규칙에 기반한 경험을 의도하지 않고 스테이지를 반복함에 따라 이들의 움직임을 이전 플레이 경험에 기반해 예측하기를 의도한 플레이를 살펴봤습니다. 또 여기에 MMO 게임에서 이들 중 어느 전략도 명시적으로 선택하지 않고 고대로부터 전해 내려오는 가장 단순한 이동 방식을 지금도 고수하고 있는 현실과 이렇게 하는 이유, 그리고 이 정도 수준으로도 꽤 그럴싸한 시각적 경험을 만들어낼 수 있음을 살펴봤습니다. 이런 여러 가지 접근 방법이 있는데 이들의 핵심 중 하나는 한 게임은 이들 중 어느 한 가지 접근만을 선택해야 한다는 점입니다. 모든 유닛들이 항상 정해진 규칙에 따라 움직이기로 했다면 게임이 끝나는 순간까지 이 규칙이 깨지면 안됩니다. 스타크래프트에서 가끔 이 규칙을 깨는 유닛이 등장해야만 할 때는 이들을 영웅 유닛으로 구분해 나머지 유닛들과 다른 행동을 하는 당위성을 부여하고 이들이 예상과 다른 행동을 하더라도 이 상황이 일시적이라는 사실을 고객에게 설명합니다. 메탈기어솔리드에서도 가끔 나머지와 다른 행동을 하는 유닛이 등장하는데 이들은 명시적으로 다른 행동을 하는 이유를 시청각적으로 설명합니다. 가령 단 하나 밖에 없는 출입구 양쪽에 서서 절대 빈 틈을 보이지 않을 것 같은 병사라도 한참 쳐다보고 있으면 이들도 사람인지라 갑자기 위장이 뒤틀리며 화장실에 가야만 할 것 같은 소리를 내며 예정에 없이 자리를 떠나기도 하는데 이 움직임은 이 병사의 행동과 청각 효과를 통해 설명됩니다. 같은 게임이 설명 없이 서로 다른 두 가지 이상의 규칙을 한 번에 사용하지 않습니다. 이는 고객이 게임에 익숙해져 몰입할 수 있게 만드는 중요한 장치입니다.

한번은 모바일 환경에서 MMO 게임을 만들 때 한창 중요한 던전을 플레이 하다가 여러 가지 이유로 플레이가 중단될 때 처리 방법을 결정해야 했습니다. 아. 혹시나 해서 굳이 설명하면 지난 사과문따라할 때는 왜 그랬는지 알고 따라해야 합니다 끝부분에서 설명한 것과 같이 이 이야기들은 시공간 상에서 현실에 해당하는 이야기가 아니라는 점을 말해 두겠습니다. 모바일 환경은 처음부터 아무때나 플레이가 중단될 수 있음을 감안해 만들기 시작했습니다. 초반에는 이 사실을 충분히 감안해 플레이가 중단될 때 규칙을 훨씬 느슨하게 만들었습니다. 가령 던전은 중간에 플레이가 중단되더라도 다시 중단된 지점부터 이어 진행할 수 있는 식으로 만들곤 했습니다. 하지만 이렇게 만드는데 상당히 높은 비용이 필요했습니다. 기술적으로도 중단된 던전을 고객이 돌아올 때를 대비해 한동안 유지해야 했기 때문에 비용이 필요했고 또 이렇게 던전이 중단된 상태로 유지될 때 의도하지 않은 동작에 의한 어뷰징이 일어나지 않도록 하기 위한 게임디자인 상의 비용도 필요했습니다. 한동안 여기에 높은 비용을 지불하는 사이에 세월이 흘러 기술이 발전해 어지간한 상황에서 더 이상 모바일 환경이라도 접속 단절에 의한 플레이 중단을 크게 의식하지 않아도 될 만한 상황이 되었습니다. 누가 맨 처음이었는지는 알기 어렵지만 시장의 의미 있는 플레이어가 마치 과거의 MMO 게임들이 그랬던 것처럼 던전 플레이 도중 어떤 이유로든 플레이가 중단되면 던전 플레이를 취소하고 지금 까지 진행한 플레이를 무효 처리하는 방식을 선택하기 시작했고 모두가 비슷한 정책을 따랐습니다. 이제 플레이 중인 던전의 중간 상태를 저장한 채 다음 점검 시간까지 이 데이터를 유지하느라 하드웨어 자원을 소모할 필요가 없었고 던전 진행이 중단되면 입장 자원을 돌려주고 그대로 던전을 종료하면 됐기 때문에 규칙을 만들기도 훨씬 쉬워졌습니다. 다만 고객들은 의도하지 않은 시점에 플레이가 중단되면 입장 재화를 돌려 받고 또 그 시점까지 획득한 재화를 획득하기는 하겠지만 그 시점까지 투입한 시간에 대한 정당한 보상은 획득하지 못하게 됩니다.

이런 상황에서도 여전히 막을 수 없는 문제가 하나 있었는데 이는 고객들이 우리 게임을 플레이 하는데 사용하는 기계가 근본적으로 전화라는 사실로부터 기인합니다.지난 2007년 스티브잡스가 정의한 아이폰은 아이팟, 폰, 인터넷 커뮤니케이터를 하나로 모은 장치입니다. 이제 아이팟은 존재하지 않고 인터넷 커뮤니케이터는 웹브라우저로부터 각각의 앱에 녹아들어 존재하면서도 눈에 잘 띄지 않는 모양으로 변했지만 여전히 전화 기능은 처음 아이폰이 소개될 때와 거의 같은 모양으로 유지되고 있습니다. 우리들은 시간이 흐르며 점점 더 전화를 덜 사용하고 있다고 알려졌지만 어쨌든 이 기계는 근본적으로 전화 기능이 있고 전화는 메일이나 메시지와 달리 그 기계로 뭘 하고 있었든지간에 기계 전체가 갑작스레 전화를 독점적으로 처리하기 위한 상태로 변합니다. 때문에 고객이 뭘 하고 있었든, 특히 중단되지 않았으면 하는 던전을 플레이 하는 도중 전화가 걸려 와 기계 전체가 전화를 처리하기 위한 독점적인 상태로 바뀌면 이제 우선순위가 낮아진 게임의 던전 플레이는 유지될 수도 있고 그렇지 않을 수도 있습니다. 만약 스마트폰 운영체제가 컴퓨터 운영체제와 비슷한 방식으로 백그라운드에 들어간 애플리케이션에 할당된 자원을 유지하며 동작한다면 게임 입장에서는 잠기 플레이어가 아무 행동도 하지 않고 제자리에 가만히 서 있는 상태로 끝날 수 있습니다. 하지만 모바일 운영체제들은 이들이 실행되는 하드웨어가 이제 컴퓨터 운영체제와 비슷한 수준에 다다랐음에도 근본적으로 이들이 배터리에 의해 구동된다는 점 때문에 백그라운드로 들어간 애플리케이션에 할당된 자원을 훨씬 더 적극적으로 회수하는 방식으로 동작하곤 합니다. 이제는 컴퓨터용 운영체제나 애플리케이션들도 사용 경험을 개선하기 위해 오히려 모바일 운영체제와 비슷한 방식으로 동작하기도 합니다. 이런 상황에서 전화 통화를 마친 다음 전화 앱이 종료될 때 백그라운드로 들어간 게임 애플리케이션이 던전에 접속된 상태를 유지하고 있을지 그렇지 않을지 단언하기 어렵습니다. 우리들이 여전히 처음 모바일 게임을 만들 때처럼 게임이 언제든지 종료되거나 연결이 끊길 수 있다는 사실을 감안하고 있었다면 어떻게 비벼볼 여지가 있었겠지만 그러지 않기로 결정한 이상 게임은 랜선을 뽑고 다섯 까지 센 다음 다시 랜선을 꽂았을 때 게임이 어떻게 동작할지를 예측하는 것과 비슷한 신세가 되어 버렸습니다.

어떤 던전은 중간에 플레이가 끊겨도 플레이를 복구하기 쉬운 모양일 수 있습니다. 그저 던전 안에서 지금가지 죽인 몬스터, 습득한 보물상자들의 상태를 저장하고 플레이어의 현재 위치를 저장하고 있다가 던전을 다시 이 상태로 복원할 수 있고 이 과정은 꽤 간단합니다. 하지만 현대에 가까워지며 던전 플레이 경험은 점점 더 풍부하게 변했습니다. 어떤 던전은 레버를 잡아당겨 공간 안에 가득 차 있던 물을 빼 내고 그 이전에는 진입할 수 없던 지역에 진입하는 방식으로 진행되는데 이런 요소가 등장하면 상태를 저장해야 할 대상이 더 많아집니다. 일단 물을 빼기 위해 잡아당긴 레버의 상태, 물이 빠진 상태, 물이 빠짐에 따라 이전에는 이동할 수 없었지만 이제 이동 가능하게 된 내비게이션 메시의 상태 따위를 저장해야 합니다. 이들 중 어느 하나만 잘못되어도 해저2만리 마냥 물 속을 걸어다니며 몬스터와 싸우거나 레버가 이미 당겨져 있어 더 이상 조작할 수 없지만 물은 빠져 있지 않은 상태의 던전을 마주할 수도 있습니다. 고민 끝에 던전에 명시적인 체크포인트를 만들기도 합니다. 던전의 특정 지점에 다다르면 그 이전의 상태를 모두 잊고 현 체크포인트부터 일어나는 플레이에 집중하게 만드는 식입니다. 체크포인트 방식을 사용하면 던전이 중단되더라도 이를 복구할 때 이전 체크포인트부터 다시 시작하면 되고 각 체크포인트에서 시작할 때 던전의 상태를 미리 정의할 수 있습니다. 이전에는 플레이어의 이전 행동에 따라 던전 상태를 저장해야 했다면 이제는 체크포인트에 따라 던전 상태를 미리 정의하고 이 상태로 복구하기만 하면 되기 때문에 던전을 이어서 플레이 하도록 만들 난이도가 크게 내려갔습니다. 게다가 여전히 뒤로 돌아갈 수 없도록 다리를 무너뜨리는 연출을 사용하더라도 복원할 때 이미 무너진 다리 앞으로 복원해 문제가 일어나는 상황을 겪을 일이 거의 없어졌음은 물론입니다.

이런 처리 방식의 변화를 살펴보면 더 느슨하게 정해진 규칙에 기반해 게임 메커닉을 운용하다가 점점 더 운용 난이도가 낮은 방식으로 변하고 있다는 사실을 알 수 있는데 여기에는 게임 전체에 걸쳐 좀 더 일관된 규칙을 적용해 규칙에 따르면 훨씬 더 적은 비용으로 예외 상황을 처리하고 또 훨씬 적은 비용으로 고객들의 플레이 경험을 일관된 수준으로 유지할 수 있기 때문입니다. 가령 어느 프로젝트에서는 던전 플레이가 중단될 때를 대비해 던전에서 자신의 상태를 저장해야 하는 모든 요소를 명시적으로 정의해야만 했습니다. 처음에는 몬스터, 보물상자, 문 따위의 상태를 저장해야 한다고 선언하는 수준으로 요구사항을 달성할 수 있을 거라고 예상했지만 현대 MMO 게임의 던전은 멀티플레이 요구사항이 최소화된 상황을 적극적으로 활용해 온갖 풍부한 연출과 비가역적인 던전의 변화를 적극적으로 사용하기에 예상한 것보다 훨씬 더 많은 요소들을 명시적으로 상태롤 유지해야 한다고 선언해야만 했습니다. 가령 플레이에 영향을 미치지는 않지만 던전의 상황 전개 상 딱 한 번만 흘러야 하는 배경의 용암 줄기를 재생하는 시퀀스의 재생 상태를 저장하지 않으면 이 던전을 복원할 때 분명 진행 상 더 이상 흐르지 않아야 하는 용암 줄기가 또 다시 흐르는 상태를 만들 수 있었습니다. 그래서 몬스터가 죽었는지 여부, 보물상자를 이미 획득했는지 여부, 문이 열렸는지 여부와 같이 확실한 대상 뿐 아니라 상황에 따라 특정 시퀀스가 이미 재생되었는지 여부 같은 직관적이지 않은 것 하나하나를 지정해야만 했고 던전 제작 비용이 크게 상승합니다. 하지만 체크포인트를 도입해 던전 전체를 대상으로 모든 개체의 상태를 저장할 필요가 없어졌습니다. 이는 던전은 오직 체크포인트 구간 단위로만 작동하고 이 사이에 중단이 일어나면 상태를 복원하는 대신 체크포인트 단위로만 상태를 복원한다는 게임 전체에 걸친 극도로 일관된 규칙을 따라야 한다는 지금까지의 게임디자인, 요구사항 정의 규칙이 추가된다는 의미입니다.

이 점을 잘 이해하면 아무리 긴 던전이라도 결국 체크포인트 구간 단위의 훨씬 더 작은 던전의 연속이라는 방식으로 던전을 이해하게 되어 이에 따라 연출 등 풍부한 경험을 만들 수 있지만 이를 이해하려 하지 않으면, 혹은 이해하지 못하면 여전히 체크포인트를 가로질러 상태를 저장하기를 원하며 이를 위해 예외 상황을 정의하고 새로운 기능을 만들어야 한다고 주장하는 사람들도 나타나기 마련입니다. 또한 던전 안에서 체크포인트의 논리적인 역할과 물리적인 위치 사이의 차이를 이해하지 못해 이를 착각한 이상한 요구사항을 내는 일도 종종 일어났습니다. 이렇게 기능에 대한 서로의 이해가 다른 상황에서 비가역적으로 던전 모양을 바꾸는 지나가고 나면 부서지는 다리나 한 번 타고 내려가면 반대 방향으로는 돌아올 수 없는 엘리베이터 같은 메커닉이 포함된 던전의 체크포인트를 잘 못 배치한 다음 이 상황에서 플레이 도중 전화가 걸려와 던전이 중단된 다음 이를 다시 복원하려 할 때 처리 방법이 문제가 될 수 있습니다. 이미 체크포인트 개념이 도입되어 여러 던전에 적용된 다음에도 마찬가지입니다. 체크포인트의 도입 이후 던전은 오직 체크포인트 단위로만 상태를 저장할 수 있습니다. 이는 뭔가 큰 제약처럼 보이지만 딱히 그렇지도 않습니다. 이 개념을 도입하기 전이나 후나 던전들은 여전히 다양한 연출과 풍부한 경험을 변함없이 주도록 만들어지고 있었습니다. 만약 플레이 도중 전화가 걸려 와 플레이가 중단 되었다면 실은 그냥 이전 체크포인트로 복원해 거기부터 다시 시작하면 될 일입니다. 그러나 이 개념을 잘 이해하지 않는다면, 또 게임 전체에 걸쳐 일관된 규칙을 적용하는 관점에서 게임을 설계해야 한다는 의식이 별로 없다면 ‘그럼 던전을 플레이 하는 도중 전화가 걸려오더라도 이를 무시할 수 없을까요?’ 같은 만약 실행한다면 앱스토어 리뷰에 리젝 되기 딱 좋은 의견을 내게 됩니다.

멋진 퀘스트 경험을 하게 만들기 위해 퀘스트 이외의 게임 규칙은 모두 예외로 만들 수 있다고 생각하기 쉽습니다. 가령 간신히 보스를 처치하며 시작된 컷씬에서 스토리의 가장 중요한 비밀이 밝혀지는 장면을 재생하고 있는데 게임 상에서 죽은 보스가 아이템을 드랍하고 이를 획득하면 아이템을 획득 인터페이스가 화면에 나타나 가장 중요한 순간을 방해할 수 있습니다. 이 상황에서 퀘스트 경험을 중요하게 생각하는 관점에서는 이 컷씬이 재생될 때 컷씬 밖에서 일어나는 상황의 변화에 따른 인터페이스 변화를 생략해야 한다고 생각할 수 있고 이는 이 관점에서는 올바릅니다. 지금 출생의 비밀이 밝혀지려는 순간인데 아이템 몇 개 획득했다는 정보가 이 순간의 경험을 망치도록 두는 것은 결코 올바른 접근이 아닙니다. 그런데 여기서 조금 더 생각해보면 이런 컷씬 경험을 중요하게 생각하는 게임들 상당수는 여느 MMO 게임에서 일어나는 아이템 획득 같은 동작을 반드시 고객의 명시적인 조작에 의해서만 일어나게 만들어 놓곤 합니다. 가령 갓오브워에서 한 스테이지를 클리어 하는 동안 적들은 인터페이스에 표시할 만한 핵심 보상을 드랍하지 않습니다. 오직 그 스테이지의 보스라고 생각되는 몬스터를 처치한 다음 그가 가로막고 있던 공간에 보물상자가 놓여 있고 이를 명시적으로 조작하기 전까지는 보상을 획득하지 않습니다. 그래서 몬스터를 처치한 다음 이어지는 컷씬에서 갑자기 죽은 몬스터로부터 아이템을 먹고 이들이 인터페이스에 표시되는 문제가 일어나지 않습니다. 혹은 앞서 소개한 언처티드 시리즈에서는 컷씬 구간과 플레이 구간이 서로 완전히 분리된 모양으로 만들어져 있습니다. 사실 이런 디자인은 싱글플레이 게임이기 때문에 쉽게 내릴 수 있는데 일단 컷씬이 시작되면 컷씬 바깥의 게임은 완전히 멈춥니다. 바깥에서 몬스터가 죽을 일도, 몬스터가 죽으며 아이템을 드랍할 일도 없습니다. 때문에 컷씬을 방해할 것은 아무 것도 없습니다.

하지만 우리들이 주로 만드는 MMO 게임은 어떤 상황에서도 게임은 결코 멈추지 않습니다. 여러 명이 플레이 하는 던전에서 보스를 쓰러뜨린 다음 보스가 쓰러지며 저 깊은 심연의 나락으로 무너져 내리는 대단한 컷씬을 보는 사이에도 게임은 멈추지 않으며 컷씬에 등장한 보스와 구분되는 실제 게임에서 지금까지 함께 전투한 그 보스가 죽으며 아이템을 드랍 하고 마침 그 자리에 서 있던 플레이어가 아이템을 먹으면 이 대단한 컷씬을 재생하는 도중에도 게임의 당연한 규칙에 따라 아이템을 획득했음을 컷씬 위에 인터페이스로 표시할 수밖에 없습니다. 컷씬의 온전한 경험을 중요하게 생각한다면 일시적으로 이 컷씬을 재생할 때 컷씬 밖에서 일어나는 일로부터 비롯된 인터페이스를 표시하지 말아 달라고 할 수 있겠지만 이는 일시적이고 또 지나치게 단순한 해결 방법입니다. 굳이 말하자면 해결 방법이라고 말할 수도 없습니다. 우리들이 언처티드 시리즈를 만들 때처럼 매 스테이지마다, 매 상황마다 그 상황에 최적화된 모습으로 각각의 요소와 기능을 정의할 수 있다면 이 생각은 올바르지만 우리들이 만들고 있는 게임은 그렇지 않습니다. 우리가 만드는 게임은 오히려 앞서 예를 든 게임 전체에 걸쳐 결코 일관된 규칙을 바꾸지 않는, 카메라 위치를 절대로 바꿔서는 안되는 스타크래프트의 사례에 더 가깝습니다. 이런 제약 속에서 멋진 퀘스트 경험, 컷씬 경험을 제공하고 싶다면 이에 맞춰 게임 플레이와 컷씬 재생이 일어나는 공간을 물리적으로 완전히 분리하거나 갓오브워 사례처럼 명시적인 행동에 의해서만 게임에 상태 변화가 일어나도록 하는 좀 더 근본적인 게임 규칙의 변화를 함께 제안해야만 합니다. 그저 이 순간에 인터페이스가 나타나지 않도록 하는 요구사항은 대규모로 컨텐츠를 만들어 고객들의 소비 속도와 경쟁해야만 하는 이 장르에서 개발 비용을 높여 결코 우리들이 고객들보다 더 빨리 게임을 만들 수 없을 가능성을 높입니다.

한번은 전투 경험을 테스트하던 누군가가 중요한 순간에 실수로 메뉴 버튼을 조작해 인터페이스를 열어 게임 화면을 가린 모양입니다. 만약 우리들이 싱글플레이 게임을 개발하고 있었다면 인터페이스가 열리는 순간 인터페이스 바깥의 게임 세계의 동작을 멈출 수 있습니다. 다만 우리는 멀티플레이 게임을 개발하고 있고 멀티플레이 환경에서는 게임이 결코 멈추지 않습니다. 고객이 메뉴를 열었다 해서 그 뒤에서 일어나던 게임 세계를 멈출 수 없습니다. 이런 상황에서 전투 도중 실수로 인터페이스를 조작하면 인터페이스가 열리지만 그 뒤에 있던 내 캐릭터는 갑자기 모든 공격을 멈춘 채 가만히 서서 몬스터에게 맞다가 죽음을 맞이합니다. 앞서 퀘스트와 컷씬 경험에 집중하다 보면 이상한 요구를 할 수 있는 것과 마찬가지로 이번에도 전투 경험에 집중하다 보면 이상한 요구를 할 수 있는데 이번에 나온 이상한 요구는 전투 도중에는 전투에 직접적인 연관이 없는 인터페이스가 조작되지 않도록 해 달라는 것이었습니다. 정확히는 전투 상황에서 메뉴 버튼이 눌리지 않게 해달라는 것이었는데 사실 이 요구사항은 기술적으로 달성이 그리 어렵지 않은 것은 사실입니다. 이미 게임의 여러 가지 메커닉들이 플레이어가 전투 상태인지 여부에 따라 실행되거나 실행되지 않습니다. 가령 게임에 따라 플레이어가 전투 상태일 때 무기나 방어구를 변경할 수 없는 사례가 꽤 있습니다. 좀 더 과거로 돌아가면 이를 허용한 게임이 많았지만 현대에 가까워질수록 이를 허용하지 않는 사례가 더 많은데 가장 큰 이유는 숙련된 사용자가 전투 도중 무기와 방어구를 변경하며 전투 시스템을 깨뜨릴 수 있기 때문입니다. 가령 속도가 느린 장검을 사용해 공격하면 1타, 2타는 쉽게 공격 가능하지만 대미지가 높은 3타는 정확한 순간에 조작해야만 대미지가 들어간다고 해 봅시다. 이에 비해 단검은 공격 속도가 빠르지만 대미지가 낮고 조작 난이도가 훨씬 낮습니다. 능숙한 사용자는 장검으로 1타, 2타에 걸쳐 비교적 높은 대미지를 준 다음 입력하기 어려운 3타를 이어 입력하는 대신 2타가 끝나기 직전 단검으로 무기를 바꿔 3타에 해당하는 시간 동안 빠른 공격을 퍼붓고 다시 장검으로 돌아와 강한 1타, 2타 공격을 하는 식으로 무기 별로 설정된 조작 시스템을 우회할 수 있습니다. 방어구에서도 비슷한 일이 일어납니다. 그래서 전투 도중에는 이런 행동을 할 수 없게 만들었습니다.

이미 전투 중일 때와 그렇지 않을 때를 구분해 여러 동작을 통제하고 있기에 전투 중일 때 어떤 버튼을 비활성화하거나 어떤 인터페이스가 열리지 않도록 할 수 있습니다. 그런데 이를 조금만 생각해보면 이상한 경험이라는 점을 알 수 있습니다. 가령 앞서 여러 차례 설명한 게임들을 생각해봅시다. 언처티드에서, 호라이즌 제로 던에서, 메탈기어솔리드에서 게임 속 상황에 따라 메뉴를 열 수 없는 경험은 확실히 이상합니다. 아무 때나 메뉴를 열 일은 얼마든지 있습니다. 싱글플레이 게임은 잠깐 게임을 멈추기 위해, 어떤 게임은 저장하기 위해, 또 설정을 변경하기 위해, 그래픽 옵션을 변경하기 위해, 또 어떤 게임은 상점을 이용하기 위해 인터페이스를 열 수 있습니다. 그런데 게임 속 상태에 따라 이런 인터페이스를 조작할 수 없게 만든다는 발상은 이 순간이 진행하고 있을 전투 경험을 온전하게 유지하는데는 도움이 되겠지만 이를 제외한 나머지 모든 상황을 이상하게 만듭니다. 누군가는 던전을 돌며 전투 하는 도중 긴 공격이 들어가는 틈을 타 재빨리 채팅 팝업을 열어 내 이번 던전 플레이가 끝나면 함께 다음 플레이를 하기로 약속한 누군가와 이야기하기를 원할 수 있습니다. 그런데 전투 도중에 인터페이스를 조작할 수 없게 만들면 물론 그 전투 상황 자체에 집중할 수는 있겠지만 멀쩡히 존재하는 인터페이스를 시시각각 조작할 수 없게 되는 상황에 놓이게 됩니다. 그렇다면 전투 중일 때 전투를 방해하기에 충분한 전체 화면 팝업을 열 수 없도록 하고 나머지 인터페이스는 조작할 수 있도록 하면 되지 않을까요? 그러면 그 나머지 인터페이스 중에서도 전투 조작을 방해하거나 방해하지 않는 성격의 인터페이스들이 있을텐데 이들 각각을 구분해 일관된 동작을 만들 수 있을까요?

애초에 일관되지 않은 동작을 만들려고 마음 먹는 순간 이 동작을 일관된 모습이라고 주장하기 위해 일관되지 않은 수많은 동작이 필요해집니다. 게임의 여러 요소들은 자신이 존재하는 이유, 자신의 규칙에 따라 동작하고 이 상태는 당연합니다. 문제를 해결할 때 이 규칙의 범위 안에서 해결하려 한다면 문제를 일으키지 않겠지만 문제를 해결하기 위해 게임 전체에 걸친 규칙에 손을 대려고 하는 순간, 자신이 처한 상황이 게임 전체의 일관성을 건드려야만 해결할 수 있다고 생각하는 순간 이상한 요구사항을 정의하고 이를 달성하기 위해 온갖 비싸고 의미 없는 요구사항을 남발하는 함정에 쉽게 빠지게 됩니다. 중단된 던전을 복원할 때 일어나는 문제를 해결하기 위해 걸려오는 전화를 무시하거나 컷씬이 재생되는 동안 컷씬 밖에서 일어나는 상황에 따른 인터페이스를 표시하지 않거나 전투가 끝나기 전에 인터페이스 조작을 금지하는 등의 요구사항은 모두 특정 상황에 제한적으로 발생하는 문제를 해결하기 위해 게임 전체에 걸친 일관성을 깨는 방식의 사고로부터 일어납니다. 사실 이런 사고는 시야가 좁은, 혹은 좁아져 있는 모든 사람들로부터 일어날 수 있습니다. 또한 게임 소프트웨어를 개발하는 입장임에도 게임을 일관된 규칙으로 구성된 시스템으로 접근하기 보다는 각각의 경험에 집중하는 방식으로 접근할 때 일어나기도 합니다.

우리들은 게임을 통해 고객에게 우리들이 의도한 경험을 전달하기 위해 이 복잡하고 거대한 소프트웨어를 개발합니다. 그런데 이 소프트웨어의 복잡성과 거대함을 고려할 때 게임 전체에 걸친 일관된 규칙과 이를 뒷받침하는 시스템은 좁은 시야에서 볼 때 더 나은 경험을 만드는 것보다 더 중요합니다. 상황에 따라 더 나은 경험을 만들기 위해 게임 전체에 걸친 규칙을 변경해 일관되지 않은 동작을 만들더라도 게임을 출시할 수는 있을 겁니다. 하지만 이 결정에 따라 그 순간의 경험을 획득하는 대신 게임 전체에 걸친 제작 비용을 급격히 끌어 올려 가능한 출시를 불가능하게 만들거나 출시 시점을 훨씬 더 미래로 미뤄 회사에 큰 손해를 끼칠 수 있습니다. 누구나 시야가 좁아져 이 순간에 어울리는 경험을 만들기 위한 요구사항을 말하는 실수를 할 수 있습니다. 하지만 이런 실수를 줄여 가도록 생각하는 연습을 하고 또 실수를 바로 잡기를 반복해야만 출시를 통해 고객들과 대면하는 순간에 조금이라도 다가갈 수 있습니다. 우리들이 만드는 것은 각 순간의 경험을 모은 총합임과 동시에 이들을 일관된 규칙으로 동작하게 만드는 시스템이라는 사실을 잊지 말아야 합니다.