상단영역

본문영역

[KGC2018 #2]아이펀팩토리 김진욱 CTO “멀티플레이어 게임, 소규모 팀도 거뜬”

  • 홍릉=변동휘 기자 ngr@khplus.kr
  • 입력 2018.12.12 16:45
  • 글씨크기
이 기사를 공유합니다

12월 12일 ‘KGC2018’ 현장에서 아이펀팩토리 김진욱 CTO는 ‘소규모 개발팀으로 멀티플레이어 게임 개발하기’를 주제로 강연을 진행했다.
 

먼저 김 CTO는 구글플레이 매출 톱10 중 7개가 멀티플레이 게임일 만큼 시장의 트렌드가 멀티플레이 중심으로 바뀌었다고 분석했다. 이에 그는 엔지니어로서 멀티플레이어 게임의 핵심요소들을 분석했다. 멀티플레이어 게임에는 인증, 매치메이킹, 플레이, 상점, 랭킹, 소셜 요소 등의 요소들이 있다. 싱글플레이 게임들 역시 로그인, 유저 데이터 로딩, 인게임 진입 로비, 플레이 및 보상 지급, 상점, 랭킹 등 멀티플레이 요소를 포함한다. 여기에 다른 유저를 게임 내에 넣는 것과 네트워크 지연시간 은폐 등 인게임 플레이 변형이 필요하다. 하지만 인력 풀을 늘리는 데는 한계가 있다는 것이 것이 김 CTO의 설명이다.

이어 그는 ‘배틀그라운드’나 ‘포트나이트’, ‘오버워치’ 등의 게임을 만들 때 더 많은 개발자와 더 다양한 스킬셋이 필요하다고 설명했다. 클라이언트-서버 간 통신을 위한 네트워크 스킬, 지연시간 기획, 운영을 위한 인프라 및 클라우드를 다루는 서비스 등의 스킬이 필요한데, 적은 인원으로 이같은 일들을 해내기 위해서는 외부에 맡기는 방법이 있다. 팀의 핵심 역량을 구분하고, 그 외의 것은 외부에 맡겨야 한다는 것이다. 
클라이언트 엔진을 인하우스로 개발하는 경우는 흔치 않으며, 플랫폼을 가리지 않고 외부 엔진을 도입하는 편이다. 대형 개발사들도 언리얼엔진 등을 활용하는 것이 대표적이다. 서비스 인프라 스트럭처는 많은 부분을 클라우드 서비스로 이용하며, 게임 통계분석 역시 구글 애널리틱스나 AWS 등 외부 분석툴을 활용하는 경우가 많다.

특히 앞에서 예시로 든 게임들은 매치메이킹 기반 멀티플레이어 게임으로, 데디케이티드 서버를 활용한다는 공통점이 있다. 사실 데디케이티드 서버는 25주년을 맞은 ‘둠’에도 적용될 정도로 오래된 기술이지만, 클라이언트 하나가 판정을 담당하는 특성(슈퍼-피어)이 있어 개발이 쉽다. 하지만 그 연결이 단절된 경우 처리가 복잡해지며, 기반이 되는 P2P 네트워킹은 모바일 환경에서 제대로 동작하지 않는다는 것이 단점이다. 이후 등장한 ‘퀘이크’, ‘카운터 스트라이크’ 등의 게임은 해당 판정만 처리하는 별도의 클라이언트(헤드리스 클라이언트)를 분리했다. 이를 통해 클라이언트 수정을 최소화함과 동시에 판정 클라이언트의 변조를 방지하고 서버 전용 로직 없이도 멀티플레이를 구현할 수 있게 됐다.
데디케이티드 서버 개발은 사실상 클라이언트 개발과 같은 것으로, 서버 시작시간 단축이 클라이언트 초기 로딩시간 단축과, 메모리 최적화는 텍스처 최적화와 대응된다. 즉, 좋은 클라이언트를 만들 역량이 있다면 데디케이티드 서버 개발 역량을 함께 갖추는 셈이다.
 

하지만 데디케이티드 서버는 MMO로 넘어가면 문제가 생긴다. 먼저 클라이언트 수준의 메모리를 사용하기 때문에 요구자원이 높다. 또한 서버 수를 늘리고 줄이는 확장 전략이 필요하다. 이 점에서 아마존 등 클라우드를 활용하게 된다.
또한 클라이언트 엔진 자체의 한계로는 엔진 자체의 문제를 수정하기 어렵다. 예를 들어 에픽게임즈의 경우 ‘포트나이트’ 개발 중에 언리얼엔진4를 수정했는데, 배틀로얄 게임이라 초기 인원수가 더 많고, 게임 시작 시 강하할때 시야가 길어 렌더링에 어려움이 있었다. 또한 MMO 동시처리가 쉽지 않고 서버와 클라이언트 간 최적화 관점이 달라 어려움을 겪을 가능성이 높다. 

매치메이킹의 경우 구글 오픈매치, AWS 플렉스매치, Xbox Live 스마트매치 등 플랫폼 홀더가 제공하는 기능을 사용할 수 있다. 
직접 만드는 경우 필요 유저 수가 될 때까지 기다린 뒤 매치를 생성하도록 하면 되며, 레벨이나 ELO 레이팅 값을 써서 비슷한 유저끼리 묶어 처리하는 것이 필요하다. 하지만 유저 수가 충분치 않으면 매칭 자체가 어려우며, 유저 수가 너무 많으면 적절한 유저 매칭이 어려워진다.
이에 김 CTO는 Pong 게임의 매치메이킹을 유니티 3D 데디케이티드 서버와 AWS, 아이펀 엔진을 활용해 직접 구현한 사례를 통해 이를 보다 쉽게 할 수 있다고 설명했다. 

김진욱 CTO는 “게임개발은 여러 요소가 종합적으로 필요한 어려운 일이며, 잘할 수 있는 일에 집중하는 것이 중요하다”며 “작은 팀으로 좋은 게임을 만드는 것이 큰 팀으로 모든 기술적 문제를 푸는 것보다 쉬울 수 있다”고 말했다.

[경향게임스=변동휘 기자]

저작권자 © 경향게임스 무단전재 및 재배포 금지

개의 댓글

0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400

내 댓글 모음