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

심층 분석: 하드웨어 장애물을 극복하고 킹덤 컴 딜리버런스(Kingdom Come: Deliverance)를 스위치로 이식하다

by 아수랑 2024. 9. 18.
728x90
반응형

'추가 제작은 감당할 수 없는 사치입니다.'

관련 분야: 프로그래밍
작성자: Zhanna Goranskaya

 

NINTendo 이미지 제공


이번 편에서는 세이버 인터랙티브의 비즈니스 개발 동유럽 및 CIS 총괄인 잔나 고란스카야(Zhanna Goranskaya)와 함께 킹덤 컴: 딜리버런스를 닌텐도 스위치로 이식하는 과정에 대해 이야기를 나눠보겠습니다.

안녕하세요, 저는 세이버 인터랙티브의 비즈니스 개발 동유럽 및 CIS 책임자 Zhanna Goranskaya입니다. 최근 세이버 인터랙티브는 가장 야심찬 포팅 프로젝트 중 하나인 킹덤 컴: 딜리버런스를 Nintendo Switch로 이식하는 작업을 완료했습니다.

킹덤 컴: 딜리버런스는 체코 스튜디오 Warhorse의 전설적인 프로젝트로, 2018년에 PC, PlayStation 4, Xbox One으로 출시되었습니다. 크라이엔진으로 제작된 대규모 오픈월드 RPG로, 중세 보헤미아의 의복, 무기, 일상생활을 세심하게 재현했습니다.

이렇게 방대하고 복잡한 게임을 휴대용 콘솔로 성공적으로 이식할 수 있을지에 대해 많은 논의가 있었지만, 위쳐 3: 와일드 헌트 포팅의 실적과 성과를 고려했을 때 해낼 수 있다는 확신이 들었습니다.


첫 번째 단계


세이버 내 두 팀이 포팅을 담당했는데, 세이버 스웨덴에서 작업을 시작하여 게임 엔진 작업과 관련된 대부분의 작업을 맡았습니다. 그런 다음 프로젝트는 세이버 코어의 동료들에게 넘겨져 완성 단계에 이르렀습니다.

저희는 킹덤 컴: 딜리버런스의 두 가지 버전, 즉 Xbox One 버전의 아트 에셋과 PC 버전의 코드 및 게임 설정을 포팅의 기초로 사용했습니다. 첫 번째 단계는 게임의 모든 에셋을 평가하고, 사용된 모든 기술을 분석하고, 실행 계획을 수립하는 것이었습니다. 그다음에는 게임을 Switch로 포팅하여 게임이 실행되고 캐릭터가 움직일 수 있는지 확인했습니다. 데이터를 압축하고 에셋을 처리하면 크라이엔진이 Switch에서 게임을 실행할 수 있었기 때문에 이 과정은 비교적 순조롭게 진행되었습니다. 하지만 안타깝게도 성능 문제와 아티팩트, 그리고 꽤 많은 버그가 발견되었습니다. 예를 들어 몇 분만 게임을 플레이해도 메모리가 완전히 소진되어 게임이 다운되는 현상이 발생했습니다.

반응형


규모 문제


2022년 여름부터 2023년 말까지 팀은 포트의 모든 문제 영역을 세심하고 체계적으로 분석하고 수정했습니다. 문제 영역에 대한 분석부터 시작하여 힘든 수작업 프로세스를 거쳤습니다. 예를 들어, QA 전문가들은 게임을 하나하나 살펴보면서 FPS가 떨어지는 부분을 찾아냈습니다. 그런 다음 엔지니어는 각 영역을 점검하고 장면을 망치지 않도록 깔끔하게 다듬을 수 있는 부분을 설정했습니다. 또 다른 라운드에서는 로드 밸런스를 개선하기 위해 야생에서 흔들리는 풀, 얼굴 표정, 옷의 움직임과 같은 요소에 대한 계산을 CPU에서 GPU로 옮겼습니다.

또 다른 주요 작업은 오클루전 최적화였습니다. 캐릭터가 도시의 거리에서 돌담 옆에 서 있다고 상상해 보세요. 캐릭터가 벽을 향하고 있다면 벽 너머에는 아무것도 보이지 않을 것입니다. 하지만 그래픽 프로세서는 벽 뒤에 있는 건물, 다른 캐릭터, 오브젝트를 처리하면서 계속 렌더링할 것입니다. 이는 PC부터 주요 콘솔에 이르기까지 모든 플랫폼에서 중요한 문제이지만, 특히 스위치 포트에서는 이 문제에 특별히 주의를 기울이고자 합니다. 추가 연산은 감당할 수 없는 사치입니다. 그래서 눈에 보이지 않는 모든 컴포넌트를 제거하여 GPU에 부담을 덜어주었습니다.

킹덤 컴 딜리버런스 스크린샷 Nintendo 이미지 제공.


양을 세다... 말 그대로


가장 대표적인 예로 킹덤 컴: 딜리버런스에서 양을 매우 높은 퀄리티의 물리 시뮬레이션으로 처리할 수 있었던 방법을 들 수 있습니다. 예를 들어, 양이 풀밭을 달리는 모습을 보면 게임에서는 각 발굽 아래 풀의 움직임을 정확하게 시뮬레이션하기 위해 수많은 계산을 수행합니다. 양의 다리 하나당 5,000번의 연산이 필요합니다. 여기에 다리를 4개로 곱하면 양 한 마리당 20,000번의 풀 관련 연산을 수행해야 합니다. 이제 영웅이 들판에서 풀을 뜯는 양떼를 마주친다고 상상해 보세요...

이 영역의 성능을 향상시키기 위해 먼저 작업 수를 5,000개에서 단 1개로 줄였습니다. 처음에는 별다른 변화가 없는 것처럼 보였지만 갑자기 동물들의 다리가 지형에 가라앉기 시작했습니다. 각 장면을 개별적으로 검토하여 작업 횟수를 변경할 수 있는 부분과 변경할 수 없는 부분을 파악하여 수동으로 수정해야 했습니다.

 

킹덤 컴 딜리버런스 스크린샷 Nintendo 이미지 제공.


수학적 솔루션과 예술적 솔루션의 균형 맞추기


또 다른 중요한 과제는 의복과 갑옷을 제대로 렌더링하는 것이었습니다. 이 게임은 역사적 사실에 가까운 인상적인 갑옷 시스템을 갖추고 있습니다. 셔츠, 감베손, 체인메일, 금속 밴브레이스, 그리브는 모두 고유한 지오메트리를 가지고 있으며 올바르게 표시되도록 개별적으로 계산됩니다. 갑옷은 언제든지 쓰러진 적에게서 벗거나 훔치거나 착용할 수 있기 때문에 이러한 계산은 실시간으로 처리됩니다. 물론 지오메트리를 단순화할 수도 있지만, 그렇게 하면 이동 중 물리를 계산하는 시스템이 깨져 갑옷이 고무처럼 비현실적으로 보일 수 있습니다. 결국 지오메트리에 영향을 미치지 않는 부분을 조심스럽게 다듬어 전체적으로 더 빠른 계산을 수행하는 것이 해결책이었습니다.

물론 때로는 트릭을 사용해야 할 때도 있습니다. 예를 들어 게임의 모든 컷신은 미리 스크립팅되어 있어 모든 것이 어떻게 진행될지 알고 있습니다. 따라서 플레이어에게 눈에 띄지 않을 정도로 드로우 거리를 다듬는 등 품질 설정을 약간 조정할 수 있습니다.

이 세심한 과정을 통해 거의 모든 게임에서 좋은 퍼포먼스를 달성할 수 있었습니다. 가장 어려웠던 작업은 전투, 토너먼트, 화면에 5명 이상의 캐릭터가 등장하는 이벤트 등 대규모 장면을 처리하는 것이었습니다. 캐릭터 수를 줄이자는 아이디어는 스펙터클을 손상시킬 수 있기 때문에 즉시 무시했습니다. 최대한 최적화하려고 노력했지만 이러한 장면은 FPS의 병목 현상으로 남아있었습니다. 다행히도 게임 속도는 비교적 느리기 때문에 게임플레이에는 영향을 미치지 않습니다.

728x90


킹덤 컴, 딜리버런스... 스위치로 출시되다


저희는 게임의 안정성에 정말 만족하고 있습니다. 개발팀은 작업 초기부터 최소 2시간 30분(Switch의 표준 배터리 수명) 동안 게임이 중단되지 않도록 메모리를 최적화했습니다. 내부 테스트에서는 20시간 연속 플레이도 달성했습니다. 콘솔의 배터리가 다 떨어졌을 때 프로세스를 종료하지 않고 재충전하여 게임을 계속할 수 있었습니다.

이번 스위치 포팅을 통해 기술적으로 가능한 한 많은 것을 달성했다고 생각하며, 새로운 플레이어 그룹이 닌텐도 스위치로 킹덤 컴: 딜리버런스를 즐길 수 있게 되어 기쁩니다.


* 원문:

 

Deep Dive: Conquering hardware hurdles to port Kingdom Come: Deliverance to Switch

'Extra computations are an unaffordable luxury.'

www.gamedeveloper.com

 

* 게임 사이트:

 

Kingdom Come: Deliverance on Steam

Story-driven open-world RPG that immerses you in an epic adventure in the Holy Roman Empire. Avenge your parents' death as you battle invading forces, go on game-changing quests, and make influential choices. Explore castles, forests, villages and other re

store.steampowered.com

 

댓글