모든 비용을 지불하라 트레일러
완전히 파괴 가능한 Deliver At All Costs의 세계를 분석합니다.

누가 하지 않았던가, 도시를 돌아다니며 길에 있는 모든 것을 파괴하는 꿈을 꿨던가?
그것이 바로 모든 비용을 지불하라의 기본 전제이며, Far Out Games가 제작하고 Konami가 배급한 혼란스러운 새로운 액션 게임입니다. 플레이어는 배달원 윈스턴 그린의 운전대를 잡고, 예상치 못한 배달물을 픽업한 후, 이 화물을 목적지로 가져가기 위해 모든 것을 뚫고 나아갑니다.
이 게임의 하이라이트 중 하나는 완전히 파괴 가능한 세계입니다. 복고풍 '50년대 해변 분위기의 게임 세계에서 거의 모든 건물은 산산조각이 날 수 있으며, 플레이어의 차도 마찬가지입니다.
60fps 목표를 달성하는 것은 대단한 일이었습니다. 우리는 게임 감독 다니엘 닐센, 기술 감독/리드 프로그래머 요나탄 요한손, Far Out의 CEO이자 레벨 디자인 리드인 라르스 올손과 함께 앉아, 매번 플레이할 때마다 다르게 무너지는 세계를 만드는 방법에 대해 배웠습니다.
유니티: 게임에 대한 간단한 이야기를 시작해 보겠습니다.
다니엘 닐센, 게임 감독: 모든 비용을 지불하라에서 당신은 모든 것이 파괴 가능한 세계에서 성격이 있는 배달원 윈스턴으로 플레이합니다. 당신은 상상할 수 있는 가장 미친 것들을 배달하고 있습니다. 차 안에서 뒤집히고 흔들리는 거대한 1톤의 황새치부터 차를 날게 하는 풍선까지 모든 것이 포함됩니다. 모든 것은 물리학에 기반하고 있습니다.
라르스 올손, CEO, 그래픽 및 레벨 디자인: 이것은 일종의 1950년대 아메리카나 세계입니다. 우리는 그 시대의 일관된 음악과 소리로 멋진 분위기를 만드는 데 많은 시간을 보냈습니다.

이 게임의 정말 독특한 측면 중 하나는 완전히 파괴 가능한 세계입니다. 그것을 어떻게 만들었는지 조금 이야기해 주실 수 있나요?
라스: 세계의 파괴 가능성은 자산을 구축하는 방식부터 사용되는 기하학과 메시의 양까지 모든 것에 영향을 미쳤습니다. 모든 것은 양면이 필요하므로, 무언가를 파괴하면 내부를 볼 수 있어야 합니다. 빈 껍데기만 있는 것이 아닙니다. 우리는 세상을 매우 반응적이고 몰입할 수 있는 장소로 만들고 싶었으므로, 당신이 하는 모든 것이 환경에 영향을 미칩니다.
여러분은 모든 것이 무너지는 자산 디자인에 어떻게 접근했나요?
라스: 우리는 각 건물이나 소품, 자산을 염두에 두고 모델링하며, 3D 모델의 다양한 요소에 관련 메타 데이터를 추가하는 것을 확실히 합니다. 그런 다음 Unity로 가져와서 부서질 수 있는 합리적인 양의 조각으로 쪼개는 작업을 합니다. Unity에서 모든 것이 파괴하기에 기분 좋게 느껴지도록 설정하는 과정이 꽤 있습니다. 우리는 보통 각 건물을 최소 20-30번 통과하여 모든 각도에서 파괴하는 것이 기분 좋게 느껴지는지 확인합니다.
우리는 다양한 유형의 자산을 위한 맞춤형 파이프라인을 설정했습니다.
조나탄 요한손, 기술 이사: 네, 우리는 Blender에서 모델링할 때 이미 조금 부수려고 노력합니다. 그래서 그 단계에서 지붕, 창문, 벽이 서로 분리되어 있으며, 이를 분류하고 재료에 따라 메타 데이터를 할당할 수 있습니다.
그런 다음 Unity로 가져올 때, 우리는 이러한 모든 부분을 더 작은 조각으로 쪼개기 위한 맞춤형 도구를 가지고 있으며, 이는 Blender의 메타 데이터도 고려합니다.
우리의 파이프라인을 통해, 예를 들어 유리 효과가 있어야 하는 건물의 부분을 지정할 수 있으며, 이는 자동으로 입자 효과, 음향 효과 등을 설정합니다. 모든 다양한 유형에 대해 이렇게 하고, 그런 다음 한 버튼을 눌러 전체 베이킹 설정을 물리학, 최적화 및 필요한 구조와 함께 생성하는 도구가 있습니다. 이를 통해 빠르게 충돌하는 느낌을 반복할 수 있습니다.

라스: 파괴를 위해 건물이나 자산을 설정할 때, 환경 맥락이 있는 장면에서 설정을 테스트해야 합니다. 나는 한 번 이상 내가 방향을 잃고 장면에서 완전히 다른 것을 파괴하고 있다는 것을 깨닫게 된 적이 있습니다. 재미에 휘말리기 쉽습니다, 그렇게 말하자면.
조나탄: 초기 파괴에 대한 아이디어는 꽤 간단했습니다: 건물을 가져와서 여러 부분으로 나누고 모든 부분에 물리학을 추가하면 – 무슨 일이 일어날까요? 그것은 단지 혼란이었고, 모든 것이 어디서나 폭발했습니다. 하지만 우리는 불필요한 충돌을 피하기 위해 몇 가지 전처리 단계를 통해 대부분의 문제를 해결할 수 있었습니다.
결국 우리는 가장 큰 문제에 직면하게 되었고, 솔직히 말하면 처음부터 예상했던 문제였습니다 – 성능. 이 시스템에서 가장 큰 도전이었고, 전체 제작 과정 내내 지속적인 노력이었습니다. 이것은 우리가 통제할 수 있도록 몇 가지 기본적인 것들을 재고하도록 강요했습니다. 그런 다음 아마도 가장 중요한 최적화 중 하나는 동시에 살아 있는 물리 객체의 수를 제한하기 위해 영리한 컬링 논리를 적용하는 것이었습니다.
성능을 유지하기 위해 여러분이 사용한 기술 중 일부는 무엇이었나요?
조나탄: 우리는 많은 객체를 가지고 있습니다. 건물은 완전히 로드되면 각각 약 100개의 부품이나 물리 객체가 될 수 있으며, 이는 꽤 많은 양입니다 – 일반적으로 복잡한 건물에서는 한 자릿수일 수 있습니다. 이것은 물리 엔진이 많은 성능을 차지하게 만들지만, 물론 많은 드로우 호출도 발생합니다.
우리가 사용해온 주요 기술 중 하나는 매우 매우 공격적인 컬링이었습니다. 우리는 이 유형의 게임에 대해 다소 독특한 카메라 각도에서 많은 도움을 받았습니다.
이것은 탑다운, 거의 정사각형으로, 아이소메트릭 느낌을 줍니다. 우리는 최적화에서 그것을 우리의 이점으로 정말 잘 활용했습니다. 우리는 항상 카메라가 어떤 방향을 바라볼지를 알고 있기 때문에, 예를 들어 카메라의 오른쪽이나 왼쪽에 있는 모든 것은 표시되지 않을 것이라는 것을 확실히 알고 있습니다. 그래서 우리는 화면 밖에 있는 요소를 결정하는 데 그것을 많이 사용합니다. 그럼에도 불구하고 우리는 물리에 할당된 프레임 예산의 상당 부분이 필요하다는 것을 발견했습니다. 게임에는 AI 자동차가 돌아다니고, 많은 게임 플레이 코드가 실행되는 등 다른 많은 것들이 있습니다. 이것도 많은 성능을 소모합니다. 물리 엔진이 제 역할을 할 수 있도록 모든 비트를 최대한 끌어내야 했습니다.
우리는 많은 게임 시스템을 대폭 최적화했습니다. 하지만 우리가 직접 만들지 않은 몇 가지 시스템에 대해서도 최적화를 했습니다. 예를 들어, 대부분의 장면에 대해 Unity의 지형 시스템을 사용했지만, 카메라 때문에 LOD를 실제로 사용하지 않고 있습니다. 항상 같은 거리에서 게임을 보게 되기 때문입니다. 지형 시스템에는 내장된 LOD 기능이 있어 매 프레임마다 프레임 예산에서 몇 밀리초를 소모했지만, 우리는 그것이 필요하지 않았고 끌 방법이 없었습니다. 그래서 우리는 자체 하이브리드 솔루션을 구현했습니다. 본질적으로 지형을 메쉬로 굽고, 그로 인해 몇 밀리초를 절약했습니다. 우리는 데칼 렌더링 최적화로부터도 큰 절약을 얻었습니다. 우리는 다양한 유형의 자산이 많기 때문에 텍스처에 추가 세부 정보를 추가하기 위해 데칼에 크게 의존하고 있습니다.

라스: 우리는 Unity 지형 객체와 그 도구를 사용하여 큰 이점을 얻었습니다. Jonatan이 이야기하는 최적화는 게임 플레이 중에 발생하지만, 레벨 디자이너로서 저는 여전히 Unity Terrain 도구로 작업할 수 있고 그 부분에 대해 걱정할 필요가 없습니다.
대니얼: 우리가 한 또 다른 큰 최적화는 입자 시스템을 조정하는 것이었습니다. 우리가 그것들을 비조명으로 변경했을 때, 많은 것을 절약했습니다. 여러 해에 걸쳐 작업한 이 작은 부분들이 함께 모여 차이를 만듭니다.
조나탄: 우리는 파괴를 위해 많은 입자를 사용하고 있습니다. 진정으로 현실적인 파괴를 한다면, 수천 개의 부품이 필요할 것이고, 이는 작동하지 않을 것입니다.
파괴에는 몇 가지 다른 단계가 있다고 말할 수 있습니다. 먼저, 전체 건물이 있고, 그 다음에 건물이 부분으로 나뉘고, 각 부분은 메쉬 입자로 나뉘어져 입자 시스템이 됩니다. 비용이 훨씬 저렴하고, 플레이어가 보지 않기를 원하는 작은 세부 사항을 숨기기 위해 많은 먼지를 사용하지만, 모든 것을 멋지고 일관된 방식으로 혼합합니다.
라르스: 전환을 숨깁니다. 먼지 입자 시스템을 생성하면 실제 물리체와 입자로 변할 때의 전환을 숨겨서 가능한 한 유동적으로 느껴집니다.
대니얼: 전체 게임에서 가장 인상적인 것 중 하나는 PlayStation® 5 또는 Xbox Series X에서 게임을 플레이하고 보는 모든 것을 파괴해도, 무엇을 하든지 간에 여전히 60 fps를 유지한다는 것입니다.
마지막으로 물리에 대해 질문하고 싶었습니다. 게임에서 물리가 정말 흥미로운 몇 가지 다른 영역이 있으며, 물론 파괴 가능한 건물뿐만 아니라, 트럭 침대에서 화물이 이동할 때의 방식도 있습니다.
대니얼: 화물은 전체 게임의 모든 미션에 맞게 맞춤화되었습니다. 거대한 물고기인 마를린을 배달하는 미션이 있으며, 그 미션은 뼈로 설정되어 있습니다.
조나탄: 우리는 동일한 몇 가지 기본적인 요소가 있습니다. 대부분의 패키지가 차량과 운전에 영향을 미치도록 설계되었기 때문에, 우리는 일반적으로 소포와 차량 사이에 물리 조인트를 추가하여 그 상호작용이 흥미로운 순간을 어떻게 만들어내는지 확인하는 것으로 시작합니다.
게임 플레이에서 기능이 잘 작동하도록 많은 스크립팅이 진행되고 있습니다. 예를 들어, 물고기와 함께 우리는 차량에 많은 힘을 추가하고 오랫동안 가지고 놀아 적절한 느낌을 얻었습니다. 그 자체로 흥미로운 상호작용을 생성합니다 – 차량에 무언가 미친 것을 올려놓고 물리 엔진이 그것을 해결하도록 하는 것이 좋은 시작입니다.
라스: 플레이어 차량 자체도 물리에 크게 의존하지만, 물리는 다소 예측할 수 없기 때문에 많은 것을 조정해야 했습니다. 예를 들어, 절벽에서 떨어져 일정 시간 공중에 떠 있으면, 일반적으로 당신의 본능이 말하는 것보다 덜 피해를 입는다는 것을 발견했기 때문에, 차량이 당신이 기대하는 대로 반응하도록 피해 계수를 증가시켰습니다.

조나탄: 모든 차량은 물론 파괴 가능합니다. 플레이어 차량은 떨어질 수 있는 약 36개의 부품이 있으며, 모두 변형 가능합니다.
차와 부품에 대해 우리는 물리 엔진과 충돌을 사용하지만, 모든 힘을 계산하고 피해가 어떻게 되어야 하는지 알아내려고 합니다. 때때로 우리는 피해 수치가 당신이 하는 일과 일치하는 것처럼 느껴지도록 약간 속여야 합니다.
문에 대해, 문을 치면 우리는 그것을 부수고 관절을 추가하여 문이 열리고 매달리게 할 수 있으며, 다시 치면 완전히 떨어져서 땅에 남게 됩니다. 트럭의 바퀴를 잃을 수도 있으며, 그러면 금속 위에서 운전하게 되어 운전에 영향을 미칩니다. 앞 바퀴 두 개를 잃으면 조향할 수 없지만 여전히 운전할 수 있습니다 - 물론 수리할 방법이 있습니다.
대니얼: 실제로 플레이어 자동차와 관련하여 우리가 직면한 가장 큰 도전은 자동차가 뒤집히는 경향이 있다는 것이었기 때문에 다양한 트릭을 많이 사용해야 했습니다. 예를 들어, 지면에서 떨어진 바퀴마다 자동차의 중력이 증가하여 안정성을 높이고 지면에 강하게 눌리게 합니다. 우리가 직면한 또 다른 문제는 민간인을 치면 그들이 자동차의 많은 충돌체 사이에 끼어버리는 경우가 많았다는 것입니다. 왜냐하면 우리는 36개의 분리 가능한 부품이 있기 때문입니다. 이를 해결하기 위해 우리는 설정을 몇 개의 큰 충돌체로 변경했습니다. 민간인이 자동차에 끼어 있는 것을 보는 것은 꽤 불편했습니다. 왜냐하면 그들의 래그돌 설정이 이상해지기 시작했기 때문입니다.
게임에서 가장 자랑스러운 점은 무엇인가요?
대니얼: 모든 것이 파괴 가능하게 만드는 것이라고 생각합니다. 게임의 약 95%가 파괴 가능합니다.
조나탄: 그리고 60 fps로 실행됩니다.
라스: 우리는 자산을 반복하지 않으려고 노력했기 때문에 플레이어가 세계를 탐험하고 새로운 것을 발견할 수 있습니다. 모든 것이 물리적으로 파괴 가능하기 때문에 같은 집을 백 번 지나쳐도 절대 같은 방식으로 무너질 수 없습니다. 항상 새로운 것이 있어, 저는 이것이 게임을 매우 재플레이 가능하게 만든다고 생각합니다.
모든 비용을 감수하고 배달하기는 PC와 PlayStation 5 및 Xbox Series X|S에서 이용 가능합니다. Unity로 제작된 프로젝트에 대해 더 읽으려면 리소스 페이지를 방문하세요.
