Как переделать игру
Перейти к содержимому

Как переделать игру

Как научится редактировать и модифицировать файлов компютерных игр?

Privet v7! Ya zdes vperviye i zaregsya poskolku xochu uznat bolshe o moddinge, hex redaktirovaniye, assemblinge. Ya lyubitel futbolnogo simulatora PES. Umeyu sozdovat stadioni dlya etoy igri. I u etoy igri yest ogromniy forum evo-web.co.uk/forums. Ochen budu blagodaren yesli kto nibud nauchit menya hex redaktirovaniyu i assemblingu Exe fayla igri. S uvazheniyem, Odil!

Пытаться что-то менять методом редактирования exe-файла — это, мягка говоря, неблагодарное занятие. Таким способом разве-то защиту лицензии ломают или там типа делают бесконечную жизнь герою. В остальном. скорее проще написать самому заново, чем ковырять чужое. Т.е. тут вопрос в том: "а что надо?".

Конечно проще написать, чем расковырять. Поэтому реверс-инжиниринг и стоит дороже программирования. Пусть учится, раз так сильно хочет ) Кроме того, моддеры важны и нужны как наиболее активная и мотивированная часть коммьюнити игроков. Пусть будут.

Exe — файлы бывают разные. Если игра написана на с++, например, то тебе поможет дизассемблер IDA например. И знание языка ассемблера, конечно. Если на Java или .NET, то нужно искать декомпиляторы для этих платформ, они есть и некоторые даже дают понятный код на выходе. Разработчики применяют обфускацию для защиты от декомпиляции, поэтому надо изучать искусство отладки приложений, читай соответствующую литературу, гугл в курсе.

Часто в играх на языке программирования реализован движок, а вся игровая логика скрывается в данных и в скриптах например LUA, в таком случае декомпиляция и анализ exe движка тебе ничего не дадут в плане моддинга. В этом случае надо искать и модифицировать скрипты в ресурсах игры — изучай скриптовые языки, часто используемые в играх. Кроме скриптов и кода программы, логика может прятаться в данных. Это называется data driven development, гугл тоже в курсе. Тут поможет знание форматов файлов, различные редакторы и конвертеры.

Файлы ресурсов могут быть зашифрованы, движок может проверять их целостность по контрольным суммам и применять другие приёмы. Но ключ шифрования всё равно хранится в игре, надо уметь его найти отладчиком или просмотром ресурсов. Тут пригодится знание основ криптоанализа. С цифровой подписью будет уже сложнее, но ничего не возможного нет, дерзай, удача любит смелых )

@phaem, спасибо большое! А если появится вопросы, поможешь мне? Заранее спасибо ;)!

Ремастеринг игрового контента, или как создать 800 единиц контента за семь месяцев

Как переделать весь контент в игре в короткие сроки, какие методы в этом помогут, с какими трудностями мы столкнулись и как их решали.

Итак, перед нами стояла задача переработки почти всего контента в игре: графического пайплайна, роботов, пушек, визуальных эффектов, карт и т. д. Для этого нужно было внести множество технологических изменений в существующий код и поддержать эти изменения со стороны контента. Этот процесс занимает немало времени, но мы не могли остановить разработку самой игры для внесения всех этих изменений, ведь одно из требований к ремастеру — параллельная разработка с основным продуктом. Поэтому в первую очередь нам необходимо было выстроить процесс работы программистов и художников команды War Robots Remastered в рамках основного проекта. И для решения этой проблемы мы пошли по пути итерационной разработки и системы обратной совместимости.

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

Разработка War Robots ведется в системе управления версиями git по модели git-flow. В проекте есть основная ветка (develop), в которую по мере готовности вливаются ветки фичей (features). Из основной ветки создаются релизы, которые затем уходят в прод.

В эту схему мы добавили три элемента:

  • Ветку Remastered-develop, содержащую весь актуальный контент для проекта War Robots Remastered. Мы договорились о том, что эта ветка будет обратно совместимой с актуальной основной веткой игры. Это значит, что в этой ветке будут использоваться те же технологии и все фичи из ветки develop.
  • Ветки фичей для ремастера: Remastered/feature/branch. В этих ветках ведется работа над фичами, относящимися к контенту и графическому пайплайну ремастера. Они создаются от Remastered-develop и вливаются в нее же.
  • Ветки фичей для поддержания обратной совместимости feature/branch: в этих ветках ведется работа над технологиями, необходимыми в первую очередь для ремастера, но несовместимыми с основной веткой War Robots. К таким фичам относятся система загрузки ассетов, система управления качеством (Quality Manager) и т. д.

Процесс работы получался следующим:

  • В Remastered-develop постоянно заливалась ветка develop с актуальным кодом и контентом основного проекта;
  • Геймдизайнеры, художники и графические программисты, работающие над контентом для ремастера, работали в ветках Remastered/feature/branch;
  • Все новые технологии, ломающие обратную совместимость, сначала попадали в develop War Robots, а потом уже в develop War Robots Remastered.

Такая схема позволила нам работать над проектом итеративно, не опасаясь того, что War Robots Remastered не будет содержать тех же фичей, что и основная версия игры.

Однако поддержание обратной совместимости имеет свою цену: все фичи, кардинально меняющие технологии на проекте — например, система загрузки ассетов, — необходимо вносить сначала в основную ветку War Robots, а потом уже в ремастер. Это нетривиальный процесс: раз эти фичи подают в develop, значит, они попадают и в релизы. А чтобы вывести фичу в релиз, ее необходимо согласовать с годовым релиз-планом проекта, выбрать релиз, в который ее сможет забрать и поддержать команда основного продукта, и полноценно протестировать силами QA-отдела. Это увеличивало время разработки ремастера. Однако, как плюс, мы получили то, что на момент релиза War Robots Remastered большинство технологий уже были обкатаны в продакшене, и мы снимали часть технических рисков с запуском проекта.

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

За свою семилетнюю историю War Robots успела обрасти множеством фичей и еще большим количеством контента. К моменту релиза ремастера в игре существовали:

  • 81 робот;
  • 109 пушек;
  • 83 единиц эквипа: щиты, модули, встроенные абилки;
  • 10 дронов.

Весь контент необходимо было пересобрать в Unity: обновить материалы, анимации, VFX и подготовить все это в трех качествах: Ultra Low Definition (ULD), Low Definition (LD), High Definition (HD). А после пересборки — еще и протестировать.

Итого мы имеем: 81 робота, 109 пушек, 83 эквипа, 10 дронов в трех качествах — 849 единицы контента.

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

Сборка нового префаба робота из готовых ассетов в Unity может занимать от 1 до 3 дней, его полное тестирование, включая логику и визуал, — от 2 до 3 дней. Несложно подсчитать, что на сборку и тестирование одних только роботов у нас ушло бы 11 месяцев, и это без учета рисков в виде задержек со стороны подготовки арта, багов и т.д. Это нас не устраивало, ведь мы хотели завершить проект менее, чем за год.

Перед нами стояла еще одна проблема: единожды собранный робот в трех качествах не мог оставаться неизменным в течение целого года. В War Robots постоянно исправляются какие-то баги, меняется баланс, добавляется что-то новое. И если раньше геймдизайнеру нужно было внести изменения в один префаб робота, то теперь необходимо было это сделать в четырех местах: в основном проекте War Robots и в трех префабах качеств на War Robots Remastered. Это существенно увеличивало риск возникновения ошибок в связи с человеческим фактором, а мы хотели бы этого избежать.

Нам необходимо было автоматизировать процесс сборки контента и облегчить процесс тестирования. К счастью, в момент старта проекта War Robots Remastered в релиз-плане «ванильной» War Robots был запланирован переход на новую на тот момент версию Unity 2018 LTS. Эта версия Unity добавляла в движок новую технологию Prefab Variants, которой мы и решили воспользоваться.

Наша идея заключалась в том чтобы создать единую базу для каждого робота (пушки, дрона и т. д.), содержащую всю игровую логику и общие компоненты для всех качеств: настройки абилок, звуков, точки креплений пушек и т. д., — а также создать префаб-варианты для каждого пресета качества (ULD, LD, HD), которые будут содержать только визуальную составляющую: геометрию, материалы, VFX.

Для примера — базовый префаб робота Cossack и его HD-префаб вариант:

Красным выделены объекты, присущие только HD-качеству: скелет, геометрия и материал, а также дополнительные звуковые эффекты.

Схема разделения префабов:

Заметим, что на схеме отображено четыре качества, а не три: Legacy, ULD, LD и HD. Качеством Legacy было принято называть контент из основного проекта War Robots. Также сам механизм разделения на базовые (base) префаб-варианты стал одной из фичей основной игры по поддержке обратной совместимости с War Robots Remastered.

Такая схема построения контента решала две проблемы:

  • Внесение изменений в префаб теперь можно было делать только один раз. При изменении общих значений для всех качеств, таких как настройки абилок, геймдизайнер редактирует только base префаб, а при изменении визуальной составляющей — только префаб необходимого качества.
  • Сокращается время тестирования единицы контента. В случае с четырьмя независимыми префабами QA необходимо было протестировать и логику, и визуал каждого префаба в отдельности. В новой же схеме тестирование логики проводится только один раз, что сокращает время тестирования единицы контента на 70%.

Что касается самого процесса разделения префабов на базу и префаб-варианты, для этой задачи силами программистов был создан отдельный инструмент, который позволил автоматизировать этот процесс.

Как уже упоминалось ранее, создание нового префаба робота в War Robots может занимать от 1 до 3 дней работы геймдизайнера — и это очень много, когда дело касается более 80 префабов роботов. Однако, благодаря общей базе и префаб-вариантам нам уже не нужно было создавать робота целиком — необходимо было лишь заменить ему визуальные компоненты.

Префаб-варианты качеств ULD, LD и HD отличаются между собой всего несколькими элементами:

Локализация игр на дому

Могу поспорить, что любой геймер не раз хотел если не сделать свою игру, то хотя бы переделать чужую. Переделывать можно по-разному, можно заменить графику, можно — звуки, можно изменить сюжет, а можно изменить все сразу и получить фактически другую игру. Этим мы постоянно занимаемся в » Мастерской «. Но до этого мы переделывали отдельно взятые игры. Сегодня мы изучим общую теорию локализации. Но не забывайте, что локализованную игру вы можете использовать только для собственных нужд: показать друзьям, играть самому. Любое коммерческое использование программного кода игры — незаконно и наказуемо!

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

И сказал Дюк: «Господь с вами»
Изменение звуков — обычное дело, берете стандартную звукозапись ( sndrec32.exe ), вставляете микрофон в губы и начинаете насыщать игру своим красивейшим голосом. Современные игры в качестве звуковых форматов используют либо mp3 , либо ogg . Для работы с первым форматом, а точнее для его перевода в wav и наоборот, вам пригодится программка под названием Cdex . Второй формат — ogg — это современная альтернатива mp3pro . Новая форма хранения музыки становится все более и более популярной. Качественное звучание и использование системы переменного битрейта в ogg делают этот формат весьма привлекательным для разработчиков игр. Ну а проигрывать его умеют практически все современные «плюшки», включая WinAMP . Для старых версий WinAMP можно скачать специальный плагин.

Под занавес
Теперь вы знаете теорию локализации игр вообще и сможете перевести на великомогучий русский язык чуть ли не половину современных игр. Как переделывать другие компоненты игр, мы разберемся в одном из следующих номеров.
Прописная? Строчная!
Совсем не обязательно перерисовывать и маленькие буквы тоже, будет достаточно и заглавных. К тому же из маленьких латинских букв некоторые можно использовать как русские заглавные, например b (би) можно пустить на мягкий знак.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *