PIGIAMA KASAMA와 함께하는 실시간 멀티플레이어 VR 게임의 빠른 속도에 적응하기

2022년에 설립된 PIGIAMA KASAMA는 자체 IP를 위한 게임을 제작하는 게임 제작 회사입니다. 카사마: The Awakening, 다른 브랜드에 게임 개발 서비스를 제공합니다.
그들의 최신 타이틀인 PICKABOOM은 탐험, 혼란스러운 상호 작용 및 실시간 멀티플레이어 협력을 중심으로 구축된 차세대 소셜 VR 게임입니다. 플레이어는 예측 불가능한 동굴 시스템으로 내려가, 터무니없는 자연 재해를 극복하고, 희극, 긴장, 승리의 순간을 직접 만듭니다.
저희는 공동 창립자인 마테오 판친(Matteo Fanchin)과 파리드 스텔라(Paride Stella)와 이야기를 나누어 그들이 첫 실시간 멀티플레이어 VR 게임을 개발하는 동안 네트워킹 불안정성, 재연결 실패, 성능 저하, 빠른 콘텐츠 처리 시간 등에 어떻게 대처했는지 논의했습니다.
메인 목표는 무엇이었나요 PICKABOOM?
Paride Stella: 우리의 주요 목표는 생동감 있고 예측 불가능하며 끝없이 재생할 수 있는 고에너지 소셜 VR 게임을 만드는 것이었습니다. 플레이어가 팀을 이루고 함께 생존하며 사람들이 공유하고 싶어하는 순간을 자연스럽게 만들어내는 월드를 만드는 것이었습니다.
라이브 게임인 PICKABOOM 은 빠르게 변화하는 요구 사항을 가지고 있습니다. 매주 업데이트를 출시하고, 커뮤니티에서 제기된 문제를 지속적으로 해결하며, 성능을 견고하게 유지하면서 새로운 콘텐츠를 추가합니다. 이를 위해 우리는 확장 가능한 시스템을 설계하고 여러 플레이어 간에 물리적 동작을 동기화하며 스탠드얼론 헤드셋에서 성능을 유지해야 했습니다.
우리는 환경, 재난 및 물리적 상호 작용이 플레이어에게 지속적으로 놀라움을 선사하고 협력하도록 유도하는 혼돈의 협동 생존과 창작 문화가 결합된 느낌을 원했습니다.

개발 과정에서 가장 큰 기술적 도전은 무엇이었나요? PICKABOOM?
Matteo Fanchin: PICKABOOM 은 우리 스튜디오의 첫 멀티플레이어 타이틀로, 네트워킹 불안정성, 재연결 실패, 혼란스러운 물리 이벤트 중 성능 저하, 게임플레이 품질을 지속적으로 개선하면서 매주 업데이트를 배포해야 하는 압박에 직면하게 했습니다.

팀은 이를 극복하기 위해 어떤 조치를 취했나요?
MF: 우리는 문제를 단계별로 나누어 라이브 콘텐츠 파이프라인을 구축하고 지속적인 프로파일링을 구현했습니다. 실시간 콘텐츠 파이프라인의 경우 도구와 적을 모듈화하고 새로운 콘텐츠를 신속하게 추가할 수 있도록 하며 업데이트로 인해 이전 빌드가 브레이크되지 않도록 하고 필요한 경우 주간 일정을 조정했습니다.
지속적인 프로파일링을 위해 정기적인 성능 패스를 실행하고 실제 커뮤니티 플레이어를 사용하여 멀티플레이어 로드를 테스트하며 메모리 사용량, 가비지 컬렉션 및 GPU 스파이크에 대한 VR 전용 최적화를 우선시했습니다. 이러한 접근 방식을 통해 개발 속도를 저하시키지 않고 안정적인 주간 업데이트를 제공할 수 있었습니다.

Unity 6의 새로운 기능과 업데이트는 팀이 직면한 기술적 문제를 어떻게 극복하는 데 도움이 되었습니까?
PS: 게임을 확장하는 동안 다음과 같은 기능과 업데이트를 통해 반복 시간을 간소화하고 성능을 개선했습니다.
빌드 시간 단축: 실시간 게임은 자주 빌드해야 합니다. 최대 10명의 플레이어가 동시에 참여하는 멀티플레이어의 특성상 내부 및 외부 팀 모두와 테스트하는 것이 중요했습니다. 빌드 시간 단축으로 개발 시간을 상당히 절약할 수 있었습니다.
유니버설 렌더 파이프라인(URP) 성능 개선: 하드웨어 제한으로 인해 VR 개발은 항상 도전적입니다. 개선 사항 URP 성능 향상이 눈에 띄었기 때문에 개발이 더 쉬워졌습니다. 혼란스러운 환경에서 명확성과 가독성을 위해 조명, 그림자 및 재질을 조정했습니다.
Shader Graph 업그레이드: 우리는 다음을 사용했습니다. Shader Graph 에셋 생성 속도, 절차적 효과, 캐릭터 커스터마이징 및 최적화를 크게 개선했습니다.
최소한의 성능 비용으로 복잡한 재질을 절차적으로 페인트하기 위해 맞춤형 맵 셰이더를 개발했습니다. 셰이더는 여러 가지 시각적 생태계를 생성할 수 있습니다. 이들은 매우 적은 리소스를 사용하면서도 GPU와 메모리에 미치는 영향을 낮게 유지하면서 매우 다른 모양을 만듭니다.
Shader Graph는 또한 우리의 아바타 재질 시스템 구축에 중요한 역할을 했습니다. 맞춤형 파이프라인을 통해 텍스처에 의존하지 않고도 단일 재질을 모든 캐릭터에 공유할 수 있으며, 동시에 플레이어가 손톱 색상과 같은 세부 사항까지 아바타의 거의 모든 요소를 커스터마이즈할 수 있습니다. 이 방식은 대량의 캐릭터와 액세서리가 동시에 표시되는 경우에도 최대 성능을 보장합니다.

Unity Physics성능 개선: Unity Physics던지기, 잡기, 적의 반응 및 재난을 포함한 모든 상호 작용을 처리합니다. 리지드바디 설정을 멀티플레이어에 충분히 결정론적이도록 최적화했습니다.
Unity 오디오 시스템 개선: Unity 오디오 시스템은 위치 기준 신호, 플레이어 음성, 적 및 폭발에 사용되어 플레이어가 실시간으로 조정하고 통신할 수 있도록 도왔습니다. 이러한 개선 사항을 통해 혼란스러운 순간에도 명확한 공간 음향 신호를 제공할 수 있었습니다.
Addressables 안정성: 캐릭터, 오브젝트 및 액세서리의 실시간 업데이트를 지원하기 위해 Addressables를 사용하여 최대의 유연성을 보장하고 프로젝트의 장기적인 확장성을 지원할 수 있었습니다.

팀은 어떻게 GPU 최적화 효과를 구현했나요?
PS: 우리는 초목과 보석에 GPU 인스턴싱을 사용하여 GPU 최적화 효과를 구현했습니다. 이것은 VFX 및 입자의 성능에 미치는 영향을 줄이는 데 큰 역할을 했습니다. 그런 다음 각 셰이더를 최대한 가볍게 유지하도록 최적화하여 해당 목적에 엄격히 필요한 논리만 포함하도록 했습니다.
또한 폴리곤 수와 드로우 콜을 최대한 낮게 유지하기 위해 지오메트리를 최적화했습니다. 우리의 복잡한 동굴 시스템은 매우 가볍기 때문에 스탠드얼론 VR 하드웨어에서 원활한 성능을 발휘할 수 있습니다. 대규모 섹션의 경우 PICKABOOM 사용자 정의 맵 편집기를 통해 맵을 프로토타입화하고 테스트하고 배포하는 데 이틀이면 충분합니다.
마지막으로 조명 비용을 줄였습니다.게임의 시각적 스타일은 실시간 조명의 사용을 거의 완전히 최소화하도록 설계되었습니다. 실시간 조명은 특정 VFX 순간이나 플레이어의 토치와 같이 절대적으로 필요한 경우에만 사용됩니다. 우리의 맞춤형 맵 에디터에는 동굴 환경을 위해 특별히 구축된 적응형 라이트 프로브 시스템이 포함되어 있어 성능 비용의 일부만으로 안정적이고 믿을 수 있는 조명을 달성할 수 있습니다.
Quest 3 및 Quest 3S에서 60fps 이상을 위해 이 접근 방식의 각 부분을 벤치마킹했습니다.

콘텐츠 스트림 목표는 무엇입니까?
MF: 새 아이템, 새로운 미니 게임, 안정성 개선 및 플레이어 요청 기능을 포함한 새로운 업데이트를 매주 출시합니다. 2~3주 전에 계획을 세우지만 플레이어 피드백 및 크래시 보고서에 따라 유연하게 대응합니다. 모듈식 콘텐츠, 신속한 프로토타이핑 방식 및 Addressables를 사용하여 콘텐츠를 매우 빠르게 제공할 수 있습니다.
팀이 어떤 성능 관련 문제를 겪었나요?
PS: 재난 게임플레이 중 물리학 스파이크, 리지드바디 폭발, 네트워크 지터 및 GPU 부하 문제가 발생했습니다. 물리학 레이어를 단순화하고, 콜라이더를 최적화하며, GPU 인스턴싱 및 저비용 셰이더를 사용하고, 동기화 빈도를 개선하며 불필요한 오브젝트 업데이트를 제거하여 이러한 문제를 해결했습니다.
Unity 프로파일러와 프레임 디버거가 매우 유용했습니다. 또한 런타임 진단을 위해 Android Logcat과 함께 가비지 컬렉션 문제를 정확히 찾아내기 위해 딥 프로파일러에 의존했습니다.

어떤 이정표를 가장 자랑스럽게 생각하십니까?
MF: 우선 Quest 3 및 Quest 3S에서 안정적인 60fps 이상을 달성한 것을 기쁘게 생각합니다. 또한 성능 저하 없이 수백 개의 네트워크 물리 오브젝트를 지원하고 주간 업데이트 중에 "블로커" 버그가 없도록 유지하는 것도 자랑스럽게 생각합니다. 마지막으로 프레임 드롭 없이 고화질 영상을 캡처할 수 있는 카메라 시스템을 갖춘 것도 대단합니다.
VR 게임을 확장하려는 개발자에게 어떤 조언을 해 주겠습니까?
PS: 제 조언은 빠르게 프로토타입을 만들고 나중에 수정하는 것입니다. 또한 확장하기 전에 멀티플레이어 아키텍처를 단순하게 유지하고 지속적으로 프로파일링하는 것도 중요합니다.
MF: 모듈식으로 콘텐츠를 빌드하고 시각적 요소보다 프레임 안정성을 우선시하는 것이 필수적입니다. 또한 실제 플레이어를 대상으로 주간 테스트를 하고 조기에 도구를 개발하는 것도 추천합니다.
Unity로 제작된 프로젝트에 대해 자세히 알아보려면 다음을 방문하십시오. 리소스 페이지.
