▲ 구글 클라우드 미카 베이커(Micah Baker) PM

매치메이킹은 게임의 문턱과도 같다. 공들여 완성한 게임에 찾아오는 손님들, 그들을 맞이하는 첫 단계가 매치메이킹이다. 손님들에게 즐거운 추억을 선사하기 위해선 무작위적인 '매치메이킹'이 이루어져선 안 된다. 모두가 만족할 즐거운 매치메이킹이 필요하다.

최근 유니티는 보다 '스마트'한 매치메이킹 시스템을 준비하고 있다. 클라우드 서비스의 명가라 할 수 있는 '구글'과 손을 잡고 야심 차게 선보이는 프로젝트다. 유니티의 자유롭고 폭넓은 생태계를 십분 활용하여 기존 시스템의 한계를 넘는 것이 그들이 그리고 있는 비전이다.


흔히들 매치메이킹을 삼각구도로 이해한다. 대기시간과 응답성 그리고 스킬 간의 절묘한 균형이 필요하다. 좋은 매칭을 이루어주기 위한 '스킬'이 필요하지만, '대기시간'이 너무 길어선 안 된다. 또한, 좋은 응답성 역시 필수적이다. 이 세 가지 요소를 모두 충족시키는 건 사실상 불가능했다. 기존 개발자들은 이 세 가지 요소를 삼각 구도로 놓고, 일종의 등가교환으로 상호 균형을 맞추어냈다.

전통적인 매치메이킹 구조는 단순하다. 게임에 접속하는 플레이어들과 데이터 센터에서 제공하는 게임 서버, 그리고 이 사이에 별도의 매치메이킹 서버를 놓아 유저들과 게임 서버를 잇는 것이 '매치메이킹'이다. 이 방식은 무척이나 직관적이지만, 치명적인 단점이 하나 있다. 게임이 유명해질수록, 즉 플레이어가 많아질수록 해당 구조로는 점점 그 부하를 버티기 힘들어진다.

구글은 이를 '클라우드' 기반 방식으로 해결하고자 했다. 과거 구글이 시도했던 오픈 소스 프로젝트인 쿠버네트(Kubernetes) 프로젝트에서 영감을 받았다. 관건은 3가지였다. '커스텀이 가능할 것', '기존 솔루션과 통합이 가능할 것', 그리고 '어떤 환경에서든 작동이 가능할 것'.


이러한 요소들을 고려하여 모델 자체를 새로 설계했다. 우선 중심에 기존 매치메이킹 로직을 담당할 오케스트레이터(Orchestrator)가 자리한다. 양옆으로 Fronted API와 Backend API가 붙어 각각 플레이어와 게임 서버의 응답을 담당한다. 이 모든 것들이 오픈 소스로 구성되어있기 때문에 사용자의 입맛에 맞추어 수정하는 것이 가능하다.

하지만, 이러한 변화를 번거롭게 느끼는 사용자가 있을 수 있다. 구글은 이러한 사용자를 위해 마치 슬롯에 팩을 꽂는 것처럼 쉽게 사용할 수 있는 '매치메이커 커스텀 로직'을 준비했다.

작동 원리는 아주 단순하면서도 효율적이다. 우선 Backend API에서 어떤 게임을 불러올지, 그룹으로 묶을 유저들은 누구인지를 판단한다. 이후 오케스트레이터가 대기 중인 플레이어들을 Fronted API에 불러오고, 이후 매치메이커 커스텀 로직에 투입해 입력된 정보에 따라 '분류'를 시작한다. 최종적으로 선별된 '매치'가 다시 Backend API로 진입하고, 게임서버로 정보가 넘어가면서 절차가 마무리된다.


유니티는 구글과의 이번 파트너쉽 프로젝트를 '오픈 소스 매치메이킹 프로젝트'라고 명했다. 유니티 엔진 특유의 유연함과 폭넓은 생태계를 활용해 보다 강력한 매치메이킹 서비스를 제공하는 것이 목표다. 미카 베이커는 적은 직원으로 많은 플레이어를 감당해야 할 중소 개발사에게 특히나 유용할 것이라고 강조하기도 했다.

한편, 강연 말미에 미카 베이커는 오픈 소스 매치메이킹 시스템의 알파 테스트가 26일부로 시작됐다고 알렸다. 그는 해당 빌드가 "아직 테스트 버전인 관계로 불안정할 수 있으니 양해바란다"며, "사용하면서 느낀 불편함이나 개선점 등을 꼭 피드백해줬으면 좋겠다"고 덧붙였다.