게임 퍼블리싱 플랫폼 개발, 어떤 일을 하나요?

| 2021-12-03

안녕하세요, 저는 넷마블 플랫폼개발실을 맡고 있는 석영민입니다.
오늘은 넷마블에 개발직군으로 지원하시는 많은 분이 여쭤보시는 질문을 다뤄보고자 합니다.

넷마블에서 플랫폼 개발은 어떤 일을 하나요?

글로벌 게임 퍼블리셔, 넷마블

넷마블은 “글로벌 게임 퍼블리셔”로서, 다수의 좋은 게임을 글로벌에 퍼블리싱하고 서비스하는 회사입니다. 그래서 글로벌 환경에 맞게 게임을 잘 퍼블리싱하기 위해서는 다양한 문제와 마주할 수밖에 없습니다.

우리가 겪는 대표적인 글로벌 환경 문제

  • 다양한 언어 (172개 지역 17개 언어 지원)
  • 다양한 디바이스 
  • 다양한 국가별 정책 (GDPR, COPPA, 자금결제법, 개인정보보호법 등)
  • 물리적 위치에 의한 서비스 품질 관리

우리는 위 문제들을 기술로 해결하기 위해, “게임 퍼블리싱 플랫폼”을 만들고 있으며, 우리는 이를 “NetmarbleS”라고 부르고 있습니다.

궁극적으로 개발사가 성공적으로 글로벌 서비스를 할 수 있게 지원하는 것이 플랫폼을 개발하는 우리의 목표입니다. 

플랫폼 구성

게임 퍼블리싱 플랫폼”은 SDK와 서비스 API로 구성돼 있습니다.

넷마블 SDK 기본 구성 요소

SDK는 플랫폼 서비스에서 클라이언트 영역을 담당하며, 게임을 개발할 때 플랫폼이 제공하는 기능을 손쉽게 사용 할 수 있도록 지원하는 개발 툴킷입니다. SDK는 사용하는 게임엔진에서 사용하기 편한 구조로 제공하며,  유저 디바이스 환경에 따른 최적화와 넓은 호환성을 지원합니다.

넷마블 서비스 API 기본 구성 요소

서비스 API는 플랫폼 서비스에서 서버 역할을 담당하며, 정보 및 상태 관리, 보안 처리, 서드 파티(3rd Party) 연동 등 많은 부분을 담당하고 있습니다. 서비스 API는 다수의 글로벌 유저가 안정적으로 서비스를 이용할 수 있도록 게임 운영 환경을 위한 확장성과 대량 포용성을 지원합니다.

플랫폼이 제공하는 기능

우리가 만들고 있는 “게임 퍼블리싱 플랫폼”과 우리가 어떤 일을 하는지에 대해서 소개를 드리고자 합니다.

“게임 퍼블리싱 플랫폼”에서는 기본적인 인증과 결제뿐 아니라, 사업을 위한 프로모션 기능과 게임의 품질관리를 위한 다양한 부가서비스를 제공하고 있습니다.

인증 서비스 

넷마블은 쉬운 게임 진입을 위해 Guest 계정을 제공하고 있습니다. Guest 계정은 별도 가입 절차 없이 게임을 이용할 수 있도록, 게임을 설치한 디바이스에 의존적으로 임의 발급하는 계정입니다. 그렇기 때문에 Guest 계정은 게임을 삭제하면 게임 플레이 데이터가 지워질 수밖에 없고, 다른 디바이스에서 플레이 중인 게임 계정과 플레이 데이터를 불러올 수 없다는 문제가 있습니다. 이런 문제를 해결하기 위해 넷마블은 “채널 인증”이라는 방법을 사용하고 있습니다. 

채널 인증은 SNS 인증이나 마켓 계정 같은 서드 파티(3rd Party) 서비스와 게임 계정을 연동해서 활용하는 방식입니다. 채널 인증을 활용하면, 다른 기기에 설치하거나 삭제 후 재설치했을 때 연결한 서드 파티 SNS 계정이나 마켓 계정으로 기존 게임 계정과 플레이 데이터를 불러올 수 있습니다.

글로벌 환경에서 잘 맞춰서 채널 인증을 지원하기 위해서는 국가별로 선호하는 채널링 인증 수단을 제공해야 합니다. 우리는 15개가 넘는 서드 파티 SNS 및 마켓 인증을 지원합니다. 또한, 넷마블 자체로도 회원 계정을 생성하는 게이트를 마련해 넷마블 회원을 독자적으로도 운영하고 있습니다.

서드 파티 서비스와 게임 계정 연동

또한 인증과 관련해 중요한 부분은 보안 및 정책 준수입니다. 인증과 관련한 업무에서는 높은 보안기술을 통해 중요 데이터를 처리하고,  개인 정보 관리 정책에 따라 데이터를 관리하는 것이 필요합니다.

결제 서비스

결제 서비스는 유저가 게임 내에서 필요한 상품 및 재화를 다양한 결제수단으로 결제하고 지급받는 서비스를 말합니다. 내부에서는 IAP(In App Purchase)라는 약어로 이야기합니다.

결제 서비스는 마켓(구글, 애플 등) 의존 성향이 강합니다. “게임 퍼블리싱 플랫폼” 구축 시 각 마켓에서 요구하는 여러 사항을 잘 이행해야 하고, 각 마켓에서 신규로 제공하는 기능을 사업적 니즈에 따라 빠르게 구축해야 합니다. 또한, 각 국가별 결제 관련 정책 준수 사항(대만-결제안내 팝업, 일본-자금결제법 등)도 고려해야 합니다.

이렇듯, 정책 변화(인앱결제 규제)와 지원 플랫폼 확장(PC, 스팀 등) 외에도 중국 같은 특수한 환경(다수의 자체 마켓, 다양한 결제수단)을 지원하기 위한 많은 요소가 결제 서비스 개발에 영향을 주고 있습니다.

게임 내 상품 구매 화면1
게임 내 상품 구매 화면2

프로모션 기능들

앞서 소개한 인증과 결제 외에도, 게임 운영을 위해 필요한 기능이 더 있습니다. 그중 많이 이용하고 유저에게 노출되는 대표적인 서비스에는 푸시 서비스와 공지/프로모션 서비스가 있습니다.

푸시 서비스

푸시 서비스는 게임을 하고 있지 않을 때, 게임 내에서 일어나는 일이나 게임 소식을 유저에게 알리기 위한 서비스입니다. 주로 마켓(구글, 애플 등)에서 제공하는 푸시 서비스(구글은 FCM, 애플은 APNS)를 이용해서 유저 디바이스로 알림 메시지를 전송하고 있습니다.

푸시 서비스를 개발하는 과정에도 많은 고민이 따라옵니다. 대표적으로 떠오르는 몇 가지를 아래에 나열해 보겠습니다.

  • 푸시 메시지는 어떻게 노출하는 것이 유저 경험상 좋은가?
    메시지 포맷 다양화, 국가별 언어 지원
  • 푸시를 수신하는 시점을 어떻게 유저 친화적으로 할 것인가?
    로컬 타임 푸시
  • 푸시 수신 정책은 어떻게 관리할 것인가?
    야간 푸시 관리
  • 안정적으로 대량을 보내려면 어떻게 발송할 것인가?
    분산 처리
  • 푸시 서비스와 연계한 서비스를 만들 수 없을까?
    푸시 보상 처리

푸시 서비스는 게임을 직접 플레이하지 않는 환경에서도, 유저와 인터랙션 할 수 있는 좋은 수단이라고 생각합니다. 그래서 해당 서비스를 더 잘 만들기 위한 고민은 끝없이 이어지지 않을까 합니다.

푸시 서비스 템플릿 예시

공지 / 프로모션 서비스

게임을 실행하면 다양한 팝업 페이지를 마주하게 됩니다. 보통, 정보를 전달하기 위해 제공하는 서비스이며, 목적에 맞춰 다양한 용도로 활용할 수 있습니다.

  • 점검 알림 
  • 공지사항
  • 광고 프로모션 (상품, 이벤트 안내)
게임 내 공지 예시
게임 내 프로모션 예시

단순해 보이는 이 서비스를 개발할 때에도, 우리는 많이 고민하고 있으며 상당 부분을 기술로 해결해 서비스하고 있습니다.

  • 정보성 데이터는 어느 위치에 노출하는 것이 좋을까? 
  • 어떻게 하면 유저 경험을 해치지 않으면서 노출을 관리할 수 있을까?
  • 노출하는 콘텐츠가 글로벌 환경에서도 문제가 생기지 않으려면 어떻게 해야 할까?

게임 품질 관리를 위한 서비스

게임의 품질을 관리하기 위해, 플랫폼에서 제공되는 서비스도 있습니다.

크래시 분석

게임을 플레이하다 보면, 갑자기 게임이 종료되는 일을 겪을 때가 있습니다. 우리는 이 현상을 “크래시(Crash)가 났다”라고 표현합니다. 크래시가 발생하는 이유는 다양합니다. 그래서 크래시 분석을 통해 환경적인 문제인지, 게임 내 코드 문제인지 파악해야 합니다.

넷마블은 안정된 게임 출시를 위해, 게임 출시 전 다양한 품질 검증 과정을 거칩니다. 이 품질 검증 과정에서도 “크래시율”이라는 항목을 주요 관리 대상으로 선정해 다루고 있습니다.

우리는 다양한 클라이언트 환경에서 발생한 크래시 내용을 수집하고, 분석하는 과정을 거쳐  리포트나 대시보드로 옮기는 일을 하고 있습니다. 

크래시를 분석하면, 버그나 장애 요소를 미연에 방지할 수 있을 뿐 아니라, 게임 업데이트 사이에 놓치고 넘어가는 부분도 빠르게 확인할 수 있습니다. 개발 완성도를 위해서  꼭 필요한 서비스라 말할 수 있습니다.

크래시 리포트 화면

우리는 크래시 분석을 위한 외부 솔루션(Backtrace, Crittercism등)이 아닌, 자체 솔루션을 개발해 서비스하고 있으며, 게임 품질 개선을 위해 활용하고 있습니다.

모바일 게임 테스트 자동화

많은 게임 회사와 마찬가지로, 넷마블에서도 게임 품질을 검증하는 과정을 여러 테스터와 함께하고 있습니다. 이 과정에서 많은 게임을 각각 약속된 업데이트 일정에 맞춰서 일사불란하게 담당자가 게임 품질을 관리하기가 쉽지 않았습니다. 그래서 반복 테스트나 회귀 테스트는 사람이 아닌 기계가 대신 할 수 있는 방안을 마련했고, 현재는 모바일 게임 테스트를 자동으로 수행하는 서비스를 자체 솔루션으로 개발했습니다. 

현재 많은 게임을 대상으로 모바일 게임 테스트 자동화를 이용하고 있으며, 사용하면서 발생하는 피드백으로 계속 기능 개선을 하고 있습니다. 

빠른 환경 변화에 대응하기 위한 도전

우리가 만드는 “게임 퍼블리싱 플랫폼”으로 글로벌 환경에서 일어나는 많은 문제를 해결하자는 목표 아래, 게임의 성공적인 글로벌 서비스에 기여하고자 합니다. 우리는 다양한 문제를 기술로 해결하고자 하며, 그 안에서 서로 발전하기를 원합니다.

오늘 “넷마블에서 플랫폼 개발은 어떤 일을 하나요?”에 대한 소개로 많은 이야기를 했는데, 어떠셨나요?

지금 이 순간에도 넷마블은 빠른 환경 변화에 대응하기 위해 분주히 움직이고 있습니다. 이 움직임을 함께 하고자 “게임 퍼블리싱 플랫폼”도 많은 변화 및 도전을  멈추지 않고 있습니다. 우리는 언제나 “게임 퍼블리싱 플랫폼”을 만들어갈 동료를 찾고 있으니, 글로벌 서비스나 대용량 트래픽에 관심이 있으신 분은 언제든지 문을 두드려주세요. 환영합니다.

넷마블이 앞으로 나아가는 새로운 미래에 많은 관심 부탁드립니다.