Чому зайві активи залишаються у фінальній грі?


28

Я просто читав про те, що було виявлено у файлах для No Man's Sky, про багато речей, які не використовувались та не стосувалися гри. Нещодавно я також прочитав про параметри E3, які залишаються у файлах Watch Dogs. Чому розробники ігор залишають старі та невикористані файли у фінальній грі?

Напевно, це просто займає додаткове місце на диску і означає, що потрібно завантажити більше даних, якщо ви завантажите гру?

Також, чи не бояться розробники того, що люди можуть знайти?


7
зазвичай він не використовує достатньо даних для того, щоб видалити їх. І іноді видалення цих "невикористаних" файлів насправді може спричинити проблеми з іншими ігровими об'єктами, які використовують частини файлів "Невикористані". Я думаю, що це просто зводиться до строків, які потрібно дотримати, і того, що в останній момент вміст можна скоротити.
Райан білий

10
Як бічна примітка, підлога в розрізній кімнаті рясніє прикладами цього. tcrf.net/The_Cutting_Room_Floor
drawoc

2
1) Ніхто не згадав їх видалити. 2) Так. 3) №
користувач253751

Інший приклад - Dota2. Не тільки розробники залишають деякий актив, вони навіть включають неповні функції, що означають можливі майбутні випуски. Наприклад, нові персонажі, предмети чи навички. Тож люди, які розбирають бінарні файли, можуть бачити хоча б деякі можливі майбутні новини щодо гри (помітний приклад: персонаж піт-лод / нижній партер, який був помічений у коді років тому, був офіційно оголошений кілька днів тому).
Бакуріу

Відповіді:


35

Основні ігри використовують щось, що називається побудови конвеєра. Це як ще один набір інструментів, який обробляє вміст ігор для всіх різних дистрибутивів. Ігри з багатьма платформами, такі як No Man’s sky і Watch_Dogs, безумовно, використовують різні активи для різних платформ. Тож я бачу це два можливі відповіді на ваше запитання.

  1. Дияволи забули вилучити певні активи з конвеєра, і вони потрапили в комплект з реальною грою.

  2. Девіли навмисно залишили деякі "невикористані" активи в грі для подальшого використання під час виправлення або оновлення, оскільки вони не змогли дотриматись терміну. Приклад Чортова яма від Відьмака 3.


16
Крім того, 3. Навмисно розміщені "невикористані активи", щоб моддери / енергокористувачі знайшли їх, щоб прокрастись до наступних версій. Подібно до №2, за винятком того, що вміст може навіть не використовуватись у цьому конкретному заголовку чи майбутніх виправленнях.
Кролтан

4
+1 для Кролтана №3. IIRC The Witcher 3 має приклад писанка, захованого у невикористаному вмісті. Було якесь секретне місце, яке вам потрібно було модифікувати для гри, щоб дістати фотографію дияволів чи щось подібне.
молоко

3
"Забули видалити" - це не дуже вдалий спосіб описати це. Чорти можуть знати, що вони зняли використання активу. Але можливо інша команда почала використовувати актив. У такому випадку можлива вартість видалення (повністю розірвавши гру) значно перевищує користь її видалення.
Арон

33

Це може бути важче, ніж ви думаєте, знайти весь посилається вміст у великій грі, над якою працюють декілька людей. Навіть коли є явні інструменти для допомоги (ми створили такі інструменти на ArenaNet, кожен, хто використовує Unreal, має доступ до версії цих інструментів Unreal, у Bungie є інструменти, які роблять те саме, і навіть розповідали про них тощо)

Існує кілька способів посилання на контент, які можуть перемогти такі системи, як правило, просто шляхом посилання на вміст на те, що система не може відстежувати (наприклад, створення неявної або жорстко закодованої посилання в коді на якийсь актив).

Навіть якщо ви вирішили проблему знаходження всіх змісту інтер посилань, у вас є проблеми , не будучи в змозі сказати , якщо що - то насправді використовується . Можливо, на якийсь ресурс десь посилається сценарій, але об'єм тригера для цього сценарію неправильно розміщений всередині стіни, і вміст таким чином ніколи не може породжуватись у грі. Тестування цього вичерпно також досить складно.

При автоматизованої (або автомати , здатні ) методи виявлення і фільтрації вмісту невикористаної зазнають невдачі, ви залишилися з старомодним способом: втручання людини. Люди роблять помилки, погані припущення (вони можуть подумати, що файл все ще використовується, хоча це не тому, що хтось інший вніс зміни), і так, навіть іноді вибирають навмисне залишати невідповідний вміст у грі як пасхальні яйця. До цього призводить лише природна помилковість людини.

Це , як правило , не достатня кількість контенту , щоб дійсно перемістити голку багато для навантаження або файлів оптимізації розміру. Існують також інструменти для звітування про найбільші або найповільніші активи будь-якої великої ланцюга побудови або двигуна, однак увага зосереджена на зменшенні впливу основних порушників, а не на пошук та пошук кожного байта, що витрачається. Зазвичай.


Приклад невикористаного файлу як писанка на Arqade: Де у "Undertale" з'являється "Пісня, яка може грати, коли ти борешся"?
Філіпп

1
Наразі в Starbounl є проблема, коли ви не можете дістати / приготувати "приготоване щупальце", тому що шматочок, який навчає вас рецепту, був видалений. Тим часом файли активів та дефініцій просто сидять там, схожі на те, що вони повинні працювати. Зважаючи на те, що там ви часто вивчаєте один рецепт створення / збирання якогось іншого предмета, виготовленого з того самого інгредієнта (все одно для їжі), легко зрозуміти, як шматочки можна виключити з гри просто помилково.
StarWeaver

1
Навіть якщо можна було знайти весь вміст, який не використовується грою, включеною на диск, деякі ігри розроблені, щоб дозволити користувачам завантажувати додаткові модулі додаткових витрат, які можуть бути вироблені продавцем після виготовлення дисків. . Якщо диск містить текстури на десять мегабайт, які не використовуються в грі на диску, але будуть корисні у версії для завантаження, це може призвести до зменшення розміру завантаження на десять мегабайт.
supercat

1
Старий приклад того, що в постачаній грі було багато невикористаних активів, був MechCommander 2. Коли Microsoft тестувала свої нові інструменти XNA Build на ній, виявило, що 40% текстур гри не використовувались. blogs.msdn.microsoft.com/briankel/2006/01/24/…
Росс Ридж

Лише зауваження. Для мов, що повністю завершуються Тьюрінгом (і найкорисніші з них), з'ясування того, чи виконується рядок коду, коли-небудь виконується чи ні, є нерозв'язним (проблема зупинки). Якщо вам все-таки вдасться це зробити, ви можете також відірвати гру та натомість зібрати свою Нобелівську премію.
Звичайні

9

Що не вистачає в інших відповідях, це те, що це не має нічого спільного з іграми. Це впливає на всі програми.

Завжди є файли та код, які не використовуватимуться в жодній досить складній програмі. Це відбувається через дві наступні речі:

  • Програми розвиваються з часом.
  • Це вимагає зусиль, щоб з’ясувати, чи якийсь фрагмент коду чи якийсь файл більше не використовується.
    • Якщо ви видалите речі, не витрачаючи зусиль, поведінка програми стає непередбачуваною

7

Додавання / ehancing Uri Попов «s відповідь :

  1. Програми можуть встановлювати пакети оновлень, що містять нові, вдосконалені версії існуючих файлів активів та оновлення самої програми. Зі свого боку, я не перезаписую попередні версії файлів активів, тому що я хочу дозволити відмову до попередньої версії програми (уявіть, наприклад, паніку розповсюдження абсолютно катастрофічного оновлення :-)). У початковій версії програми може використовуватися text_0.dds та оновлена ​​одна text_1.dds (отже, Text_0.dds більше не потрібна). Переписування (використовуючи лише одне ім’я) забороняло б видалити оновлення програми, тобто повернення до початкової версії, якщо не було також хитрої механіки перезапису нових файлів активів на старіші. І це не те, що хтось хоче підтримати.

Редагувати:

Відповідаючи на коментар до оригінального питання,

Видалити їх ніхто не пам’ятав

  1. Я б сказав, що їх ніхто не наважився видалити. Що станеться, якщо в грі не вистачає достатнього захоплення помилок (помилково, незнання, помилки, ключова особа покинула компанію тощо) у точці завантаження цього (зараз відсутнього) файлу X, і проблема не була розкрита, незважаючи на інтенсивне тестування? Скажімо, завантаження відбувається лише "кожен 3-й раз", лише на рівні 35 з 36, якого ви досягаєте лише за 4 тижні інтенсивної гри :-). Втрата репутації через збій програмного забезпечення - жорстоке явище, і воно, в гіршому випадку, може опинитися в компанії-банкруті. Краще не торкайтеся цього файлу :-).

4
+1 за "ніхто не наважився видалити". Не видалення невикористаного ресурсу часто коштує лише небагато місця на диску. Видалення активу, який ще використовує хтось із вашої команди, може коштувати вашій компанії великої репутації, якщо вона залишить великі фіолетові шашки або спричинить збої.
Патрік М

2

Чому розробники ігор залишають старі та невикористані файли у фінальній грі?

Напевно, це просто займає додаткове місце на диску і означає, що потрібно завантажити більше даних, якщо ви завантажите гру?

Також, чи не бояться розробники того, що люди можуть знайти?

Розробники ігор залишають невикористані файли в остаточній грі, оскільки вони не хочуть витрачати зусилля на пошук та видалення всіх невикористаних файлів. Адже всі ігри проходять просто чудово з трохи зайвого матеріалу, а час - гроші. Прибирання збільшує витрати (залежно від того, наскільки це відбувається автоматизовано).

Хоча це займає додатковий простір і означає, що потрібно завантажувати більше даних, це зазвичай не проблема розробників, і навіть клієнти, як правило, не переймаються трохи більшими розмірами завантаження.

Не впевнені, чи потрібно розробникам боятися того, що люди можуть знайти? Чому вони повинні? Поки в зайвих файлах немає нічого компрометуючого (насправді погані твори мистецтва, жарти про своїх начальників чи клієнтів, ...), напевно, вони не дуже переймаються. Хоча в деяких випадках вони насправді бояться того, що гравці можуть виявити в активах.


Not sure if developers need to be afraid of anything people might find?читайте причину, чому технічний тест Titanfall 2 не надходить на ПК, вони не згодні: P.
TMH

@TomHart Ви маєте рацію. У цьому випадку вони боялися. В інших випадках, таких як зазначені у питанні, вони не включали додаткові активи. Я здогадуюсь, що рівень побоювання відрізняється між розробниками.
Триларіон

1

На це натякнули, але інші відповіді не були повністю зачеплені: це все зводиться до вартості, а деякі витрати є складнішими, ніж ви могли подумати.

Найбільш очевидна вартість - це те, що хтось повинен їх видалити. Тепер ви можете просто покласти стажиста у справу і дозволити йому переглядати файли та інше, щоб видалити ті, які не потрібні в реальній грі. Але все-таки ви повинні заплатити за це, і навіть якщо ви цього не зробите (бо ви чудовисько, яке не платить стажистів), ви все одно могли б, щоб цей стажер робив щось корисне, як замовити піцу для команди розробників, так це все-таки коштує вам.

Менш очевидною вартістю є те, що ресурс, який ви збираєтеся видалити, був розміщений не просто так: ви абсолютно впевнені, що причина застаріла? Звичайно, ви написали цей код для демонстрації і вже не потрібен, але це цілком правда? Ви написали корисну функцію, яку забули перенести до інших бібліотек? Чи зробив Стейсі справді класну графіку для демонстрації, яка опинилася в реальній грі? Чи внутрішній симулятор все ще використовує той старий рівень, який ви використовували для тестування?

Створення ігор - це справа. Навіть якщо це не прибутковий бізнес, це все-таки бізнес з обмеженими ресурсами. Кожне рішення вимагає аналізу витрат та вигод, навіть якщо ви не пишете ділових справ для кожного з них. І простий факт полягає в тому, що вартість залишити ці активи в грі - це трохи більше завантаження, а переваги - це значно знижений ризик того, що щось вибухне безпосередньо перед випуском.

Усі ці знаки запитання в пункті "менш очевидний" являють собою невизначеність. Ви просто не знаєте. А коли ви ведете бізнес, вам доведеться торгувати своїми невідомими за знання. І що відомо, це те, що створений вами пакет пройшов тестування, навіть якщо він трохи роздутий.

Існують й інші потенційні витрати, такі як витоки інформації навколо процесу розробки, які потенційно можуть бути використані для отримання хаків, але ви зробили це через тестовий процес таким, який ви насправді не повинні турбуватися.

tl; dr: Ніхто не помітить завантаження на 4% більше, але вони помітять, якщо ви зламали гру, видаливши потрібні файли.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.