Hologryph가 지속 가능한 라이브 운영 주기(live ops cadence)를 위해 SAND: Raiders of Sophie를 구축한
요약
Hologryph는 대체 역사 추출 게임인 SAND: Raiders of Sophie를 개발하며, 지속 가능한 라이브 운영 주기를 목표로 했습니다. 이를 위해 권위 서버-클라이언트 분리, 절차적 월드 생성, 수백 개의 엔티티 동기화 등 고난도의 기술적 요구사항을 충족하는 콘텐츠 파이프라인 구축에 집중했습니다.
핵심 포인트
- 지속 가능한 라이브 운영 주기를 위한 시스템 설계가 핵심입니다.
- 권위 서버-클라이언트 분리 및 절차적 월드 생성이 필수적이었습니다.
- 수백 개의 엔티티 동기화와 매끄러운 월드 스트리밍이 요구되었습니다.
Hologryph가 지속 가능한 라이브 운영 주기를 위해 SAND: Raiders of Sophie를 구축한 방법

Adam Axler - Unity
Senior Content Marketing Manager

Hologryph에게 SAND: Raiders of Sophie 개발은 대체 역사(alternate-history) 1910년 사막 황무지를 출시 후에도 오랫동안 성장시킬 수 있는 추출 게임(extraction game)으로 바꾸는 것을 의미했습니다. 플레이어들은 트램플러(Tramplers)라는 거대한 이동식 기계를 승무하고 조종하는데, 이 기계는 동시에 기지, 전리품 금고, 무기 역할을 합니다. 이후 그들은 절차적으로 생성된 오픈 월드(procedurally generated open world)를 가로질러 잔해와 서로를 찾아 나섭니다.
이 경험을 제공하기 위해서는 엄격한 권위 서버-클라이언트 분할(authoritative server and client split), 양쪽에서 동일하게 실행되는 절차적 월드 생성(procedural world generation), 단일 트램플러를 구성하는 수백 개의 엔티티 동기화(synchronization of the hundreds of entities that make up a single Trampler)가 필요했으며, 심지어 그 위에 올라타는 느낌을 살릴 만큼 매끄러운 월드 스트리밍(world streaming)도 요구되었습니다. 또한 팀은 성능 저하 없이 새로운 구획, 무기, 효과 및 시즌 환경을 정기적인 주기로 출시할 수 있을 만큼 빠른 콘텐츠 파이프라인(content pipeline)도 필요했습니다.
저희는 Hologryph의 CTO이자 게임 디렉터인 Serhiy Grinets와 장기적으로 게임을 설계하는 방법, 콘텐츠 파이프라인을 유지하는 방법, 그리고 이처럼 기술적으로 야심 찬 게임에서 라이브 운영을 실행하는 데 필요한 것에 대해 이야기를 나누었습니다.
라이브 운영 모델은 어떻게 되며, 일반적인 업데이트에는 어떤 내용이 포함되나요?
Serhiy Grinets: SAND의 라이브 운영 모델은 열정적인 커뮤니티와 함께 게임을 발전시키는 데 중점을 둡니다. 저희의 우선순위는 새로운 콘텐츠, 게임플레이 개선, 밸런싱, 버그 수정 및 편의성(quality-of-life) 변경 사항을 결합한 정기적인 업데이트 주기를 유지하는 것입니다. 궁극적인 목표는 타이틀을 장기간 지원할 수 있는 지속 가능한 라이브 운영 모델을 구축하는 것입니다.

처음에 가지고 있던 핵심 기술 목표는 무엇이었으며, 그것들이 장기적으로 살아남고 진화하도록 설계된 게임에 대한 접근 방식을 어떻게 형성했나요?
저희에게는 세 가지 큰 목표가 있었습니다:
• 권위 있는 서버(authoritative server)와 클라이언트 간의 엄격한 분리, 그리고 양쪽에서 동일하게 실행되는 절차적 월드 생성(procedural world generation).
• 방대한 수의 엔티티 동기화 – 트램플러 하나가 수백 개의 엔티티로 구성됩니다.
• 부드러운 월드 스트리밍(world streaming) – 세계가 매우 크기 때문에, 트램플러를 타는 느낌을 주기 위해서는 탈 장소가 필요합니다.

SAND: Raiders of Sophie | Hologryph | tinyBuild
트램플러는 게임의 정체성(identity)에 핵심적입니다. 지속적인 라이브 운영 콘텐츠로 새로운 부품, 코스메틱, 변종을 출시할 수 있도록 커스터마이징 시스템은 어떻게 구축하셨나요?
전체 시스템은 '구획(compartment)'을 중심으로 구축되었습니다. 구획이란 트램플러의 한 섹션(deck, cabin, support frame, equipment room 등)이며, 모든 구획은 서로 맞도록 설계되었습니다.
플레이어들은 이러한 블록들로 자신들의 트램플러를 조립합니다. 레이아웃을 선택하고, 데크를 쌓고, 장비를 배치하여 궁극적으로 자신만의 기계를 갖게 됩니다. 이 기계는 동시에 그들의 기지(base), 금고(vault), 그리고 무기입니다.
개발자 입장에서 이것은 콘텐츠 파이프라인이기도 합니다. 새로운 구획을 추가하려면, 코딩 없이 모델링하고 설정할 수 있습니다. 이는 다른 블록처럼 빌딩 시스템에 플러그인되며, 플레이어들은 즉시 디자인에 사용할 수 있습니다. 프로그래머가 개입하는 경우는 부품에 새로운 메커니즘(mechanic)이 필요할 때뿐이며, 설령 그럴지라도 작고 고립된 작업입니다.
이것이 구획을 완벽한 라이브 운영 콘텐츠로 만드는 이유입니다: 새로운 구획 하나하나가 가능한 트램플러 빌드의 수를 기하급수적으로 늘리며, 저희에게는 제작 비용이 저렴합니다.
구획 시스템 아래의 아키텍처는 어떤 모습이며, 어떻게 새로운 메커니즘을 빠르게 프로토타입할 수 있게 해줍니까?
우리는 프로토타입을 빠르게 반복할 수 있도록 모듈식 접근 방식을 사용합니다. 내부적으로는 새로운 기능을 플러그인하기 위한 커스텀 제어 역전 컨테이너(inversion of control container)를 가지고 있으며, 이는 우리의 엔티티 컴포넌트 시스템(ECS)과 매우 잘 맞습니다. 게다가, 저희의 커스텀 네트워크 엔진 덕분에 새로운 메커니즘을 구축할 때 네트워킹에 대해 거의 생각할 필요가 없습니다. 복제(Replication)는 게임플레이 코드보다 한 단계 아래에서 처리됩니다.

SAND: Raiders of Sophie | Hologryph | tinyBuild
Unity의 C# Job System과 Burst 컴파일러가 회귀 없이 지속적으로 라이브 운영 콘텐츠를 추가할 수 있는 성능 여유 공간을 제공한 비결은 무엇인가요?
저희 시뮬레이션은 오픈 소스 ECS 프레임워크인 Entitas의 수정된 버전을 기반으로 실행되며, Unity Entities를 사용하지는 않습니다. 하지만 C# Job System과 Burst 컴파일러는 저희의 핵심 경로(hot paths)에 매우 중요합니다. 높이 맵 및 생물군계 샘플링 작업이 포함된 절차적 지형 생성, 트램플러 이동 수학, 그리고 커스텀 가림 처리(occlusion culling) 모두 Burst으로 컴파일된 작업 체인(job chains)으로 실행됩니다. 이 작업들은 메인 스레드에서 벗어나기 때문에, 더 밀집된 월드가 프레임 비용을 발생시키지 않습니다.
VFX Graph가 라이브 이벤트, 시즌적 순간 또는 성취 마일스톤에 대한 효과를 팀이 빠르게 반복할 수 있도록 어떤 역할을 했나요?
저희의 모든 효과(모래 먼지, 연기, 방패, 무기 효과)는 VFX Graph를 기반으로 구축되었지만, 핵심은 저희가 그것을 사용하는 방식입니다. 그 위에, 총구 섬광이나 탄환 충격과 같은 설정 가능한 효과 시스템을 구축하는데, 이는 크기, 색상, 타이밍, 파편, 연기를 포함한 대규모 노출 매개변수(exposed parameters)를 가진 하나의 유연한 그래프로 존재합니다.
따라서 새로운 무기가 등장하면 아티스트가 단순히 이 매개변수들을 조정하여 고유한 효과를 얻을 수 있습니다. 기술 아티스트의 개입이나 처음부터 새 그래프를 구축할 필요가 없습니다. 기술 아티스트들의 시간은 그 무기의 모든 단일 효과를 손으로 제작하는 대신, 이러한 시스템을 더 풍부하게 만드는 데 사용됩니다.
이것이 꾸준한 콘텐츠 주기에 충분히 빠른 생산 속도를 유지하게 해줍니다. 새로운 무기와 이벤트는 개발 비용이 아닌 설정(configuration) 비용만으로 고품질의 효과를 얻게 됩니다.
SAND: Raiders of Sophie | Hologryph | tinyBuild
Unity Profiler는 라이브 운영 콘텐츠 파이프라인 규모가 커지면서 최적화 워크플로우를 어떻게 변화시켰나요?
저희는 클라이언트와 서버 양쪽에서 성능을 정기적으로 측정하여 약점을 찾아내고 최적화합니다. Unity Profiler의 시스템별 분석은 시간이 정확히 어디에 쓰이는지 보여주어, 저희 ECS(Entity Component System)를 프로파일링하기 매우 편리하게 만듭니다.
또한 고정된 시나리오에서 성능을 측정하는 자동화 테스트도 갖추고 있어 매일 추세를 파악하고 변화에 즉시 대응할 수 있습니다.
Addressables를 사용하여 전체 클라이언트 업데이트 없이 라이브 콘텐츠 업데이트, 핫픽스(hotfixes), 시즌별 출시품을 푸시하는 방법은 무엇인가요?
Addressables는 저희 메모리 관리의 핵심입니다. 월드가 스트리밍됩니다: 플레이어들이 사막을 가로지르면서 콘텐츠가 끊임없이 로딩되고 뒤에서 언로드됩니다. 이 모든 과정이 Addressables를 통해 이루어져, 플레이어가 아무리 멀리 이동해도 메모리가 일정하게 유지되도록 합니다.
두 번째이자 덜 명확한 역할은 저희가 메인 클라이언트 프로젝트와 서버 프로젝트라는 두 개의 별도 프로젝트를 가지고 있고, 한쪽에서 다른 쪽으로 에셋을 전송하는 맞춤형 솔루션을 구축했다는 것입니다. 이는 두 환경 모두 일관되게 유지하게 합니다: 서버는 동일한 파이프라인을 통해 빌드된 것과 같은 데이터를 보므로, 테스트해야 하는 '클라이언트에서는 작동하지만 서버에서는 깨지는' 콘텐츠 버그가 구조적으로 불가능합니다.

SAND: Raiders of Sophie | Hologryph | tinyBuild
라이브 운영 파이프라인을 구축하거나 유지하는 데 도움이 된 Asset Store 툴이 있었나요?
Unity Asset Store에서 GPU Instancer Pro는 오픈 월드에 필수적인 사막의 산재된 오브젝트(desert scatter)를 모두 렌더링하며, Amplify Impostors는 원거리 오브젝트를 처리합니다. Odin Inspector는 데이터 기반 콘텐츠 파이프라인의 핵심인 디자이너용 도구링을 구동하고, Rewired는 PC와 콘솔 전반의 입력을 처리합니다. Easy Save, DOTween, I2 Localization 모두 저희에게 실제 시간을 절약해 주었습니다.
Cinemachine은 콘텐츠 전략에 활력을 불어넣는 공유할 만한 하이라이트 순간(예: 메카 전투, 주요 플레이)을 포착하는 데 어떻게 작용했나요?
저희가 Cinemachine을 사용하는 방식은 의도적으로 단순합니다. 이 시스템은 카메라를 관리하고 다양한 뷰(게임플레이 카메라, 격납고, 관전자 시점 등) 사이를 전환해 줍니다. 저희는 여기에 추가적인 연출이나 스크립트 기반의 촬영 기법을 적용하지 않았는데, 이것이 의식적인 선택입니다. SAND: Raiders of Sophie는 1인칭의 매우 경쟁적인 게임이며, 카메라의 역할은 예술적이기보다는 신뢰성이 있어야 합니다.
시네마틱한 품질은 게임 자체에서 나옵니다. 거대한 워킹 포트리스 두 대가 포탄을 주고받고 있고, 플레이어가 그중 한 척의 갑판에 서서 총을 재장전하는 상황이라면, 어떤 스크립트 기반 카메라 작업도 이를 능가할 수 없습니다. 시뮬레이션 자체가 주는 장대함이 곧 촬영 기법인 셈입니다. Cinemachine은 카메라가 방해가 되지 않도록 보장해 줍니다.

SAND: Raiders of Sophie | Hologryph | tinyBuild
듀얼 채널 Vivox 설정(크루 채팅 + 공간 근접 채팅)을 구축하셨습니다. 이를 설계하고 구현하는 과정은 어떠했나요?
모든 플레이어는 한 번에 두 개의 Vivox 채널에 속해 있습니다. 하나는 크루가 항상 플레이어의 목소리를 들을 수 있는 일반적인 크루 채널(‘무전기’ 역할)이고, 다른 하나는 3D 근접 음성(proximity voice)을 통해 월드 내 다른 크루의 주변 플레이어 소리를 듣게 하는 위치 기반 채널입니다.
위치 기반 채널은 설정 파일에 조정된 Vivox 3D 속성(범위, 감쇠율, 페이드 모델 등)을 사용합니다. 저희 ECS는 스피커와 리스너의 위치를 최대 초당 약 20회로 제한하여 Vivox로 전송하며, 플레이어가 이동했을 때만 데이터를 보냅니다. 인증은 자체 백엔드 토큰 서비스(backend token service)를 통해 이루어집니다.
음성 통신 외에, Vivox가 광범위한 라이브 운영 전략(live ops strategy)에 어떻게 작용했으며, 소셜 참여와 리텐션(retention)을 높이는 데 어떤 도움을 주었나요?
근접 음성은 단순한 통신 수단을 넘어선 게임플레이 기능입니다. 추출(Extraction) 장르는 사막에서 만난 팀원들이 대화하고, 협상하며, 팀을 이루거나 배신하는 등 자발적으로 발생하는 사회적 순간에 생명력을 얻습니다. 게다가 낯선 사람의 실제 목소리가 가까이 들려오는 것은 어떤 스크립트 시스템도 만들어낼 수 없는 긴장감을 조성합니다. 크루 라디오는 팀 간의 협응을 유지시켜 줍니다.

SAND: Raiders of Sophie | Hologryph | tinyBuild
라이브 운영(live ops) 기반 게임을 개발하려는 개발자들에게 최고의 조언은 무엇인가요?
라이브 운영 게임을 개발하는 것은 어려운 여정입니다. 따라서 팀이 이를 완수할 수 있는 회복력을 갖추고 있으며, 믿을 수 있는 파트너와 도구를 옆에 두고 있는지 확인해야 합니다. 커뮤니티와 가깝게 지내세요. 플레이어의 목소리에 귀 기울이고, 그들의 피드백으로부터 배우며, 그것이 시간이 지나면서 게임이 어떻게 진화할지 형성하는 데 도움을 받도록 하십시오.
AI 자동 생성 콘텐츠
본 콘텐츠는 Unity Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기