Pull to refresh
  • by relevance
  • by date
  • by rating

Разбор форматов: звук в некоторых играх на Unreal Engine

Reverse engineering *


Культура модификации игр зародилась ещё в древние времена. Самое раннее, что я помню, это Wolfenstein 3D (1992 год). Если не ошибаюсь, можно было рисовать свои карты, а потом и новых врагов, заменять текстуры и звуки. Главным препятствием в моддинге является разбор неизвестных форматов данных. Оставим моральные аспекты этого явления для других ресурсов, и остановимся на технических сложностях, которые могут возникнуть в этом нелегком деле.

У меня накопилось довольно много историй такого рода, от самых простых, типа разбора простейшего архива, где в одном файле хранятся много тысяч файлов игры, до замены 3D-моделей, исследования и написания нестандартных кодеков звука. Расскажу одну из них, средней сложности.

Допустим, у вас появилось желание заменить определённые фразы в игре, или вообще замахнуться на полную озвучку на каком-нибудь языке, для которого у разработчиков не хватило сил или ресурсов. Казалось бы, надо только записать звук, найти где он находится в игре, и заменить нужные файлы. Но не всегда это бывает просто, например, в последних играх из серии Batman: Arkham используется звуковой движок wwise, который уже довольно давно интегрирован в Unreal Engine.

Я уже не раз сталкивался с UE, но, как известно, коммерческие разработчики имеют возможность полностью менять любую часть кода движка, поэтому почти все игры получаются уникальными с точки зрения структур данных, и это всегда интересно поисследовать.
Читать дальше →
Total votes 32: ↑30 and ↓2 +28
Views 19K
Comments 3

Разбор форматов: звуковой пакет в Unreal Engine

Reverse engineering *


В прошлый раз я рассказал об исследовании связи звука с текстом в движке UE3. Сегодня рассмотрю подробнее более простой случай — разбор пакета звуков Bioshock Infinite, с которого начиналась полная локализация этой игры на русский язык.

Разбор ресурсов — это как разгадывание ребуса или кроссворда: начинаем с одной стороны, и постепенно узнавая значение все новых полей, разгадываем всё остальное. Сначала структура ресурсов игры была для нас как тёмный лес. Но постепенно мы узнавали о них всё больше и больше, одно тянуло за собой другое, и в итоге были исследованы и модифицированы практически все ресурсы игры: звук, текстуры, 3D-модели. Пример надписи, изменённой в виде модели вместе с текстурой, картами освещения и отражения, светящимися лампочками, бликами и тенью, можно видеть на картинке.

Но началось всё это с простой на первый взгляд задачи: найти, где в игре находится звук, и как его можно заменить.
Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Views 13K
Comments 16

Разбор форматов: упакованные хешированные ресурсы

Reverse engineering *


В прошлых двух статьях я рассказал об особенностях форматов данных звуковой подсистемы современных игр. Чтобы не утомлять читателей, перейду к несколько другой теме. Какой бы движок не использовала игра, ей нужно где-то хранить ресурсы и извлекать их оттуда в нужный момент. Иногда ресурсы в архиве имеют как идентификатор, так и читабельное имя файла. Но существует довольно много движков, где имён у файлов нет, а есть только хеш. Как же в таком случае можно что-то разобрать в ресурсах?

Рассмотрим это на примере довольно редкого движка bitsquid. Он простой и компактный, но, тем не менее, имеет все необходимые для современных игр возможности. В прошлом году bitsquid вместе с его разработчиком был куплен компанией Autodesk, и теперь они собираются скрестить его с Maya и сделать свой собственный игровой движок, который, как они обещают, будет чем-то невероятным.
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Views 17K
Comments 12

Разбор форматов: 3d-модели изнутри

Reverse engineering *
image

Еще одна статья о разборе форматов, для летнего воскресного вечера, небольшая и развлекательная. На этот раз речь пойдёт о 3d-моделях. Принципы хранения данных для любых моделей одинаковы, но форматы файлов весьма разнообразны. Даже в условиях одного и того же движка разработчики норовят всё модифицировать и впихнуть что-нибудь своё, ведь в коммерческих версиях у них есть возможность менять код движка, и они ей обычно пользуются.
Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Views 33K
Comments 12