우리는 기계에 대항해 승리할 수 있을까?
우리가 만드는 게임 서비스는 봇과의 전쟁으로부터 승리할 수 있을까요? 아니, 승리해야만 합니다. 그러려면 자원이 필요합니다.
요즘 면접 이야기를 너무 자주 하고 있습니다. 최근의 여러 면접 과정을 글로 만들면서 면접 키워드에 의해 머릿속에 서로 떨어져 있던 기억들이 면접이라는 단어에 의해 우연히 서로 연결되면서 의식의 세계로 끌려 나오고 있기 때문이 아닐까 싶습니다.
아주 오래 전, 그러니까 10년의 밤으로부터 비롯된 방황이 시작되기도 전의 어느 날 어느 면접 자리에서 그 부서를 담당하는 임원님과 이야기를 하고 있었습니다. 커다란 게임을 만드는 회사에서 최근 시장이 나타날 것 같은 모바일 게임이나 좀 더 가벼운 장르 게임을 만들고 싶었지만 회사의 임원 대부분은 기존에 잘 해 오던 커다란 게임을 만드는데 집중할 뿐 이런 실패할 가능성이 높은 모험을 감당하고 싶지 않아 한 것 같습니다. 반면 이 임원님은 이 부서를 담당하기 시작한 지 얼마 되지 않아 회사 안에서 입지를 구축할 필요가 있었고 다른 임원들이 손대고 싶지 않아 하는 이런 요구사항을 가져와 성과를 내야만 하는 상황이었습니다. 그래서 가벼운 장르 게임, 모바일 게임을 만들 팀을 회사의 핵심 개발 부서 바깥에 구축하려는 시도를 하고 있었고 덕분에 당시 저 같은 주니어에게도 기회가 온 것입니다.
여느 두 번째 면접이 그렇듯 이미 실무 선에서는 저를 올려 보냈으니 임원 수준의 면접은 제가 싸이코인지 아닌지 평가하고 또 제 가격을 평가해 구입해도 괜찮을지 결정하는 자리입니다. 가격 측면에서 저는 이미 할인 행사 중이었기 때문에 구입을 결정하는데 아무런 무리도 없었을 겁니다. 그런데 싸이코인지 아닌지 테스트하면 충분할 것 같은 자리에서 갑자기 튀어나온 질문은 이런 질문을 전혀 예상하지 않은 저를 상당히 당황하게 만들었습니다. “회사에 여러 게임이 봇에 의해 여러 피해를 입고 있는데 게임디자인 측면에서 봇을 방지할 방법이 있을까?”
이 시대에도 이미 봇은 회사에서 개발하는 다른 커다란 게임에 여러 문제를 일으키고 있었습니다. 현대에 봇은 이 때보다 훨씬 똑똑해졌지만 이미 이 시대에도 봇은 실제 고객들이 받아야 할 보상을 독차지해 더 빨리 성장한 다음 상위 PvP 컨텐츠에서 더 높은 성장을 통해 고객들이 게임을 플레이 하는데 상당한 문제를 일으키고 있었습니다. 또 훨씬 간단한 조작만을 요하는 더 가벼운 장르 게임에서는 봇들이 순위표를 점령하고 순위표에 의해 분배될 보상을 가져가 고객들이 아무리 열심히 플레이 해도 순위표 저 밑바닥에도 진입할 수 없는 상황이었습니다. 운영 부서에서 봇으로 의심되는 사례를 고객들로부터 접수 받아 조사한 다음 이들을 밴 하고 있었지만 봇들이 나타나는 속도에 비해 이런 대응은 터무니 없이 느렸고 분명 노력을 기울이고 있었지만 고객 입장에서는 아무런 변화도 느낄 수 없었습니다.
그런데 이는 회사 입장에서 분명히 해결해야 할 문제이기는 하지만 게임디자인 측면에서 이를 자동으로 플레이 하는 기계를 방지할 방법을 찾는 것은 좀 이상한 질문이라고 생각합니다. 사람은 기계에 비해 훨씬 빨리 게임을 플레이 하는 방법을 배우지만 기계에 비해 계산을 훨씬 잘 못하고 기억력이 떨어지며 지구력 측면에서는 비교할 수 없을 정도로 약합니다. 반면 기계는 사람이 플레이 방법을 가르쳐 줘야만 플레이 할 수 있지만 계산을 훨씬 빨리 하고 무한한 기억력이 있으며 전기가 공급되는 한 무한한 지구력 또한 가지고 있습니다. 만약 어떤 이상적인 게임디자인이 사람이 기계에게 게임을 가르칠 수 없게 만든다면 이런 게임 규칙은 사람이 게임을 빠르게 배울 수 없도록 만들 수도 있습니다. 사람과 기계는 성능이 다르기는 하지만 동작 속도 - 클럭 - 를 비슷하게 맞춘다면 적어도 겉으로는 서로 비슷하게 행동합니다. 그래서 사람이 기계에게 가르치기 어려운 플레이 방법을 고안한다면 이는 사람 역시 플레이 하기 어려운 방법일 가능성이 높고 이는 기억력이나 지구력에 한계를 가진 인간을 쉽게 포기하게 만드는 대신 기계가 게임을 지배하게 만들 수 있습니다.
지금이라면 이렇게 대답했을텐데 그 때는 나름 게임디자인을 직업으로 삼아 생계를 유지하는 사람 입장에서 뭐라도 그럴싸한 답변을 해야만 할 것 같았고 급하게 머리를 굴려 횡설수설합니다. 정확히 기억나지는 않지만 회사에서 개발하는 커다란 멀티플레이 온라인 게임에서는 고객들이 서로 더 자주 상호작용하는 플레이를 요구해 기계에게 이 과정을 가르치기 까다롭게 만들고 코어 메커닉 역시 상황에 따른 다양한 반응을 하도록 만들어야 한다는 식으로 답변했던 것 같습니다. 실제로 봇들은 사람들이 서로 파티를 이뤄 플레이 해야 하는 던전에는 훨씬 덜 나타나곤 했고 다른 회사에서 개발한 게임의 전투는 기계가 조작을 수행하기 꽤 까다로운 모양으로 만들어져 있던 것도 사실입니다. 하지만 이렇게 답하면서도 근본적으로 기계가 사람 대신 멀티플레이 온라인 게임을 플레이 해 고객들이 할 경험을 독차지하는 상황을 막기는 결코 쉽지 않으리라는 생각을 했습니다. 그 임원님은 이런 횡설수설한 답변이 나올 거라고 예상하신 듯 자신 역시 비슷한 수준으로 생각은 하고 있는데 이를 잘 해결할 방법을 찾고 있다며 제가 이미 횡설수설한 다음 망했다고 생각했음이 얼굴에 드러났는지 이 질문에 만족스러운 답변을 하지 못했다고 해서 낙담할 필요가 없다는 말씀을 해 주셨고 운 좋게 이 팀에서 일하게 됩니다.
한동안 국내 MMO 개발팀에서는 마침 중국에서 개발한 MMO 게임에 포함된 자동이동, 자동전투 기능을 비웃으며 이를 일종의 터부라고 생각했습니다. 하지만 본격적으로 모바일 MMO 게임이 등장하기 시작하자 스마트폰을 들고 이동하는 고객에게 이전 PC에서 하던 것과 동일한 수준의 개입을 요구하기는 거의 불가능하다는 사실을 깨닫습니다. 처음 보고 비웃었고 또 터부로 여기던 바로 그 자동 기능을 적극적으로 채용해야 하는 순간이 온 것입니다. 이전 시대에는 기계가 게임을 플레이 하지 못하도록 하기 위해 인간의 개입을 늘리고 고객들이 서로 직접적인 상호작용을 통해 플레이 하도록 유도했던데 비해 이제는 최소한의 개입 만으로 게임을 플레이 할 수 있고 이는 이전에 화면을 읽어 상황을 파악하고 이에 따른 행동을 하도록 만들어야 했던데 비해 그저 인터페이스를 조작하면 되어 봇 개발 난이도를 훨씬 낮춥니다. 게다가 봇 개발은 이전과 비교해 완전히 전문화, 그리고 기업화 되어 봇을 막는 보안 업데이트를 하면 그날 오후에 이를 반영한 새 봇 소프트웨어가 배포되었고 이를 유료로 구독하고 있으면 대여섯 시간 정도 기다리면 다음 버전이 나와 플레이를 이어 갈 수 있었습니다. 이전에는 잠깐 동안이라도 게임디자인에 의해 봇에 의한 피해를 완화하려고 했지만 모바일로 넘어오면서 그런 시도는 봇보다 더 빨리 고객을 쫓아내는 확실한 방법으로 인식됩니다.
게다가 모바일 게임으로 넘어와 조작이 단순해지고 인간이 개입할 시점이 확실해지자 기존에 특정 국가로부터 접속을 차단하고 게임 클라이언트 동작을 쉽게 알아내기 어렵도록 보안 솔루션을 사용하는 등의 시도는 상대가 기계가 아닌 실제 인간을 동원해 플레이 하도록 하면서 완전히 대응 불가능한 영역으로 넘어갑니다. 실제 고객은 게임 규칙을 잘 배울 수 있지만 기억력과 지구력이 떨어지는데 비해 기계는 인간이 플레이 방법을 가르쳐 줘야 하지만 기억력과 지구력이 무한이어서 이에 대응하는 게임디자인은 거의 불가능하다는 이야기를 했는데 이제 아예 실제 인간이 게임에 개입하면서 적어도 게임디자인 관점에서는 아예 대응할 방법이 없어진 것이나 마찬가지입니다.
게다가 실제 인간이 게임을 할 때 나타날 기억력과 지구력의 한계는 여러 인간이 번갈아가며 플레이 함으로써 완화할 수 있었고 이 순간 회사 입장에서 실제 고객과 봇을 구분하기는 거의 불가능해진 것이나 다름 없습니다. 통계적인 방법을 통해 단위시간 안에 거의 같은 행동을 하는 계정들을 의심 목록에 등록한 다음 이들의 행동을 기계가 모니터링 해 비슷한 수준에 따라 봇으로 판단하고 차단하는 식으로 회사의 대응이 발전하기는 했지만 여전히 봇은 그 무한한 지구력에 기반해 게임의 주요 자원을 독점합니다. 실제 고객들은 이런 보상에 접근하지 못해 게임디자이너가 의도한 경험보다 훨씬 가혹한 상황에서 게임을 플레이 할 수밖에 없었고 봇의 존재를 인지한 다음에는 회사가 이를 적극적으로 해결하지 않는다며 불만을 토로하기 시작했습니다.
시간이 흐르며 현대 MMO 디자인에 대한 갈증에 설명한 것처럼 특히 모바일 MMO 게임은 플레이어들이 바로 옆에서 플레이 하고 있기는 하지만 서로 상호작용을 최소화 하는 형태로 발전해 왔습니다. 자원을 교환할 수 없거나 자원을 거래소 같은 중앙화되고 또 직접 통제 가능한 수단을 통해서만 교환할 수 있게 하며 게임의 각 컨텐츠로부터 얻은 보상이 함부로 다른 계정이나 다른 시점의 플레이어에게 전달되어 경제 시스템이나 성장 과정을 망가뜨리지 않도록 재화 종류를 나누고 이들 사이의 교환을 강력하게 통제합니다. 또한 점점 높아지는 컨텐츠 제작 비용 때문에 컨텐츠가 절대 흥행에 실패하면 안 되기 때문에 왜 현대 게임에 그렇게 많은 종류의 재화를 사용하나요?에서 설명한 보상에 의한 동작을 위해 컨텐츠로부터 얻는 보상의 재화를 구분하기도 합니다. 때문에 현대 MMO 게임에서는 주변에 함께 플레이 하는 다른 플레이어를 볼 수는 있지만 이들과 상호작용 할 수 있는 방법은 거의 없습니다. 그래서 일상 플레이에서는 봇으로부터 입는 피해가 이전에 비해서는 조금 완화되기도 합니다. 하지만 봇들이 이전 시대처럼 적극적으로 멀티플레이에 영향을 끼치지 않는다고 해서 문제가 없어진 것은 아닙니다. 이들은 최소한 AWS 비용을 올리는 역할이라도 하고 있습니다.
얼마 전 이전에 함께 일하던 동료들을 만나 밥을 먹고 커피를 마시며 이런 저런 이야기를 하다가 문득 봇을 막을 수 없을지에 대한 이야기가 나왔습니다. 이 이야기를 꺼내신 분은 최근 FPS 게임을 개발했는데 여기도 봇들이 나타나 사람들을 정확히 사격해 죽이는 통해 실제 고객들이 피해를 입고 있었고 이 문제를 해결하는데 어려움을 겪고 있다고 합니다. 특히 슈터 장르는 플레이어들이 직접 상호작용 해야만 하는 구조 덕분에 봇을 처리하기 상당히 난해합니다. 오죽하면 수 십 년에 걸쳐 슈터 장르를 개발해 온 회사들조차 사실상 봇을 방치해 오히려 이들을 죽이고 다니는 플레이가 스트리밍 컨텐츠의 한 장르로 자리 잡았을 정도입니다. 현대에 가까워지며 게임의 경제시스템을 강하게 격리해 봇이 플레이 하더라도 이들이 얻을 수 있는 이익을 줄일 수 있게 됐지만 기술적으로는 모바일 환경에서 인간의 개입을 줄이는 방향으로 플레이가 발전하며 기계 입장에서는 플레이 하기 더 편한 상태가 됐고 회사는 기계와 싸움에서 패배하고 있습니다. 이들이 사실상 의미 있는 보상을 얻지 못하는 모양으로 게임을 설계할 수는 있겠지만 이에 따라 피해를 입는 실제 고객이 없으리라고 생각할 수 없습니다. 오래 전에는 같은 질문에 대해 사실상 불가능하며 기계를 막는 게임디자인은 결국 인간도 막는다고 생각해 왔고 지금도 이 기조는 크게 달라지지 않았습니다.
하지만 지난 기간 동안 개발팀 안에서 기계를 막는 모습을 지켜보며 우리들이 왜 기계와 싸움에서 패배할 수밖에 없는지 이전과는 다른 관점에서 원인을 찾았습니다. 우리가 상대해야 하는 기계들은 기술적인 관점에서 공격하는 입장이기에 항상 우리들보다 유리한 입장일 수밖에 없고 또 기계의 무한한 기억력과 지구력에 기반하고 있어 인간이 이들에게 대항할 방법을 찾기 어려운 것은 사실입니다. 그러나 지금까지 이들에 대항하기 위한 회사의 대응은 거의 아무 것도 없는 것이나 다름 없었습니다. 각각의 개발팀이 최근에 알려진 봇 사례를 받아 이들을 막기 위한 방법을 그때그때 개발팀 수준에서 고안해 적용하는데 불과했고 앞에서 말한 대로 이런 대응은 빌드를 배포한지 몇 시간 안에 무효화 되곤 합니다. 여기에는 봇 개발자들의 기술력이 높을 뿐 아니라 기업화 되어 큰 돈이 오가는 가운데 개발이 이루어지고 있다는 특징이 있습니다. 반면 우리들은 봇이 게임에 문제를 일으키고 고객들에게 피해를 준다는 사실을 잘 알고 있고 또 이를 해결하고 싶으면서도 봇에 대한 대응은 계속해서 개발팀 각각에 맡기고 이들이 처리해 주기를 바라고 있습니다. 그러면서도 같은 개발팀이 다음 컨텐츠를 시간에 맞춰 개발할 것 역시 바라는데 이 상황에서 자연스럽게 봇 대응에 대한 우선순위가 낮아지고 글을 시작할 때 받은 게임디자인 관점에서 봇에 대응할 방법이 없겠느냐는 싸구려 접근에 기대게 됩니다.
우리는 과연 봇을 막지 못해 고객들이 입는 피해를 보고만 있어야 할까요? 우리는 기술적으로 결코 봇을 막을 수 없을까요? 그렇지 않다고 생각합니다. 여전히 실제 인간과 기계, 그리고 대단히 숙련된 인간이 직접 플레이 하는 패턴을 통계적으로 찾아내고 또 기술적으로 자동화된 입력을 차단하고 클라이언트 분석을 어렵게 만들며 봇이 주로 출몰하는 원격 네트워크를 차단하는 온갖 방식을 고려할 수 있습니다. 여기에 가장 중요한 점은 회사 차원에서 봇 문제를 그저 각기 달리 만들어진 게임을 가장 잘 이해하고 있는 개발팀 각자가 따로 대응하게 할 뿐 아니라 이 과정에 자원을 일절 투입하지 않는 상황을 개선해야 하는 것입니다. 봇 문제가 그렇게 중요하다면 기존 개발팀이 알아서 대응하게 하거나 게임디자인으로 봇을 회피하려는 사실상 불가능한 방법을 찾는데 몰두하는 대신 회사 차원에서 자원을 할당해 봇에 대응하는 전문화된 조직을 운영해야 한다고 생각합니다. 우리들이 지난 오랜 세월에 걸쳐 봇에 의해 피해를 입고 고객들에게 끔찍한 경험을 선사해 온 가장 큰 이유는 봇을 막아야 한다고 말하면서도 여기에 자원을 전혀 투자하고 있지 않기 때문입니다.
현대 모바일 게임은 그 경제시스템 구조 상 봇이 이익을 얻기 쉽지 않기는 하지만 봇들은 여전히 기회를 노리며 인간과 함께 게임을 플레이 하고 있고 우리는 특별한 피해가 없다는 이유로 이들을 지켜 보고만 있습니다. 이들은 머지 않아 우리가 작은 실수라도 해서 시스템에 작은 헛점이 나타날 때 이를 이용해 순식간에 게임으로부터 큰 이익을 얻고 인간 고객들에게 큰 피해를 줄 수 있습니다. 당장 이들이 별다른 피해를 주지 않더라도 최소한 AWS 비용을 늘려 피해를 줍니다. 과거에는 게임디자인을 통해 이들을 회피하려는 사실상 불가능한 방법을 탐색한 적도 있지만 현대에는 오히려 게임이 자동화하기 더 쉬운 모양으로 바뀌어 이런 불가능한 시도 이야기는 많이 사라졌습니다. 문제를 해결하려면 회사 차원에서 문제 해결에 직접 자원을 동원해야 하며 지금처럼 각각의 팀이 알아서 해결하도록 방치하는 수준으로는 결코 기계를 막을 수 없을 겁니다.
우리는 기계에 대항해 승리할 수 있을까요? 승리할 수 있을 것 같지는 않지만 지금처럼 아무 노력도 없이 방관해서는 오직 피해만 입을 뿐입니다. 직접 투자해 문제 해결에 뛰어들지 않는 한 다른 모든 방법은 실패할 겁니다.