최종 게임에 추가 자산이 남아있는 이유는 무엇입니까?


28

방금 게임에 사용되지 않았거나 관련되지 않은 많은 것들, No Man 's Sky의 파일에서 발견 된 것에 대해 읽었습니다. 또한 Watch Dogs 파일에 남겨진 E3 설정에 대해 얼마 전에 읽었습니다. 게임 개발자가 최종 게임에서 오래되고 사용되지 않은 파일을 남기는 이유는 무엇입니까?

확실히 이것은 디스크의 추가 공간을 차지하므로 게임을 다운로드하면 더 많은 데이터를 다운로드해야합니까?

또한 개발자가 사람들이 무엇을 찾을 수 있는지 두려워하지 않습니까?


7
일반적으로 삭제를 보증하기에 충분한 데이터를 사용하지 않습니다. 때로는이 "미사용"파일을 삭제하면 실제로 "미사용"파일의 일부를 사용하는 다른 게임 오브젝트에 문제가 발생할 수 있습니다. 나는 그것이 충족되어야 할 마감일과 마지막 순간에 내용을 줄일 수 있다는 사실에 달려 있다고 생각합니다.
라이언 화이트

10
참고로, 절단 실 바닥은 이에 대한 예들로 가득합니다. tcrf.net/The_Cutting_Room_Floor
drawoc

2
1) 아무도 그것들을 삭제하는 것을 기억하지 못했습니다. 2) 예. 3) 번호
253751

다른 예는 Dota2입니다. 개발자는 자산을 남길뿐만 아니라 향후 출시 될 수있는 불완전한 기능도 포함합니다. 예를 들어 새로운 캐릭터, 아이템 또는 기술. 따라서 바이너리를 분해하는 사람들은 게임에 대한 미래의 가능한 뉴스 중 적어도 몇 가지를 볼 수 있습니다 (예를 들어 몇 년 전에 코드에서 보았던 피트 주인 / 지하 캐릭터는 며칠 전에 공식적으로 발표되었습니다).
Bakuriu

답변:


35

주요 게임은 빌드 파이프 라인이라는 것을 사용합니다. 이것은 모든 다른 배포판에 대한 게임 콘텐츠 제작을 처리하는 다른 도구 모음과 같습니다. No Man 's sky 및 Watch_Dogs와 같은 다중 플랫폼 게임은 플랫폼마다 다른 자산을 사용합니다. 그래서 내가 보는 방식에 귀하의 질문에 대한 두 가지 가능한 답변이 있습니다.

  1. 개발자들은 파이프 라인에서 특정 자산을 제거하는 것을 잊어 버렸고 실제 게임과 번들로 제공되었습니다.

  2. 개발팀은 마감일을 맞출 수 없었기 때문에 패치 또는 업데이트 중에 나중에 사용하기 위해 게임에 "사용하지 않은"자산을 일부 남겨 두었습니다. 위쳐의 악마 구덩이의 예 3.


16
또한, 3. "미사용 자산"을 의도적으로 배치하여 모더 / 파워 유저가 찾을 수 있도록 다음 릴리스에 몰래 들어갔습니다. 콘텐츠가 특정 타이틀이나 향후 패치에서 사용되지 않을 수도 있다는 점을 제외하고 # 2와 유사합니다.
Kroltan

4
Kroltan # 3의 경우 +1 IIRC Witcher 3에는 사용되지 않은 내용에 숨겨진 부활절 달걀의 예가 있습니다. 개발자의 사진이나 그와 비슷한 사진을 찍기 위해 게임을 수정 해야하는 비밀 영역이있었습니다.
우유

3
"삭제를 잊어 버렸습니다"는 설명하기에 좋은 방법이 아닙니다. 개발자는 자산 사용이 제거되었음을 알 수 있습니다. 그러나 가능한 다른 팀이 자산을 사용하기 시작했습니다. 이 경우 가능한 제거 비용 (완전히 게임 중단)이 제거 비용보다 훨씬 큽니다.
Aron

33

여러 사람이 작업하는 대형 게임에서 참조 된 모든 콘텐츠 를 찾는 것이 생각보다 어려울 수 있습니다 . 도움을 줄 수있는 명백한 도구가있는 경우에도 (우리는 이러한 도구를 ArenaNet에서 만들었습니다. Unreal을 사용하는 사람은 누구나 해당 도구의 Unreal 버전에 액세스 할 수 있습니다. Bungie는 동일한 작업을 수행하고 도구에 대해 이야기하는 도구도 있습니다.)

콘텐츠를 참조 할 수있는 여러 가지 방법이 있습니다. 일반적으로 시스템이 추적 할 수없는 것으로 콘텐츠를 참조하면 (예 : 코드에서 일부 자산에 대한 암시 적 또는 하드 코딩 된 참조 생성).

모든 컨텐츠 상호 참조를 찾는 문제를 해결했다고 가정하더라도 실제로 무언가가 사용 되는지 알 수없는 문제가 있습니다. 어쩌면 일부 어셋이 스크립트 어딘가에서 참조되었을 수도 있지만 해당 스크립트의 트리거 볼륨이 벽 안에 잘못 배치되어 콘텐츠가 게임 내에서 스폰 될 수 없습니다. 철저하게 테스트 하는 것도 매우 어렵습니다.

사용하지 않는 컨텐츠를 감지하고 필터링하기위한 자동화 된 (또는 자동화 가능한 ) 방법이 실패하면 구식 방식 (인간 개입)이 남습니다. 인간은 실수, 잘못된 가정 ( 다른 사람 이 변경 한 것이 아니더라도 파일이 여전히 사용된다고 생각할 수도 있음 )을 만들며, 때로는 이스터 에그 (Easter Eggs)와 같이 게임에서 의도하지 않은 내용을 의도적으로 남겨두기도합니다. 이것을 이끌어내는 것은 단지 인간의 실수입니다.

그것은이다 일반적으로 정말 부하 또는 파일 크기 최적화를 위해 많은 바늘을 이동하는 내용의 충분한 양 없습니다. 대규모 빌드 체인 또는 엔진에서 가장 크거나 가장 느린 자산을보고하는 도구도 있지만 주요 위반자의 영향을 줄이고 모든 단일 낭비 바이트를 찾아서 찾지 않는 데 중점을 둡니다. 보통.


Arqade에서 이스터 에그로 사용되지 않은 파일의 예 : Undertale에서 '
Philipp

1
Starbounl은 현재 레시피를 가르치는 비트가 삭제 되었기 때문에 "요리 촉수"를 얻거나 만들 수없는 문제가 있습니다. 한편 자산 및 정의 파일은 작동해야하는 것처럼 보입니다. 저기서 당신은 (어쨌든 음식을 위해) 같은 재료로 만든 몇 가지 다른 아이템을 만들거나 집어 올리는 한 가지 레시피를 자주 배우기 때문에 실수로 비트가 게임에서 제외되는 방법을 쉽게 알 수 있습니다.
StarWeaver

1
디스크에 포함 된 게임에서 사용하지 않는 모든 콘텐츠를 찾을 수 있더라도 일부 게임은 디스크를 제조 한 후 공급 업체에서 생산할 수있는 추가 비용이 드는 추가 기능 모듈을 사용자가 다운로드 할 수 있도록 설계되었습니다. . 디스크에 게임의 디스크에는 사용되지 않지만 다운로드 버전에서는 유용한 10 메가 바이트의 텍스처가 디스크에 포함되어 있으면 다운로드 크기를 10 메가 바이트 줄일 수 있습니다.
supercat

1
출시 된 게임에서 사용되지 않은 자산이 많았던 곳의 예는 MechCommander 2였습니다. blogs.msdn.microsoft.com/briankel/2006/01/24/…
Ross Ridge

참고 사항 : Turing-complete language (및 가장 유용한 언어)의 경우 코드 줄이 실행되는지 여부를 확인할 수 없습니다 (Halting Problem). 그렇게한다면 게임을 버리고 대신 노벨상을받을 수도 있습니다.
Ordous

9

다른 답변에서 빠진 것은 이것이 게임과 관련이 없다는 것입니다. 모든 응용 프로그램에 영향을줍니다.

합리적으로 복잡한 프로그램에는 사용되지 않는 파일과 코드가 항상 있습니다. 다음 두 가지로 인해 발생합니다.

  • 프로그램은 시간이 지남에 따라 발전합니다.
  • 일부 코드 또는 파일이 더 이상 사용되지 않는지 알아 내려면 노력해야합니다.
    • 노력을 기울이지 않고 물건을 제거하면 응용 프로그램의 동작을 예측할 수 없게됩니다

7

Uri Popov답변 추가 / 향상 :

  1. 프로그램은 새로운 개선 된 기존 자산 파일 버전과 프로그램 자체에 대한 업데이트가 포함 된 업데이트 패키지를 설치할 수 있습니다. 필자의 경우 이전 버전의 애셋을 이전 버전으로 대체하고 싶기 때문에 이전 버전의 자산 파일을 덮어 쓰지 않습니다 (예 : 완전히 비참한 업데이트를 배포 한 공황을 상상하십시오 :-)). 원래 프로그램 버전은 texture_0.dds 및 업데이트 된 하나의 texture_1.dds를 사용 중일 수 있으므로 texture_0.dds는 더 이상 필요하지 않습니다. 덮어 쓰기 (단일 이름 만 사용)하면 새로운 애셋 파일을 더 오래된 애셋으로 덮어 쓰는 까다로운 메커니즘이 없다면 프로그램 업데이트 제거, 즉 원래 버전으로의 폴 백이 금지됩니다. 그리고 그것은 누군가가지지하고 싶은 것이 아닙니다.

편집하다:

원래 질문에 대한 의견에 반응하면서,

아무도 그들을 삭제 기억

  1. 나는 아무도 감히 그들을 삭제할 수 없다고 말할 것입니다. 해당 파일 X의 로딩 지점에서 게임에 충분한 오류 트래핑 (실수, 무지, 오류, 핵심 직원 등)이 부족하여 강렬한 테스트에도 불구하고 문제가 발견되지 않으면 어떻게됩니까? 로딩이 "3 회마다", 36의 35 레벨에서만 발생하고 4 주간의 격렬한 게임에 도달한다고 가정 해보십시오. 소프트웨어 충돌로 명성을 잃는 것은 잔인한 표현이며 최악의 경우 파산 한 회사가 될 수 있습니다. 해당 파일을 건드리지 않는 것이 좋습니다 :-).

4
"아무도 감히 제거하지 않음"에 +1 사용하지 않는 자산을 제거하지 않으면 디스크 공간이 약간만 소모되는 경우가 많습니다. 팀의 다른 사람이 여전히 사용중인 자산을 제거하면 큰 자주색 바둑판을 남기거나 충돌을 일으켜 회사에 많은 비용이들 수 있습니다.
Patrick M

2

게임 개발자가 최종 게임에서 오래되고 사용되지 않은 파일을 남기는 이유는 무엇입니까?

확실히 이것은 디스크의 추가 공간을 차지하므로 게임을 다운로드하면 더 많은 데이터를 다운로드해야합니까?

또한 개발자가 사람들이 무엇을 찾을 수 있는지 두려워하지 않습니까?

게임 개발자는 사용하지 않는 모든 파일을 찾아 제거하기 위해 노력하지 않기 때문에 최종 게임에서 사용하지 않는 파일을 남겨 둡니다. 모든 게임이 약간의 추가 자료로 잘 실행되면 시간은 돈입니다. 정리는 비용이 증가합니다 (자동화 방법에 따라 다름).

추가 공간이 필요하고 더 많은 데이터를 다운로드해야 함을 의미하지만 이는 일반적으로 개발자의 문제가 아니며 고객조차도 약간 큰 다운로드 크기에 대해서는 크게 신경 쓰지 않습니다.

개발자가 사람들이 찾을 수있는 것을 두려워해야하는지 확실하지 않습니까? 왜해야합니까? 여분의 파일 (실제로 나쁜 작품, 상사 또는 고객에 대한 농담 등)이 손상되지 않는 한 그들은별로 신경 쓰지 않을 것입니다. 에 있지만 어떤 경우 그들은 플레이어가 자산에 감지 할 수있는 것을 실제로 두려워.


Not sure if developers need to be afraid of anything people might find?Titanfall 2의 기술 테스트가 PC에 나오지 않는 이유를 읽으십시오.
TMH

@TomHart 당신이 맞아요. 이 경우 그들은 두려워했다. 질문에 언급 된 것과 같은 다른 경우에는 추가 자산이 없었습니다. 두려운 수준은 개발자마다 다릅니다.
Trilarion

1

그것은 힌트를 얻었지만 다른 답변에 의해 완전히 다루어지지 않았습니다. 모두 비용으로 귀결되며 일부 비용은 생각보다 까다 롭습니다.

가장 확실한 비용은 누군가가 삭제해야한다는 것입니다. 이제 케이스에 인턴을 넣고 파일을 검색하고 실제 게임에 필요하지 않은 파일을 제거하지 않아도됩니다. 그러나 여전히, 당신은 이것에 대해 비용을 지불해야합니다. (당신이 인턴을 지불하지 않는 괴물이기 때문에) 당신은 여전히 ​​그 인턴이 개발자 팀을 위해 피자를 주문하는 것과 같은 유용한 일을 할 수 있었을 것입니다. 여전히 비용이 듭니다.

덜 분명한 비용은 제거하려는 리소스가 이유 때문에 투입된 것 입니다. 이유가 더 이상 사용되지 않는다고 절대적으로 확신하십니까? 물론, 당신은 데모 용으로이 코드를 작성했고 더 이상 필요하지 않지만 완전히 사실입니까? 다른 라이브러리로 마이그레이션하는 것을 잊어 버린 유용한 기능을 작성 했습니까? Stacey는 실제 게임에서 끝난 데모를위한 멋진 그래픽을 만들었습니까? 내부 시뮬레이터는 여전히 테스트에 사용했던 이전 레벨을 사용합니까?

게임 만들기는 사업입니다. 돈을 버는 사업이 아니더라도 여전히 자원이 부족한 사업입니다. 각 결정에 대해 비즈니스 사례를 작성하지 않더라도 모든 결정에는 비용-편익 분석이 필요합니다. 그리고 간단한 사실은 게임에 이러한 자산을 남겨 두는 비용이 약간 더 커지고, 이점은 출시 직전에 폭발 할 위험이 크게 줄어든다는 것입니다.

"명백하지 않은"단락의 모든 물음표는 불확실성을 나타냅니다. 당신은 모른다. 그리고 사업을 운영 할 때는 알려지지 않은 사람들과 거래해야합니다. 그리고 알려진 것은 약간의 팽창이 있더라도 빌드 한 패키지가 테스트를 통과했다는 것입니다.

개발 프로세스 주변에서 정보 유출과 같은 다른 잠재적 비용이 발생하여 해킹을 유도하는 데 사용될 수 있지만 테스트 프로세스를 그대로 사용하면 실제로 걱정할 필요가 없습니다.

tl; dr : 4 % 더 큰 다운로드는 눈에 띄지 않지만 필요한 파일을 제거하여 게임을 중단 한 경우에는 알 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.