본문 바로가기
게임개발/가마수트라

심층 분석: <We Were Here Forever>에서 크로스플레이 기능 구현하기

by 아수랑 2023. 12. 24.
728x90
분야: 사업 / 6분 읽기
작성자: Sam Meyer


크로스 플랫폼 플레이는 <위 워 히어 포에버>와 같은 게임에 필수적입니다. 이를 가능하게 하는 인프라를 살펴보겠습니다.


게임 개발자 심층 분석은 비디오 게임의 특정 디자인, 아트 또는 기술적 특징을 조명하여 겉으로 보기에 간단해 보이는 기본적인 디자인 결정이 실제로는 전혀 간단하지 않다는 것을 보여주기 위해 진행 중인 시리즈입니다.

이번 에피소드에서는 토탈 메이헴 게임즈의 공동 창립자이자 기술 매니저인 샘 마이어(Sam Meyer)가 위 워 히어 포에버의 크로스플레이 계획이 게임 개발 훨씬 전부터 시작되었으며, 미리 생각하는 것이 장기적으로 모든 게임에 도움이 되는 인프라를 구축하는 데 어떻게 도움이 되는지 설명합니다. 

오늘날의 게임 업계에서 크로스플레이 기능을 활성화하는 것은 플레이어를 연결하고 서로 다른 플랫폼의 친구들과 게임을 즐길 수 있도록 하는 데 있어 매우 중요한 요소가 되었습니다. 인기 협동 퍼즐 어드벤처 게임인 위 워 히어 시리즈를 개발한 인디 게임 개발사 토탈 메이헴 게임즈에게 소통과 협력은 기본적인 게임 메커니즘입니다.

이 개발사의 최신작인 위 워 히어 포에버는 플레이어가 몰락한 왕국 캐슬 락에 갇힌 두 명의 탐험가 역할을 맡게 되는 협동 퍼즐 게임입니다. 이 게임은 1인칭 시점으로 진행되며, 각 플레이어는 다른 위치에서 시작하여 다른 플레이어의 주변을 볼 수 없습니다. 게임을 진행하기 위해 플레이어는 워키토키를 사용하여 서로 소통하고 일련의 놀라운 퍼즐을 함께 풀어야 합니다. 이 독특한 어드벤처는 각 플레이어가 서로 다른 정보에 접근할 수 있는 다양한 비대칭 퍼즐 디자인이 특징이며, 진행을 위해 파트너와 정보를 공유해야 합니다. 이 게임에서 플레이어는 긴밀하게 협력하고 명확하게 의사소통해야 하며, 잘못하면 재미있고 수수께끼 같은, 때로는 약간 혼란스럽거나 당황스러운 상황에 처할 수 있습니다. 다행히도 대부분의 탐험가들은 우정을 잃지 않고 행복하고 건강하게 그곳을 빠져나옵니다... 저희는 그렇게 믿습니다.

반응형

"탐험가들? 거기 있나요?"

안녕하세요, 저는 토탈 메이헴 게임즈의 설립자이자 기술 매니저인 샘 마이어입니다. 2023년 3월 현재, 위 워 히어 포에버는 출시 이후 스튜디오의 모든 기록을 경신하며 게임의 인기가 빠르게 상승하고 있음을 증명하고 있습니다. 이 게임의 성공으로 크로스 플레이 기능이 더욱 중요해졌으며, 서로 다른 플랫폼의 플레이어가 힘을 합쳐 어려운 퍼즐을 함께 풀 수 있게 되었습니다.

크로스플레이 기능을 구현하려면 플랫폼 제공업체와 게임 개발자 간의 상당한 조율과 협력이 필요합니다. 이 글에서는 토탈 메이헴 게임즈가 위 워 히어 포에버에서 크로스플레이를 지원하기 위해 취한 조치와 이를 실현하기 위한 프로세스에 대해 살펴보겠습니다.


We Were Here Forever 에서 크로스플레이를 지원하는 프로세스는 실제 게임 제작이 시작되기 훨씬 전부터 시작되었습니다. 스튜디오로서 이전 게임을 개발하는 동안 동일한 기능을 반복적으로 다시 작성하면서 많은 것을 배웠습니다. 이 경험을 바탕으로 팀은 시간을 들여 모든 게임의 공통 기능인 모든 시스템을 리팩터링하고 도출하여 '핵심' 패키지를 만들었습니다. 이 패키지는 개발하는 모든 게임에서 재사용할 수 있어 많은 시간을 절약할 수 있습니다. 입력 처리, 계정 정보 액세스, 도전 과제 잠금 해제, 음성 채팅 서버 연결, 친구 목록 검색, 저장소 관리, 온라인 세션 생성 및 관리 등의 기능을 게임 코드에 활용할 수 있는 단일 진입점입니다. 또한 구현과 분리되어 있기 때문에 재사용이 더 쉬워집니다.

We Were Here Forever의 모든 핵심 시스템은 '공급자 기반 레이어'로 구축되었습니다. 즉, 필요한 경우 모든 타사 플러그인을 교체할 수 있습니다. 이 접근 방식은 크로스 플레이를 지원하는 좋은 방법일 뿐만 아니라 외부 종속성을 중앙 집중화하는 데도 도움이 됩니다. 예를 들어 플러그인의 백엔드 솔루션이 중단되면 해당 시스템을 기반으로 하는 공급업체를 삭제하고 다른 서비스를 사용하여 다시 작성할 수 있습니다.

728x90


하지만 이것이 크로스 플레이에 어떻게 도움이 될까요?

포에버에서 플레이어 데이터를 검색하는 방법을 간단하게 설명한 다음 그림을 참조하세요:


게임을 출시할 때 현재 실행 중인 플랫폼에 해당하는 네이티브 제공업체와 백엔드 제공업체를 통해 핵심 기능을 초기화합니다. 각 구현은 인터페이스를 통해 코어 패키지에 동일한 방식으로 결과를 제공해야 하므로 게임 코드는 모든 플랫폼이 각 기능을 처리하는 방식을 처리할 필요가 없습니다. 이미지에서 '사용자 데이터'로 표시되는 균질화된 플랫폼에 구애받지 않는 데이터 컨테이너에 의존할 수 있습니다. 따라서 게임은 플레이어가 어떤 플랫폼에서 플레이하든 상관없이 다른 플레이어를 표시하고 상호작용할 수 있습니다.

다른 플랫폼에서 플레이하는 사람의 플레이어 데이터에 액세스하는 것은 어려울 수 있습니다. 이 경우 로컬 네이티브 제공업체는 해당 플레이어를 찾을 수 없으며, 반환되는 데이터에는 백엔드 ID, 표시 이름, 아바타 URL만 포함됩니다. 각 플레이어는 게임을 처음 시작할 때 백엔드에 등록되므로 이 정보는 항상 크로스 플랫폼에서 사용할 수 있습니다. 게임 코드가 모든 인스턴스에서 이러한 값을 사용할 수 있도록 의존할 수는 없습니다.

위 워 히어 포에버의 로비 및 매칭 시스템도 같은 방식으로 구축된 시스템입니다. 크로스 플랫폼에서 서로 팀을 구성하려면 클라이언트는 아래 이미지에서 '로비 데이터'로 표시된 네이티브 핸들 및 플레이어 ID의 플랫폼 독립적인 데이터 표현이 필요합니다. 게임 코드에서 새 로비를 생성하도록 요청하면 로비 시스템은 3단계에 걸쳐 로비를 생성합니다: 1) 먼저 백엔드에 그룹 항목을 생성하고, 2) 스팀 친구 목록 등을 통해 다른 플레이어를 확인하고 참여할 수 있어야 하는 플랫폼별 공급자를 사용하여 네이티브 세션 생성을 시도하며, 3) 마지막으로 네이티브 세션 ID가 백엔드 세션 객체 내에 저장되고 게임 코드에 작업 결과가 통보됩니다.


메인 메뉴의 게임 UI를 통해 친구를 초대하면 백엔드 로비 ID가 상대방 클라이언트에게 전송되어 초대로 참여하게 됩니다. 해당 클라이언트가 동일한 플랫폼에서 실행 중인 경우 네이티브 초대도 전송됩니다. 게임 코드는 플랫폼별 구현에 대해 알지 못하므로 다른 플랫폼용 새 공급자를 추가할 때 변경할 필요가 없습니다. 대상 플레이어의 현재 플랫폼에 관계없이 플레이어가 누군가를 초대하려는 경우 로비 시스템과 통신하기만 하면 됩니다.

플레이어가 메인 메뉴에서 다른 플레이어를 기다리는 PlayStation 친구를 발견했을 때 참가 요청을 하는 경우에도 마찬가지입니다. 유니티의 기본 PlayStation 제공업체가 이를 수신하고 로비 시스템을 통해 이벤트를 호출합니다.

이 글을 마치기 전에 개발 과정에서 시간을 절약하는 데 도움이 될 수 있는 여정을 마지막으로 요약해 보겠습니다. 게임 개발은 마감 기한에 쫓기는 경쟁이 될 수 있으므로 크로스 플랫폼을 염두에 두고 코드를 설계하면 잠 못 이루는 밤을 줄일 수 있습니다.

요컨대, 개발 초기에 크로스플레이 기능을 고려해야 합니다. 게임을 출시하려는 모든 플랫폼에서 동일한 기능이 어떻게 작동하는지 살펴보세요. 이렇게 하면 플랫폼 종속성 없이 게임 코드가 활용할 수 있는 단일 데이터 구조를 구축하는 방법을 알 수 있습니다. 플랫폼별 코드와 게임 기능 사이에 레이어를 생성하면 더 많은 플랫폼에 추가하는 것이 플러그 앤 플레이가 됩니다.


* 원문: https://www.gamedeveloper.com/production/deep-dive-we-were-here-forever-crossplay

 

Deep Dive: Implementing crossplay functionality in We Were Here Forever

Cross-platform play is essential to a game like We Were Here Forever. Here's a look at the infrastructure that makes it work.

www.gamedeveloper.com

 

* 게임 사이트: https://totalmayhemgames.com/

 

Total Mayhem Games

Privacy Preference Center

totalmayhemgames.com

 

// 오역이 있을 수 있습니다. 잘못된 번역은 댓글로 알려주세요.

반응형
LIST

댓글