Как разработчики Hitman 3 уместили целую трилогию всего в 80GB

Причём первые две части вместе весят почти 150GB.

Главный технический директор IO Interactive Hitman 3 Маурицо Де Паскале рассказал изданию PC Gamer, как команда использовала специальный алгоритм сжатия, который позволил значительно уменьшить вес игры. Разработчик не стал углубляться в технические подробности — вместо этого он на примерах описал принцип работы алгоритма. Мы выбрали из текста главное.

Как разработчики Hitman 3 уместили целую трилогию всего в 80GB

Первые две части Hitman занимают 149GB, что стало проблемой для многих игроков с недостаточно объёмными SSD. А с релизом третьей части ситуация должна была только ухудшиться, поэтому разработчики из IO Interactive стремились найти эффективным способ сжатия данных.

Мы ожидаем, что Hitman 3 вместе со всем контентом из первых двух частей будет занимать 60-70GB (на релизе игра будет занимать 80GB — DTF), и мы очень довольны этим.

Маурицо Де Паскале, главный технический директор IO Interactive

В Hitman 3 применяется техника сжатия LZ4, которая существует уже около десяти лет. Почти всё в игре проходит через этот алгоритм.

По словам Де Паскале, в данных часто встречаются повторяющиеся последовательности, и почти все методы сжатия без потерь используют это. Например, в текстах про IOI часто встречаются слова «HITMAN» или «IO Interactive». Эти дублированные последовательности не нужно хранить несколько раз. Их можно убрать, чтобы сократить объём, но при этом сохранить информацию о том, где они должны находиться. Это позволяет идеально восстановить исходные данные.

Де Паскале также упрощённо рассказал о принципе работы LZ4. По его словам, LZ4 заменяет длинные последовательности ссылкой на такие же, но более ранние последовательности. К примеру, чтобы сохранить слово «сжатие», алгоритм подставляет вместо него запись, в которой указано, сколько слов назад уже встречалось это слово. Такая запись может быть эффективно закодирована всего несколькими битами. Разработчик добавил, что это слишком упрощённое описание, но оно позволяет понять основной принцип.

Де Паскале рассказал, что на самом деле LZ4 распространён в игровой индустрии, но студия раньше не использовала его, потому что стремилась сделать игру подходящей для ПК с низкими характеристиками. Дело в том, что на распаковку сжатых данных тратится больше ресурсов, поэтому в предыдущих частях Hitman некоторые файлы просто не были сжаты. К Hitman 3 разработчики улучшили движок, что позволило сделать игру менее требовательной в некоторых аспектах и «потратить» высвободившийся ресурс на распаковку данных.

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

Это означает, что жёсткие диски гораздо лучше подходят для последовательного чтения, чем для случайного: представьте, насколько труднее было бы читать книгу, если бы абзац был разделён между страницами 1, 13, 46 и 253.

Чтобы компенсировать это, разработчики хранят все ассеты в том порядке, в котором они будут загружены в момент игры. Иногда они даже дублируют ассеты, чтобы их не пришлось искать. На SSD такой проблемы нет, но IO Interactive разработала версии Hitman для PS4 и Xbox One, на которых используются жёсткие диски, поэтому проблема всё ещё актуальна.

243243
117 комментариев

Технический директор объясняет как это работает: "Просто мы пригласили к себе на работу xataba из R.G. Механики"

199
Ответить

А не FitGirl? 

11
Ответить

Хатаб вроде как отдельно от Механиков работает 🤔

5
Ответить

Можно избавиться от локализации 

175
Ответить

Да и от самой игры тоже

30
Ответить

Комментарий недоступен

5
Ответить

И от волос

2
Ответить