https://www.riotgames.com/ko/news/shipping-xbox-game-pass-ko
2022년 6월 13일 라이엇은 마이크로소프트와 새로운 제휴를 맺고 라이엇의 주요 게임을 Xbox Game Pass에 포함할 계획을 발표했습니다. 제휴를 맺음으로써 세계에서 손꼽는 규모의 두 게임 회사가 플레이어 중심적인 대전 게임에 대한 사랑이라는 공통점을 중심으로 손을 잡았습니다. 6개월 후 어마어마한 과제를 완수하고 라이엇의 주요 게임을 Game Pass에 출시하는 데 성공했습니다.
이제 그동안 수면 아래에서 어떠한 일을 진행했는지 말씀드리며 생소할 수도 있는 플레이어 플랫폼 부서를 소개하고자 합니다.
플레이어 플랫폼이란?
플레이어 플랫폼 부서는 라이엇의 게임과 플레이어를 잇는 가교를 구축해서 여러 게임을 아우르는 생태계와 커뮤니티를 조성합니다. 라이엇의 게임에 걸쳐 플레이어와 콘텐츠의 만남이 이루어질 수 있도록 플레이어 경험의 연결성을 강화합니다. 다시 말해 플레이어 플랫폼 부서는 라이엇의 게임에서 게임플레이와 직결되지 않는 부분을 거의 전부 담당하고 도입합니다. 여기에는 포털, SDK 통합, 직접 API로 구현하는 계정, 게임 진입, 소셜, 구매 등등의 게임 공통 기능이 포함합니다.
플레이어 플랫폼 부서는 플레이어의 게임 경험을 둘러싼 모든 부분을 관장하므로 Xbox Game Pass 작업의 대부분을 맡아서 진행해야 했습니다. 임무를 완수하려면 협동심과 열린 사고, 많은 사람의 노력이 필요했습니다. 동시에 라이엇의 기존 및 향후 게임을 지원하는 일에도 소홀하지 않아야 했습니다.
재빠른 시작
Xbox Game Pass에 PC와 모바일 무료 플레이 게임을 제공하는 제휴는 라이엇 게임즈가 처음이었던 만큼 미지수가 많았습니다. 게다가 플레이어 경험을 향상하고자 게임 내 보상을 계정을 연결한 모두에게 주고 싶었습니다. 이러한 규모의 대작업을 진행할 때는 업무 분장의 명확성과 집중을 극대화하고 목적이 불분명한 회의를 줄이고자 개별 기능으로 쪼개서 단순화하려고 합니다.
프로그램 관리 팀은 방대한 작업을 처리하고자 마이크로소프트와 긴밀히 협력하며 주요 과제의 추진 계획을 세웠습니다. 이러한 추진 계획은 적재적소의 인원 배치가 적시에 이루어질 수 있게 하는 중요한 역할을 했습니다. 플레이어 플랫폼 부서의 프로그램 관리 팀은 부서원뿐만 아니라 라이엇 전체에 걸쳐 각 게임, 퍼블리싱, 고객지원 등을 담당하는 팀과 기타 주요 관계자를 위한 의례와 절차를 만들었습니다. 복잡한 문제를 전략적으로 해결하고 규모를 키워 다수의 게임 팀과 부서원 수백 명을 아우르는 해법을 도출했습니다.
Game Pass 기획
신규 체계를 구축하거나 기존 체계를 수정하기에 앞서 우선 문제를 이해하고 성공적인 결과물을 정의하는 데 합치가 이루어져야 합니다. 플레이어 플랫폼 부서의 사용자 경험 기획 팀은 긍정적 플레이어 경험을 만드는 데 핵심이며 Xbox Game Pass 제휴 과정에서 중책을 맡았습니다. 사용자 경험 기획이라고 하면 보통 완성도 높은 최종 인터페이스가 먼저 떠오르기 마련이지만, 복잡한 상품과 체계 안에서 이루어지는 플레이어 상호작용을 기획해서 원활하게 하는 더욱더 중요한 역할을 합니다. Xbox Game Pass 계정을 연결할 수 있게 하는 작업이 뭐 얼마나 어려울까 생각하실 수 있겠지만, 실제로 해보니 상당히 복잡했습니다!
라이엇과 마이크로소프트는 협업 초기에 사용자 기획 팀의 지도부와 각 책임자와의 논의를 거쳐 우수 결과물의 최소 기준을 수립했습니다. 여러 직무와 부서에 걸쳐 이러한 최소 기준을 충족하는 데 필요한 시간, 협력처, 자원 등의 정보까지 파악했습니다. 우수한 플레이어 경험을 저해하는 위험 요인에 특별히 집중했습니다. 달성하기 힘든 공통 목표를 이루고자 노력을 들일 가치가 있다는 데 의견이 빠르게 모일수록 불가능한 듯한 일을 가능하게 하고자 전문성을 합치는 노력을 빠르게 시작할 수 있습니다. (우수 결과물의 최소 기준을 수립한 초기 과정이 궁금하면 라이엇이 영문으로 미디엄에 게시한 UX 관련 글을 확인해보시기 바랍니다.)
사용자 경험 팀은 기본 절차를 수립한 후 어떤 플레이어가 어디에서 왔든 제휴 콘텐츠를 처음 접할 때 원활한 경험을 할 수 있도록 플레이어에게 보이는 접점에 각각 무엇이 필요할지 세부적으로 파악하는 작업을 진행했습니다. 오랜 라이엇 플레이어가 Game Pass 구독을 게임 내에서 바로 연결하든 라이엇 클라이언트를 통해 연결하든, Game Pass 앱에서 처음으로 넘어온 새로운 라이엇 플레이어와 똑같이 원활한 경험을 할 수 있게 했습니다.
서로 다른 두 회사의 플랫폼을 처음으로 합쳐서 훌륭한 플레이어 경험을 선사하려면 종종 라이엇 클라이언트 팀이나 Xbox 팀이나 해결한 적이 없는 새로운 상황을 해결해야 합니다. 예를 들어 마이크로소프트는 다른 보안 모델을 사용해서 플레이어 플랫폼 부서는 인증 및 신원 플랫폼을 추가로 표준화할 흥미로운 기회가 있었습니다. 마이크로소프트와의 열린 소통, 활발한 협업은 목표의 방향을 잡고 올바른 방향으로 진척이 이루어지는지 확인하는 데 도움을 주었습니다.
최초 실태 조사 문서를 시작으로 기획자는 현재 상황을 파악하고 목표하는 결과에 도달하려면 어떡해야 하는지를 자문하며 전제 조건을 도출해야 했습니다. 상황 도표와 사용자 흐름 등의 분석 기법으로 마이크로소프트와 플레이어 플랫폼 부서의 기획자는 기대를 충족하는 흐름을 구축하고자 다양한 산출물을 생산해 엔지니어, 프로덕트, 품질보증 담당자와 공유했습니다. 또한 최선의 경험을 구현하는 데 어떠한 서비스와 기능을 활용할 수 있는지 파악하기 위한 피드백의 순환이 끊임없이 이루어졌습니다.
작업을 최종 완료한 후에도 관련 산출물은 끊임없이 진화했습니다. 특이 경우를 발견해 추가 조사와 재작업을 거쳐 해결해야 했습니다. 엔지니어와 기술 팀이 직접 관여한 덕분에 모두가 발맞춰 작업을 추진할 수 있었습니다.
근 실시간 서비스 구축
라이엇과 Xbox Game Pass가 선사하는 사용자 경험을 구독이 유효한 Xbox Game Pass 계정을 연결하면 즉시 게임 내 콘텐츠를 받을 수 있기를 바랐습니다. 그러려면 기발한 발상이 많이 필요했습니다. 콘텐츠 경험 팀과 계정 팀(둘 다 플레이어 플랫폼 부서 소속)은 플레이어가 Xbox 계정을 연결하거나 연결을 해제할 때마다 계정이 라이엇 이벤트 버스(메시지 기반 소통에 대한 라이엇의 최신 접근법)에 메시지를 발신하게 했습니다. 메시지 수신 후에는 메시지 브로커 토픽을 주시하는 서비스가 대응하고 이벤트를 처리할 수 있습니다. 유효한 Game Pass 구독 없이도 Xbox 계정을 라이엇과 연결할 수 있으므로 계정 연결로 제공된 토큰을 사용해 Xbox API로 구독 상태를 조회해야 했습니다. 그다음 계정 팀이 토큰을 새로운 서비스에 저장했습니다. 하지만 문제를 완전히 해결하려면 플레이어에게 유효한 Xbox Game Pass 계정이 있는지까지 확인해야 했습니다.
콘텐츠 경험 팀은 게이트웨이 구독 서비스(Gateway Subscription Service, 이하 GSS)를 만들었습니다. GSS는 모든 호출에 응답하며 플레이어의 Game Pass 상태를 확인하는 단일 진실 공급원의 역할을 합니다. 그러면 서비스가 구독 기반 콘텐츠 관련 정보를 확인해야 할 때마다 GSS를 호출해 플레이어가 어느 혜택을 받아야 하는지를 짧은 지연시간 안에 정확하게 파악할 수 있습니다. GSS는 계정 팀의 계정 연결 이벤트와 마이크로소프트의 API를 사용해 플레이어에게 유효한 Game Pass 구독이 있는지 확인합니다. 그리고 HTTP API 엔드포인트로 다른 라이엇 서비스에 해당 정보를 공개해서 다른 팀이 아래와 같은 용도로 활용할 수 있게 합니다.
● 콘텐츠 접근 플랫폼: 특정 구독 기반 콘텐츠를 플레이어의 보관함에 추가
● 마케팅 기술: 플레이어의 Game Pass 구독 상태에 따라 특정 광고 표시
● 고객지원: 고객지원 상담원이 Xbox 구독 관련 플레이어 문의 처리에 사용
● 웹 경험: 플레이어 구독 상태를 플레이어 계정 관리 웹페이지에 표시
라이엇 계정을 Xbox Game Pass 계정과 연결하면 GSS가 계정 연결 시 받은 토큰을 사용해 마이크로소프트 Xbox API로 플레이어의 Game Pass 구독 상태를 조회한 후 영구 데이터베이스에 정보를 저장하고 정기적으로 갱신합니다. 또한 클라이언트에 접근 권한을 부여해 API로 정보를 조회 가능하게 합니다. 간단하죠?
Game Pass는 라이엇과 Xbox 계정을 연결한 후 언제든지 구독할 수 있습니다. 서비스가 플레이어의 구독 여부를 확인하려면 Xbox API에 주기적으로 조회하는 방법밖에 없었습니다. 플레이어가 계정 연결 및 Game Pass 구독 후 즉시 구독 콘텐츠를 받을 수 있게 함으로써 최선의 플레이어 경험을 선사하고 싶었으므로 조회를 자주 할 수 있어야 했습니다. 하지만 얼마나 자주 해야 적당할까요? 1분마다 조회할 수 있으면 좋겠지만, 단지 상태 하나를 확인하고자 API 호출을 매분 수백만 번씩 하면 바람직하지 않습니다. 99%의 경우에는 호출 간 상태 변화가 없을 테니 더더욱 좋은 방법이라고 할 수 없었습니다.
그래서 라이엇 측에서 이루어지는 플레이어 상호작용에 대응할 수 있는 경우에 집중했습니다. Game Pass 상태를 갱신하기에 적절한 시점의 예로 플레이어가 게임 클라이언트를 실행할 때를 들 수 있습니다. 하지만 갱신은 약 1초가 걸리는 외부 HTTP 호출인데 플레이어의 보관함을 불러오는 분초를 다투는 절차의 일환인 만큼 주 GSS 클라이언트와 콘텐츠 접근 플랫폼(Content Access Platform, 이하 CAP)은 50밀리초 안에 응답이 필요했습니다. 1초가 걸리는 외부 호출을 50밀리초 안에 집어넣기란 불가능했으니 창의력을 발휘해야 했습니다. 이전 갱신 시 혹은 최초 계정 연결 후 저장한 값을 반환하고 저장한 값을 불러온 지 2분이 지났으면 백엔드에서 비동기 갱신이 이루어지게 하기로 했습니다. 비동기 갱신 후 서비스가 Game Pass 상태의 변화를 감지하면 라이엇 메시지 서비스로 게임 클라이언트에 메시지를 보내 CAP에서 자격을 불러와서 플레이어가 클라이언트를 수동으로 재실행하지 않고도 구독 콘텐츠를 받을 수 있게 합니다.
와일드 리프트는 플레이어 보관함을 CAP 체계로 처리하지 않으므로 Game Pass 구독 여부를 구독 서비스에 직접 조회해야 했습니다. 콘텐츠 경험 팀은 지연시간이 50밀리초보다 짧아야 하는 요건을 충족하고자 CAP와 계정 관리 서비스를 코로케이션 방식으로 세계 각지의 데이터센터 4곳으로 확장해 플레이어에게 최대한 가까이 다가갔습니다.
비공개 출시 및 정식 출시 전 데이터베이스 제한 해결책
플레이어에게 선보이기 며칠 전 라이엇 계정과 Xbox Game Pass의 연결을 시험해보고자 비공개 출시를 진행했습니다. 이때 다수의 중대한 버그를 발견해 정식 출시 전에 수정했습니다.
자격 서비스에 걸리는 사용자 부하가 큰 걱정거리였습니다. 자격 서비스의 역할은 라이엇의 모든 게임에 걸쳐 플레이어에게 콘텐츠 접근 권한을 부여하는 일입니다. 자격 서비스는 읽기 요청을 많이 받습니다. 어떤 곳에서는 1분당 80만 건에 육박하기도 합니다! 플레이어에게 혜택을 제공할 수 있게 하려면 각각의 자격 서비스 호출이 이어서 다른 체계를 호출해 플레이어에게 Game Pass 구독이 있는지 확인한 후 Game Pass 혜택을 구성하고 플레이어에게 반환해야 했습니다. 이러한 흐름이 유발하는 추가 부하와 복잡함은 안정성 저하와 응답 지연의 위험을 초래했으며 이후 절차에서 각종 문제를 야기했습니다.
이미 다양한 상황을 가정해 부하 테스트를 진행하기는 했지만, 체계의 탄탄함을 가장 확실하게 검증하려면 비공개 출시가 제격이겠다고 생각했습니다. 비공개 출시는 Xbox Game Pass 콘텐츠가 플레이어에게 보이지 않을 뿐 체계를 최대로 가동해볼 수 있게 했습니다. 정식 출시 전 체계에 얼마나 큰 부하가 걸릴지와 정확한 예상 반응까지 확인할 수 있었습니다. 비공개 출시 덕분에 연결 풀을 잘못 설정한 문제를 발견했습니다. 수정하지 않고 정식 출시했다면 플레이어가 혜택을 받지 못하는 상황이 발생해 출시가 실패했을 가능성이 큽니다.
데이터베이스 쓰기 용량 관련 문제도 겪었습니다. 기존 아키텍처의 한계* 때문에 제휴를 개시할 때의 플레이어 부하 증가를 감당할 수 있는 수준으로 확장할 수 없었습니다. 이러한 서비스의 부하를 관리하는 방법으로 접근이 몇 차례에 나누어서 이루어지게 할 수 있습니다. 마케팅을 여러 차례에 걸쳐 느리게 진행함으로써 플레이어 유입을 조절해보기로 했습니다. 이는 플레이어 유입을 더 긴 기간에 걸쳐 분산하는 효과가 있었으며 추가 홍보를 진행해 플레이어 유입이 한차례 새로 이루어질 때마다 충분한 서비스 수용력을 갖출 수 있었습니다. 마케팅 팀과 긴밀히 협력한 결과 쓰기 용량을 50% 아래로 유지할 수 있었습니다.
* 이후 계정 변화와 관련해 데이터베이스 기술의 수평 확장성을 개선했습니다.
능력보다는 태도
Xbox Game Pass와 통합하는 데 광범위한 기술 역량이 필요했지만, 정서적 역량도 중대한 역할을 했습니다. 겸손함, 호기심, 내부적 및 마이크로소프트와의 외부적 협업 능력, 열린 소통 등이 핵심이었습니다. 제휴 준비 기간은 6개월밖에 안 걸렸지만, 수백 명이 관여했으며 업무 시간을 바꾸고 새로운 체계를 배워야 완성할 수 있는 작업이었습니다. 한발 물러나서 분야별 전문가에게 맡겨 다양한 방향으로 일을 추진할 수 있게 함으로써 한 사람이나 한 팀이 과도하게 주도할 수 없게 하는 일이 중요했습니다.
이번 제휴는 라이엇 게임즈의 여러 핵심 가치를 조명했습니다. 제휴 과정 내내 이러한 경험이 플레이어에게 어떠한 영향을 끼칠지 끊임없이 고민했습니다. ‘플레이어 경험이 최우선’이라는 가치를 최고 수준으로 실현하고자 했으며 라이엇 전원이 라이엇의 모든 게임에 영향을 주는 작업에 기여하고자 발맞추고 힘을 합쳤습니다.
맺음말
글 한 편에 쑤셔 넣을 수 있는 분량을 뛰어넘는 많은 일을 진행하기는 했지만, 이로써 플레이어 플랫폼 부서와 Xbox Game Pass 제휴를 위해 구축하고 제공한 서비스를 들여다볼 수 있었기를 바랍니다. 수백 명의 헌신과 노고가 하나로 뭉친 덕분에 놀라운 플레이어 경험을 만들 수 있었고 앞으로도 계속 만들어 나갈 수 있습니다.
![[라이엇게임즈] Xbox Game Pass 제휴 준비 과정_1.png](https://i3.ruliweb.com/img/23/06/30/1890a226371f4a3f.png)
![[라이엇게임즈] Xbox Game Pass 제휴 준비 과정_2.png](https://i2.ruliweb.com/img/23/06/30/1890a234231f4a3f.png)
![[라이엇게임즈] Xbox Game Pass 제휴 준비 과정_3.png](https://i3.ruliweb.com/img/23/06/30/1890a239575f4a3f.png)
![[라이엇게임즈] Xbox Game Pass 제휴 준비 과정_4.png](https://i1.ruliweb.com/img/23/06/30/1890a2450bdf4a3f.png)