Почему в финальной игре остались лишние активы?


28

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

Конечно, это просто занимает дополнительное место на диске и означает, что нужно загружать больше данных, если вы загружаете игру?

Кроме того, разработчики не боятся того, что люди могли найти?


7
как правило, он не использует достаточно данных, чтобы гарантировать его удаление. И иногда удаление этих «неиспользуемых» файлов может фактически вызвать проблемы с другими игровыми объектами, которые используют части «неиспользуемых» файлов. Я думаю, что это сводится к срокам, которые необходимо соблюдать, и тому факту, что в последний момент контент может быть сокращен.
Райан

10
Как примечание стороны, пол раскройной комнаты полон примеров этого. tcrf.net/The_Cutting_Room_Floor
извлечение

2
1) Никто не помнил, чтобы удалить их. 2) Да. 3) Нет.
user253751

Другой пример - 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
Даже если можно найти весь контент, который не используется игрой на диске, некоторые игры предназначены для того, чтобы пользователи могли загружать дополнительные модули, которые могут быть изготовлены производителем после изготовления дисков. , Если диск содержит текстуры размером в десять мегабайт, которые не используются в игре на диске, но будут полезны в загружаемой версии, это может позволить уменьшить размер загрузки на десять мегабайт.
суперкат

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

Просто примечание: для языков, полных по Тьюрингу (и наиболее полезных из них), выяснить, выполняется ли строка кода или нет, неразрешимо (проблема остановки). Если вам удастся сделать это, вы также можете отказаться от игры и получить вместо этого свой Нобелевский приз.
Ордос

9

В других ответах отсутствует то, что это не имеет ничего общего с играми. Это влияет на все приложения.

Всегда есть файлы и код, который не будет использоваться в какой-либо достаточно сложной программе. Это происходит из-за следующих 2 вещей:

  • Программы развиваются с течением времени.
  • Требуется усилие, чтобы выяснить, не используется ли какой-то фрагмент кода или какой-либо файл.
    • Если вы удалите материал, не потратив на это усилий, поведение приложения станет непредсказуемым

7

Добавление / ehancing Uri Попов «s ответ :

  1. Программы могут устанавливать пакеты обновлений, которые содержат новые, улучшенные версии существующих файлов активов и обновление самой программы. Со своей стороны, я не перезаписываю предыдущие версии файлов ресурсов, потому что хочу разрешить откат к более ранней версии программы (представьте, например, панику из-за распространения совершенно катастрофического обновления :-)). Исходная версия программы может использовать texture_0.dds и обновленную texture_1.dds (следовательно, texture_0.dds больше не нужен). Перезапись (с использованием только одного имени) будет запрещать удаление обновления программы, т. Е. Откат к исходной версии, если не было хитрой механики перезаписи более новых файлов ресурсов более старыми. И это не то, что кто-то хочет поддержать.

Редактировать:

Реагируя на комментарий к исходному вопросу,

Никто не помнил, чтобы удалить их

  1. Я бы сказал, что никто не осмелился их удалить. Что произойдет, если в игре отсутствует достаточное отслеживание ошибок (по ошибке, невежество, ошибка, ключевой человек покинул компанию и т. Д.) В точке загрузки этого (теперь отсутствующего) файла X, и проблема не была обнаружена, несмотря на интенсивное тестирование? Скажем, загрузка происходит только «каждый третий раз», только на уровне 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.