Hologryph는 SAND를 어떻게 개발했을까요? 지속 가능한 라이브 운영 주기를 위한 소피의 레이더스

Hologryph의 경우, 개발 중입니다. 모래: 소피의 약탈자들 이는 가상의 1910년 사막 황무지를 자원 추출 게임으로 탈바꿈시켜 출시 이후에도 오랫동안 성장할 수 있도록 만들었다는 것을 의미했습니다. 플레이어는 기지, 전리품 보관소, 무기 역할을 동시에 하는 거대한 보행 기계인 트램플러를 조종하고, 절차적으로 생성되는 오픈 월드를 누비며 고철을 찾고 동료를 만납니다.
그러한 경험을 제공하기 위해서는 엄격한 권한 기반의 서버와 클라이언트 분리, 양쪽에서 동일하게 실행되는 절차적 세계 생성, 하나의 트램플러를 구성하는 수백 개의 개체 동기화, 그리고 실제로 트램플러를 타고 있는 듯한 느낌을 줄 만큼 매끄러운 세계 스트리밍이 필요했습니다. 또한 팀은 성능 저하 없이 새로운 구획, 무기, 효과 및 시즌별 환경을 정기적으로 출시할 수 있을 만큼 빠른 콘텐츠 파이프라인이 필요했습니다.
Hologryph의 CTO이자 게임 디렉터인 세르히 그리네츠와 만나 장기적인 게임 아키텍처 설계, 콘텐츠 파이프라인 유지, 그리고 이처럼 기술적으로 야심찬 게임의 라이브 운영에 필요한 요소에 대해 이야기를 나눴습니다.
실시간 운영 모델은 어떤 모습이며, 일반적인 업데이트에는 무엇이 포함되나요?
세르히 그리네츠: SAND 의 라이브 운영 모델은 열정적인 커뮤니티와 함께 게임을 지속적으로 발전시키는 데 중점을 두고 있습니다. 저희의 최우선 과제는 새로운 콘텐츠, 게임플레이 개선, 밸런스 조정, 버그 수정 및 편의성 개선 사항을 포함하는 정기적인 업데이트를 유지하는 것입니다. 우리의 궁극적인 목표는 해당 게임을 장기적으로 지원할 수 있는 지속 가능한 라이브 운영 모델을 구축하는 것입니다.
처음에 세웠던 핵심 기술 목표는 무엇이었으며, 그 목표들이 장기적으로 존재하고 발전할 수 있도록 설계된 게임을 만드는 접근 방식에 어떤 영향을 미쳤습니까?
우리에게는 세 가지 큰 목표가 있었습니다.
- 권위 있는 서버와 클라이언트 간의 엄격한 분리, 그리고 양쪽에서 동일하게 실행되는 절차적 세계 생성 방식을 채택하고 있습니다.
- 수많은 개체를 동기화합니다. 하나의 트램플러는 수백 개의 개체로 구성됩니다.
- 매끄러운 월드 스트리밍 – 세상은 정말 넓고, 트램플러를 타는 느낌을 제대로 전달하려면 실제로 탈 수 있는 곳이 필요하죠.

트램플러는 게임의 정체성에 있어 핵심적인 요소입니다. 어떻게 커스터마이징 시스템을 구축해서 새로운 부품, 외형, 변형 아이템들을 라이브 운영 콘텐츠로 지속적으로 제공할 수 있도록 하셨나요?
전체 시스템은 구획들을 중심으로 구성되어 있습니다. 트램플러의 구획은 갑판, 선실, 지지 프레임, 장비실 등 여러 부분으로 구성되며, 각 구획은 서로 완벽하게 결합되도록 설계되었습니다.
플레이어는 다음 블록들을 사용하여 트램플러를 조립합니다. 그들은 레이아웃을 선택하고, 덱을 쌓고, 장비를 배치하여 마침내 진정으로 자신만의 기계를 만들어냅니다. 그것은 그들의 기지이자, 금고이자, 무기이기도 합니다.
개발자인 우리에게 있어 이것은 콘텐츠 파이프라인이기도 합니다. 새로운 구획을 추가하려면 코드를 작성하지 않고 모델링하고 구성합니다. 다른 블록과 마찬가지로 건축 시스템에 연결되며, 플레이어는 즉시 디자인에 사용할 수 있습니다. 프로그래머는 부품에 새로운 메커니즘이 필요할 때만 개입하며, 그마저도 작고 독립적인 작업에 불과합니다.
바로 이런 점 때문에 구획은 실시간 운영 환경에 완벽한 콘텐츠가 됩니다. 새로운 모델이 나올 때마다 트램플러 조립 가능 조합의 수가 늘어나고, 생산 비용도 저렴합니다.
구획 시스템의 기본 구조는 어떻게 생겼으며, 어떻게 새로운 메커니즘을 빠르게 프로토타입화할 수 있게 해줍니까?
우리는 모듈식 접근 방식을 사용하여 프로토타입을 빠르게 반복적으로 개발합니다. 내부적으로는 새로운 기능을 플러그인하기 위한 맞춤형 제어 역전 컨테이너가 있으며, 이는 엔티티 컴포넌트 시스템(ECS)과 매우 잘 맞습니다. 게다가 자체 개발한 네트워크 엔진 덕분에 새로운 메커니즘을 구축할 때 네트워킹에 대해 거의 신경 쓸 필요가 없습니다. 복제는 게임플레이 코드보다 한 단계 아래 계층에서 처리됩니다.

Unity의 C# Job System 과 Burst 컴파일러는 어떻게 성능 저하 없이 라이브 운영 콘텐츠를 계속 추가할 수 있는 여유 공간을 확보해 주었습니까?
저희 시뮬레이션은 Unity Entities 아닌 오픈 소스 ECS 프레임워크인 Entitas의 자체 수정 버전을 기반으로 실행되지만, C# Job System과 Burst 컴파일러는 핵심 경로 처리에 필수적입니다. 높이 맵 및 생물 군계 샘플링 작업, Trampler 이동 계산, 그리고 맞춤형 오클루전 컬링을 포함한 절차적 지형 생성은 모두 Burst 컴파일된 작업 체인으로 실행됩니다. 해당 작업은 메인 스레드와 분리되어 실행되므로, 더 복잡한 환경을 만들어도 프레임 손실이 발생하지 않습니다.
VFX Graph 라이브 이벤트, 시즌별 이벤트 또는 주요 성과 달성을 위한 효과를 팀이 신속하게 반복 작업하는 데 어떤 역할을 했습니까?
모래먼지, 연기, 방패, 무기 효과 등 모든 특수 효과는 VFX Graph 기반으로 제작되었지만, 핵심은 우리가 그것을 어떻게 활용하는가에 있습니다. 그뿐만 아니라, 총구 섬광이나 탄착점 효과와 같은 구성 가능한 효과 시스템을 구축하는데, 이는 크기, 색상, 타이밍, 파편, 연기 등 다양한 매개변수를 노출할 수 있는 하나의 유연한 그래프로 존재합니다.
새로운 무기가 등장하면 아티스트는 해당 매개변수를 조정하여 독특한 효과를 얻습니다. 기술적인 아티스트가 관여하거나 새로운 그래프를 처음부터 구축할 필요가 없습니다. 테크니컬 아티스트들은 무기의 모든 효과를 일일이 수작업으로 제작하는 대신, 이러한 시스템을 더욱 풍부하게 만드는 데 시간을 투자합니다.
그것이 바로 콘텐츠 제작 속도를 일정하게 유지할 수 있도록 해주는 비결입니다. 새로운 무기와 이벤트는 개발이 아닌 설정 비용을 들여서라도 뛰어난 효과를 얻을 수 있습니다.

라이브 운영 콘텐츠 파이프라인이 확장됨에 따라 Unity Profiler 는 최적화 워크플로에 어떤 영향을 미쳤습니까?
우리는 취약점을 찾아 최적화하기 위해 클라이언트와 서버 모두에서 정기적으로 성능을 측정합니다. Unity Profiler의 시스템별 분석 기능을 통해 시간이 어디에 소모되는지 정확하게 확인할 수 있으므로 ECS 프로파일링이 매우 편리합니다.
또한 고정된 시나리오에서 성능을 측정하는 자동화된 테스트를 보유하고 있어 매일 추세를 파악하고 변화에 즉시 대응할 수 있습니다.
클라이언트 전체 업데이트 없이 Addressables 사용하여 실시간 콘텐츠 업데이트, 핫픽스 및 시즌별 업데이트를 배포하는 방법을 알고 계신가요?
Addressables 는 메모리 관리의 핵심입니다. 세상은 스트리밍되고 있습니다: 플레이어들이 사막을 가로지르는 동안, 콘텐츠가 끊임없이 그들 뒤로 로드되고 언로드됩니다. 이 모든 과정은 Addressables 통해 이루어지므로, 플레이어가 얼마나 멀리 이동하든 메모리 사용량은 일정하게 유지됩니다.
두 번째로, 덜 명확한 역할은 저희에게는 메인 클라이언트 프로젝트와 서버 프로젝트라는 두 개의 별도 프로젝트가 있으며, 한 프로젝트에서 다른 프로젝트로 자산을 전송하는 맞춤형 솔루션을 구축했다는 점입니다. 이렇게 하면 두 환경 모두 일관성을 유지할 수 있습니다. 서버는 클라이언트와 동일한 파이프라인을 통해 생성된 동일한 데이터를 보기 때문에 "클라이언트에서는 작동하지만 서버에서는 작동하지 않는" 콘텐츠 버그는 구조적으로 발생할 수 없으며, 우리가 테스트해야 할 대상이 아닙니다.

라이브 운영 파이프라인을 더 빠르게 구축하거나 유지 관리하는 데 도움이 된 자산 저장소 도구가 있었나요?
Unity Asset Store 에서 구입 한 GPU Instancer Pro 오픈 월드에 필수적인 사막 지형물을 모두 렌더링하고, Amplify Impostors는 멀리 있는 오브젝트를 처리합니다. Odin Inspector는 데이터 기반 콘텐츠 파이프라인에 필수적인 디자이너용 툴링을 지원하고, Rewired는 PC 와 콘솔 전반의 입력을 처리합니다. Easy Save , DOTween , 그리고 I2 Localization 덕분에 실시간으로 큰 도움을 받았습니다.
Cinemachine 콘텐츠 전략에 도움이 되는 공유 가능하고 하이라이트로 남길 만한 순간들, 예를 들어 메카닉 전투나 멋진 플레이 등을 포착하는 데 어떻게 활용되었나요?
저희는 Cinemachine 을 의도적으로 단순하게 사용합니다. 이 프로그램은 카메라를 관리하고 게임플레이 카메라, 격납고 카메라, 관전 시점 등 다양한 카메라 모드를 전환해 줍니다. 저희는 추가적인 연출이나 각본에 따른 촬영을 일절 하지 않으며, 이는 의도적인 선택입니다. 모래: 소피의 약탈자들 이 게임은 1인칭 시점의 경쟁이 치열한 게임이며, 카메라의 역할은 예술적이라기보다는 신뢰성에 있습니다.
영화 같은 영상미는 게임 자체에서 비롯됩니다. 두 거대한 이동식 요새가 포탄을 주고받는 동안, 당신이 그중 한 요새의 갑판에 서서 포를 재장전하고 있을 때, 그 어떤 연출된 카메라 워크도 그 순간을 능가할 수는 없습니다. 이 시뮬레이션의 웅장함은 영상미에서 비롯됩니다. Cinemachine 카메라가 절대 방해가 되지 않도록 합니다.

승무원 채팅과 공간 근접 채팅을 지원하는 듀얼 채널 Vivox 시스템을 구축하셨군요. 그것을 설계하고 구현하는 데 어떤 과정이 있었나요?
모든 플레이어는 동시에 두 개의 Vivox 채널에 참여합니다. 하나는 팀원들이 항상 플레이어의 목소리를 들을 수 있는 일반 팀 채널(일명 "라디오")이고, 다른 하나는 3D 근접 음성 기능을 통해 플레이어의 위치를 알려주는 채널로, 전 세계 다른 팀의 플레이어들의 목소리를 들을 수 있습니다.
위치 채널은 설정에서 조정된 Vivox 3D 속성(범위, 감쇠, 페이드 모델)을 사용합니다. 당사의 ECS는 화자와 청취자의 위치 정보를 Vivox 에 제한된 빈도(초당 약 20회)로 전송하며, 플레이어가 움직였을 때만 전송합니다. 인증은 당사 자체 백엔드 토큰 서비스를 통해 이루어집니다.
음성 서비스 외에 Vivox 전반적인 라이브 운영 전략에 어떻게 활용되었으며, 소셜 참여 및 고객 유지율을 높이는 데 어떻게 도움이 되었습니까?
근접 음성 인식은 단순한 의사소통 수단이 아니라 게임플레이 의 한 요소입니다. 익스트랙션 게임은 사막에서 만난 팀원들이 대화하고, 협상하고, 협력하거나 배신하는 등 사회적으로 자연스러운 순간들을 통해 재미를 얻습니다. 또한 낯선 사람의 진짜 목소리가 가까이서 들려올 때 발생하는 긴장감은 어떤 인위적인 시스템으로도 만들어낼 수 없습니다. 팀 무전기는 팀 간의 협업을 유지시켜 줍니다.

실시간 운영 중심의 게임을 개발하려는 개발자들에게 가장 중요한 팁은 무엇인가요?
실시간 운영 게임 개발은 도전적인 여정이므로, 팀이 끝까지 완수할 수 있는 회복력을 갖추고 신뢰할 수 있는 파트너와 도구를 확보해야 합니다. 커뮤니티와 긴밀한 관계를 유지하세요. 플레이어들의 의견에 귀 기울이고, 피드백을 통해 배우며, 이를 바탕으로 게임이 시간이 지남에 따라 어떻게 발전해 나갈지 결정하세요.
Unity 로 제작된 프로젝트에 대한 자세한 내용을 보려면 리소스 페이지를 방문하세요.
