Delphi World - Локализация игр на дому - Часть 1
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Локализация игр на дому - Часть 1

Автор: Spose
WEB-сайт: http://daddy.mirgames.ru

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

Да здравствует мыло пушистое!

Самый простой способ переделать игру, это найти Software Development Kit (пакет программ для изготовления разного рода модификаций к игре) для игры которую вы хотите переделать. Некоторые разработчики выкладывают SDK на компакт с игрой, например в случае с Max Payne это Max-FX tools. В самых различных случаях SDK может содержать не просто редактор карт и игровых текстов, но и различные запаковщики/распаковщики игровых архивов, утилиты для работы с графическими и звуковыми форматами игры, и что не маловажно может содержать исходные коды определенной части игры. Таким образом, мы получаем серьезное оружие для локализации в свои руки. Переделывать такими утилитами игру дело тривиальное, и описывать его мы не будем, так как с SDK обычно даются рекомендации и комментарии разработчиков.

И грабли ребристые!

К сожалению, не всегда к играм выпускаются Software Development Kit'ы, а это значит, что придется обходиться своими силами. Ну, конечно, встречаются такие игры, которые переделать ничего не стоит, то есть если полазить в каталоге с игрой или на ее компакте, можно обнаружить практически все графические и звуковые ресурсы, а иногда и весь сюжет. Вот, например любимый всеми Fallout (часть первая) хранит весь свой сюжет в обычном текстовом файле, который ничего не стоит изменить. Значит, определяем, относится наша игра к этому типу. Делается это просто: просматриваем все файлы в каталоге и подкаталогах игры (незабываем про ее компакт-диск) на наличие открытого текста или стандартных графических и звуковых форматов. Если находим - меняем, если же не находим то будем думать дальше. Но и таких игр достаточно мало, обычно разработчики, все ресурсы игры попрячут в с виду страшные, псевдо-архивы или попросту придумают свои графические и звуковые форматы. Первым делом мы лезем в Интернет на любой сайт занимающийся отыскиванием информации об игровых форматах, и созданием утилит для работы с ними (например extractor.far.ru), ищем, есть ли там что-то для нашей игры, если есть то качаем, далее все тоже очень тривиально. Но если мы там ничего не находим, то переходим ко второй стадии. Вторая стадия состоит в том, чтобы определить, не создана ли эта игра на движке какой-нибудь знаменитости, например Quake или LithTech, о которых уже давно все известно. Это делается просто, загружаем игру и смотрим, не светится ли где в ней логотипы id software или Monolith, в первом случае надо ещё будет понять, к какому поколению движка относится игра, если к первому(Quake) или второму(Quake2, Half-Life, Soldiers Of Fortune), то нам пригодятся утилиты: Wally и PakScape, которые вы можете найти в разделе Ресурсокопание (или на дисках Игромании), как с ними работать читайте в журнале. В том случае, если это потомок Ку3 (Quake3, Soldiers Of Fortune 2, Jedi Knight 2: Jedi Outcast, Medal Of Honor), то все ёще проще, ведь все нужные для изменения файлы хранятся в *.PAK файлах, которые представляют собой ничто иное, как обычный ZIP архив. Распаковав файлы из архивов, можно поменять в игре практически всё, весь текст хранится в чистом виде. О том, как заставить игру писать ваш текст по-русски читайте ниже. В случае же если же в игре затесался логотип Monolith, нам понадобится Blood2 Editing Tools и программы для редактирования библиотек DLL, например ExeScope (ее можно взять с сайта http://www.vector.co.jp/authors/VA003525/ ) или Borland Resource Work Shop. При помощи Blood 2 Editing Tools распаковываем *.RES архивы, ещё при их помощи вы можете отредактировать практически все модели в игре. Такая игра хранит свои шрифты в стандартном виндовсовском формате TTF, это значит, что можно просто заменить их на свои (с поддержкой Кириллицы), правда, предварительно поправив внутренние имя шрифта на внутренние имя заменяемого шрифта, для этого вам пригодятся программы типа Font Lab или Softy. Далее при помощи ExeScope или Borland Resource Work Shop открываем по очереди все DLL файлы (в том числе и распакованные из архивов) и просматриваем на наличие текста из игры (Внимание! Прежде чем изменять текст убедитесь, что он относится именно к игре! Иначе вы можете вывести игру из строя!), найдя нужный файл, меняем его внутренности на нужные нам значения, затем сохраняем и проверяем игру на работоспособность.


Чтобы облегчить вам поиск скажу, что текстовые значения в DLL файлах находятся в Resources\Strings.

Да станет W ужасная, Ш прекрасною...

Теперь нам нужно заставить игру писать русские буквы, если в случае с LithTech все понятно, то в случае с Квейками все немного сложнее. Помимо Квейков есть ещё масса игр, которые используют графические шрифты типа:

Иногда, в графических шрифтах, видно только белый холст, а букв вообще невидно, так как они нарисованы на прозрачном фоне, в этом случае для редактирования шрифтов вам понадобится Adobe PhotoShop. Сразу говорю, что не все игры понимают Кириллицу и по этому, чтобы научить игры писать русскими буквами мы должны будем пожертвовать латинскими. Так, как ширина каждой буквы (в пикселях) записана в специальный файл, который не все умеют редактировать, нам придется делать так: перерисовать те латинские буквы, которые совсем не похожи не на одну русскую, на ту русскую букву, которая не похожа ни на одну латинскую соответственно. Причем ширина рисуемой нами буквы должна быть меньше либо равна той, которую мы заменили, например латинская "B" (би) очень похожа на русскую "В" (в) значит, её менять не стоит, а вот, например у "Z" аналогов в русском алфавите нет, поэтому ее смело можно заменить на "П". После долгой кропотливой работы мы получим что-то вроде:


Теперь возвращаемся к изменению текста, теперь текст выглядящий в игре как "ГЛАВНОЕ МЕНЮ" в нашем тексте будет выглядеть как "FLABHOE MEHU", то есть текст мы должны писать латинскими буквами, так чтобы в игре при отрисовке текста соответствующие латинские буквы, отображались как русские, и мы бы получили бы нормальный русский текст.

И сказал Дюк: "Господь с вами"

Изменение звуков - обычное дело, берете стандартную звукозапись(sndrec32.exe), вставляете микрофон в губы, и начинаете насыщать игру своим красивейшим голосом. Современные игры в качестве звуковых форматов используют либо MP3, либо OGG. Для работы с первым форматом, а точнее для его перевода в WAV и наоборот, вам пригодится программка под названием Cdex, для второго же нужно искать что-то другое, благо Интернет большой и можно найти, то, что нужно.

Под занавес

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

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования