как расшифровать код игры

Криптография в играх: от зашифрованных посланий в Assassinʼs Creed до кодов в BioShock Infinite

Серия Assassinʼs Creed

Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Выжили немногие — как среди людей, так и среди Ису. Человечество продолжило развиваться, чтобы затем основать знакомые нам древние цивилизации, а оставшиеся Предтечи зашифровали множество сообщений о том, что катастрофа, когда-то уничтожившая тысячи живых существ на Земле, может повториться. Коды они спрятали в собственных храмах по всему миру, которые спустя много веков отыщут герои игр серии Assassinʼs Creed.

Впервые правду о Предтечах разработчики раскрыли еще в Assassin’s Creed 2, где в Истине, месте в Анимусе, созданной Объектом-16, решив несколько головоломок, игроки могли посмотреть ролик про Адама и Еву. Во вселенной серии они оказались одними из первых людей, созданных Ису. В какой-то момент они восстали против своих создателей и похитили Яблоко Эдема, могущественный артефакт.

Любовь разработчиков к секретным посланиям преобразилась в многочисленные тайные послания, которые есть в каждой Assassinʼs Creed. И если до Origins представители Первой цивилизации общались с избранными по большей части посредством голограмм, то в «Истоках» нашлось место большому количеству шифров. В основной игре все они были понятными и касались в основном вышеописанных событий, но в дополнении «Проклятие фараонов» игроки отыскали зашифрованное послание, которое, кажется, до сих пор никто не может разгадать.

как расшифровать код игры. cad77b75 8c31 4f51 aef9 e530548b0daf. как расшифровать код игры фото. как расшифровать код игры-cad77b75 8c31 4f51 aef9 e530548b0daf. картинка как расшифровать код игры. картинка cad77b75 8c31 4f51 aef9 e530548b0daf. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Cypher и The Witness

Cypher и The Witness — игры, где основа геймлея — шифр. В Cypher история криптографии рассказывается через пазлы в стерильных белых локациях. В этой игре не нужно делать больше ничего — только читать про реальные способы шифрования, которые существовали в прошлом или используются до сих пор, и применять полученные знания на практике. В числе прочего здесь есть даже объяснение того, как работала шифровальная машина «Энигма», и ряд пазлов, связанных с ней.

Вторая игра — The Witness Джонатана Блоу, автора Braid. Она тоже целиком состоит из пазлов, для решения которых нужно провести линию из одной точки в другую. Рисунки на экранах всегда разные, и еще нужно догадаться, как именно и по какому принципу чертить линию.

BioShock Infinite

Элизабет из BioShock Infinite за время, проведенное в башне Колумбии, не только научилась открывать окна в другие вероятные реальности, но и прочитала множество книг, посвященных криптографии. Она помогает Букеру Девитту расшифровывать послания группировки Vox Populi, которая борется за освобождение парящего в небесах города от тирании и ксенофобии Комстока и его сторонников.

Зашифрованные сообщения последователи Дэйзи Фицрой оставляют на стенах в укромных уголках локаций. И чтобы взломать такой шифр, Букеру и Элизабет необходимо сперва отыскать книгу, в которой спрятан ключ к той или иной надписи. Награда за старания — дополнительные патроны и другой полезный лут.

God of War (2018)

В ходе своего путешествия Кратос и Атрей не раз натолкнутся на загадочные святилища йотунов, в которых буквально изображены подробности северного лора. Это всегда рисунки, посвященные великанам и событиям, с ними связанным. В таких святилищах найдутся мифы и про мирового змея Йормунганда, и про йотуна с восемью руками, и про легендарных противников Тора. И все эти мифы — своего рода шифр, о сути которого с ходу не так уж и просто догадаться.

Впрочем, отыскать все святилища и целиком раскрыть для себя вселенную «скандинавской» God of War — еще сложнее. В подробностях о том, где все они спрятаны, мы рассказывали в отдельном материале.

Mass Effect: Andromeda

В Mass Effect: Andromeda хватает загадок, и самая большая — древняя раса Реликтов. Именно они оставили на планетах загадочные монолиты и хранилища, где спрятаны инструменты для терраформирования, делающего поверхность более пригодной для жизни. И защищены эти инструменты шифром, для разгадки которого предстоит отыскать особые консоли с глифами.

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

Источник

Практическое руководство по взлому (и защите) игр на Unity

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

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

Введение

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

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Находим ресурсы игры

Рассмотрим для примера игру, собранную под ОС Windows и загруженную через Steam. Чтобы добраться до директории, в которой находятся нужные нам ресурсы, откроем окно свойств игры в библиотеке Steam и в закладке «Local files» нажмём «Browse local files…».

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Извлекаем текстуры и шейдеры

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Графический интерфейс программы не отличается удобством, а также она страдает от нескольких критических багов. Не взирая на это, программа вполне способна извлечь большинство текстур и шейдеров из игры. Полученные в результате текстуры будут иметь формат DDS, который можно «прочитать» с помощью Windows Texture Viewer.

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

Извлекаем 3D-модели

Трёхмерные модели в типовой Unity-сборке «разбросаны» по различным ресурсам, а некоторые из них и вовсе могут генерироваться во время игры. Вместо копания в файлах, существует интересная альтернатива — получить данные о геометрии прямиком из памяти графического ускорителя. Когда игра запущена, вся информация о текстурах и моделях, видимых на экране, находится в памяти видеокарты. С помощью утилиты 3D Ripper DX можно извлечь всю эту информацию и сохранить в формате, понятном 3D-редакторам (например, 3D Studio Max). Учтите, что программа не самая простая в обращении — возможно, придётся обратиться к документации.

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Взламываем PlayerPrefs

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Защищаем PlayerPrefs

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

Приведенный выше класс — упрощенный пример реализации, работающий со строковыми переменными. Для инициализации ему необходимо передать секретный ключ и список PlayerPrefs-ключей, значения которых должны быть защищены:

Затем его можно использовать следующим образом:

Взламываем исходный код

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

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

Защищаем исходный код

Раз Unity не заботится о сохранности нашего кода — сделаем это сами. Благо, существует утилита, готовая автоматически зашифровать плоды нашего интеллектуального труда: Unity 3D Obfuscator.

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

И хотя программа отлично справляется со своими обязанностями, многие классы, адресуемые извне родной библиотеки, всё же не могут быть зашифрованы без риска нарушения связанности — будьте осторожны!

Взламываем память игры

Cheat Engine — широко известная программа для взлома игр. Она находит ту область оперативной памяти, которая принадлежит процессу запущенной игры и позволяет произвольно её изменять.

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Эта программа пользуется тем фактом, что разработчики игр очень редко защищают значения переменных. Рассмотрим следующий пример: в некой игре у нас есть 100 патронов; используя Cheat Engine, можно выполнить поиск участков памяти, которые хранят значение «100». Затем мы делаем выстрел — запас патронов составляет 99 единиц. Снова сканируем память, но теперь ищем значение «99». После нескольких подобных итераций можно с легкостью обнаружить расположение большинства переменных игры и произвольно их изменять.

Защищаем память игры

Использовать нашу новую структуру можно следующим образом:

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

Заключение

К сожалению, существует не так уж много способов защитить игру от взлома. Будучи установленной на пользовательское устройство, она фактически раскрывает все ваши текстуры, модели и исходный код. Если кто-то захочет декомпилировать игру и украсть ресурсы — это лишь вопрос времени.

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

Источник

Заглянем за кулисы разработки: подборка исходных кодов классических игр

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

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

К сожалению, почти все игры – для PC. Найти исходники для консолей или аркад почти нереально, и большинство программистов не в курсе различий подходов к программам на платформах, отличных от PC.

Многие игры после выпуска исходников были улучшены и дополнены сообществом – я намеренно даю ссылки только на оригинальные исходники. Так что, если вас вдруг интересуют апгрейды – они могут существовать.

Многие игры были рассмотрены на сайте Fabien Sanglard. Если вам интересны подробности их работы, то пожалуйте к нему.

Можно заметить, что многие игры принадлежат id Software/Apogee. Совпадение? Не думаю. id славится открытостью и привычкой выпускать исходники. Старые коммерческие игры уже не имеют ценности и были бы потеряны – не лучше ли, чтобы кто-то учился чему-то полезному на их основе?

Итак, приступим (в хронологическом порядке):

Colossal Cave Adventure (1976)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: William Crowther and Don Woods
Издатель: Разные.
Платформа: PDP-10 и друзья.

“You are in a maze of twisty little passages, all alike.” («Вы находитесь в лабиринте из неотличимых друг от друга небольших извилистых проходов»).

Возможно, это не на 100% коммерческая игра. Но её продавали, кроме того, она имеет историческую важность. И, кстати, именно по мотивам названия этой игры все приключенческие игры называются adventure.

Оригинал был написан на Fortran, в котором современным программистам будет сложновато разобраться. Но последние версии были на C.

Catacomb (1989)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: John Carmack
Издатель: Softdisk
Платформа: Apple II / DOS

Не путайте с Catacomb 3D. Это ранняя двумерная версия игры. Разработана Кармаком до создания id и полностью написана на Turbo Pascal.

Prince Of Persia (1989)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: Jordan Mechner
Издатель: Brøderbund
Платформа: Apple II / DOS / many more
Обзор кода: fabiensanglard.net

Prince Of Persia произвёл фурор благодаря плавной анимации, голливудскому стилю подачи истории и интересному геймплею.

Написана полностью на ассемблере, что затрудняет задачу обзора кода. Рекомендую посмотреть интервью с Джорданом Мехнером, где он делится деталями о создании игры.

SimCity (1989)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: Maxis
Издатель: Maxis / Brøderbund
Платформа: All

Игра начала новый жанр. В основе алгоритма – симуляция города посредством клеточных алгоритмов. Хороший пример кода, который стоит изучить для понимания принципов работы. Исходники для unix-порта 1990 года были выпущены в 2008 году.

Hovertank 3D / Catacomb 3D (1991)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: id Software
Издатель: Softdisk
Платформа: DOS

Первая веха в истории трёхмерных шутеров id Software. Эти игры используют технику raycasting, которая была улучшена в следующем хите, Wolfenstein, где были добавлены текстуры.

Star Control II (1992)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: Toys for Bob
Издатель: Accolade
Платформа: DOS / 3D0

Уникальная игра, не вписывающаяся ни в один из строгих жанров. Внешний вид чётко напоминает нам о 90-х годах и системе VGA, где цвета были подобраны не для красоты, а из стандартной палитры DPaint.

Рекомендую почитать обзор кода от The Escapist.

Исходник получен с порта на 3D0, оригинальный же был утерян. Это часто случается со старыми играми, когда разработчики уходят из компании.

Wolfenstein 3D / Blake Stone (1992/3)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

На основе предыдущего движка Catacomb был сделан серьёзный апгрейд на VGA-графику. И играть стало интереснее. Как в большинстве случаев с компанией id, исходники сравнительно легко читать, хотя ключевые части написаны на 16-битном ассемблере (в Doom уже такого не встретишь).

Интересно отметить, что для рисования вертикальных линий они динамически генерируют разные функции для каждой из возможных высот стен.

У Fabien можно найти инструкцию по компиляции исходников на современных инструментах.

Blake Stone, ответвление от Apogee на том же движке, вышло в 1993 году, за неделю до Doom. Можно представить, почему оно кануло в лету.

Doom (1993)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

В каком-то смысле это самый важный для изучения движок. В своё время это была революция – мир от первого лица, не плоский, как Wolf3D. Освещение, текстуры и изобретение DeathMatch.

Одной из самых знаковых вещей стало изобретение идеи «движка». До этого игры были сильно связаны с данными. Doom пропагандировал отвязку данных игры от движка. Это породило целые сообщества, модифицировавшие игры (Aliens TC, Fistful Of Doom).

Descent (1994)

как расшифровать код игры. 932903db66f65ea4273638dd8fa9d9a6. как расшифровать код игры фото. как расшифровать код игры-932903db66f65ea4273638dd8fa9d9a6. картинка как расшифровать код игры. картинка 932903db66f65ea4273638dd8fa9d9a6. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Многие компании кинулись догонять Doom, запустив волну «Клонов Doom». Parallax удалось сделать нечто совсем другое.

В игре можно было летать на корабле по трёхмерному лабиринту из проходов, в отличие от 2.5D коридоров Doom (у id полная трёхмерность появилась лишь в Quake год спустя).

Gravity Force 2 (1994)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: Jens Andersson and Jan Kronqvist
Издатель: Shareware
Платформа: Amiga

Многие современники вспомнят эту игру. Amiga Power однажды назвала её второй лучшей игрой всех времён.

Это не совсем коммерческая игра, она была выпущена по принципу платного shareware, а затем её раздавали бесплатно на диске Amiga Power. Включил её в список потому, что в ту пору вообще редкие игры выдавали свои исходники. Если вам интересно, как делались 16-битные игры, обратите внимание.

Heretic / Hexen (1994/5)

как расшифровать код игры. c86ac0c8d02efe8f315bae821af2510c. как расшифровать код игры фото. как расшифровать код игры-c86ac0c8d02efe8f315bae821af2510c. картинка как расшифровать код игры. картинка c86ac0c8d02efe8f315bae821af2510c. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Это был уникальный клон Doom по двум причинам: 1) лицензированный движок Doom и 2) хороший геймплей

Заметные улучшения: возможность смотреть вверх и вниз, скриптовой движок для внутриигровых событий (новая идея на то время).

Rise Of The Triad: Dark War (1995)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

ROTT это была странная игра. Она была порождена движком Wolfenstein 3D, при этом создатели умудрились эмулировать ощущения разных высот. Но всё равно игра не смогла конкурировать с Doom от 1993 года.

Marathon 2: Durandal (1995)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: Bungie Software
Издатель: Bungie Software
Платформа: Apple Macintosh / Windows 95

Серия отличилась тем, что в своё время попала в крайне маленький список игр, доступных на Apple Macintosh. И, в общем-то, это клон Doom. А через 3 месяца после её выхода id Software выпустила знаменитый “qtest”, позволявший взглянуть на движок Quake.

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

Duke Nukem 3D / Shadow Warrior (1996)

как расшифровать код игры. 9d9df67d5eaa47d89501a3d35bc92ed3. как расшифровать код игры фото. как расшифровать код игры-9d9df67d5eaa47d89501a3d35bc92ed3. картинка как расшифровать код игры. картинка 9d9df67d5eaa47d89501a3d35bc92ed3. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: 3D Realms
Издатель: GT Interactive Software
Платформа: DOS
Code review: fabiensanglard.net

Из множества клонов, игры 3D Realms отличились хорошими попытками привнести нечто новое в игру. Движок Кена Сильвермана Build Engine добавил много интересных фич вроде наклонных полов, комнат, расположенных друг над другом и зеркал.

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

За дополнительной информацией обращайтесь на страницу автора.

Quake 1/2/3 (1996-1999)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: id Software
Издатель: GT Interactive / Activision
Платформа: DOS / Windows / others
Code review: fabiensanglard.net (Quake 1)
Code review: fabiensanglard.net (Quake 3)

Тут писать особо нечего, вы и сами всё знаете. Знатная веха в создании полностью трёхмерных движков, без всяких хаков вроде 2.5D

Упомяну несколько интересных подробностей. Возможно, это первая коммерческая игра, скомпилированная компилятором с открытым исходным кодом (DJGPP for DOS, ранний порт gcc).

В игре был свой скриптовой язык “Quake C” (позже lcc у Quake 3). Он был встроен специально для того, чтобы игроки могли делать модификации. Это, вкупе с системой ресурсов PWAD, породило огромное сообщество моддеров.

В Quake 1 был инновационный механизм кэширования результатов шейдинга. Но после распространения 3D-ускорителей это потеряло смысл. Следующая игра от id, Rage, использовала эту же идею.

Кроме того, Quake был очень надёжным движком. Никаких глюков растра или обсчёта столкновений.

Abuse (1996)

как расшифровать код игры. image loader. как расшифровать код игры фото. как расшифровать код игры-image loader. картинка как расшифровать код игры. картинка image loader. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: Crack dot Com
Издатель: Electronic Arts / Origin Systems
Платформа: DOS / Linux / Mac

В игре было использовано несколько инноваций. Крутая система управления одновременно с мыши и клавиатуры. Динамическое освещение (неслыханная вещь для платформеров).

Но больше всего, как программисту, мне понравилась система «визуального Lisp». Вся игра заскриптована на языке, напоминающем Lisp. Поведение врагов можно изменять во время выполнения игры, а не просто включать в код.

Ещё одним интересным моментом стал способ, по которому события можно подключать во встроенном редакторе карт – визуально перетаскивать линии от выключателя к двери, или от ловушки к месту, где появляются враги. Присутствует возможность задавать логику И/ИЛИ в виде скрытых объектов на уровне. Такого я в других редакторах не встречал.

Коммерческого успеха игра не снискала и через два года исходники были опубликованы. Следующая игра от Crack Dot Com, Golgotha, была выпущена по принципу open-source, включая всю графику.

Aliens versus Predator (1999)

как расшифровать код игры. fe9602a46f2f15e68d301c9a2c1435fe. как расшифровать код игры фото. как расшифровать код игры-fe9602a46f2f15e68d301c9a2c1435fe. картинка как расшифровать код игры. картинка fe9602a46f2f15e68d301c9a2c1435fe. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

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

Freespace 2 (1999)

как расшифровать код игры. 895f27d7a6477355a83f37c69c411210. как расшифровать код игры фото. как расшифровать код игры-895f27d7a6477355a83f37c69c411210. картинка как расшифровать код игры. картинка 895f27d7a6477355a83f37c69c411210. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Как бы наследник франшизы Descent, но не совсем. Кампания и мультиплеер проходят полностью в космическом пространстве.

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

The Operative: No One Lives Forever (2000)

как расшифровать код игры. 8e7d4c4d28d59723e4b5ebe95e72a3e2. как расшифровать код игры фото. как расшифровать код игры-8e7d4c4d28d59723e4b5ebe95e72a3e2. картинка как расшифровать код игры. картинка 8e7d4c4d28d59723e4b5ebe95e72a3e2. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

У движка LithTech история долгая, хотя он и находится в тени более известных Quake и Unreal engine. Я особенно не рылся в исходника NOLF, но я подозреваю, что там есть лишь исходники самой игры, но не графического движка. И однозначно там не будет частей, связанных с работой на PlayStation 2.

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

MechCommander 2 (2001)

как расшифровать код игры. c088d3ebda463dbcf2c3f9df25758edd. как расшифровать код игры фото. как расшифровать код игры-c088d3ebda463dbcf2c3f9df25758edd. картинка как расшифровать код игры. картинка c088d3ebda463dbcf2c3f9df25758edd. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: FASA Interactive
Издатель: Microsoft
Платформа: Windows

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

В прошлом году даже были выпущены исходники ранних версий MS-DOS и Word, что было неслыханным делом лет 30 назад.

Doom 3 (2004)

как расшифровать код игры. 0e5df8e035493950310fb8b768b322f2. как расшифровать код игры фото. как расшифровать код игры-0e5df8e035493950310fb8b768b322f2. картинка как расшифровать код игры. картинка 0e5df8e035493950310fb8b768b322f2. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: id Software
Издатель: Activision
Платформа: Windows / Mac / Linux / Xbox / PS3
Code review: fabiensanglard.net

Если вы хотите изучить движки современных игр высшего класса, то Doom 3 – это один из наилучших примеров. На время выхода он был инновационным во многих областях. Метод использования моделей высокого разрешения на элементах низкого разрешения в игре сейчас является стандартом для коммерческих игр. В исходнике есть много всего интересного – одна лишь система обработки физики достойна изучения, в частности, отслеживание столкновений.

Это первая игра от id, написанная на С++. Прошлые игры из-за использования С несли в себе простоту. Doom 3 тоже довольно простой, но заметно уже изменение его вектора движения.

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

Gish (2004)

как расшифровать код игры. 243906f7ca5719321c93ceb0fcaf8d96. как расшифровать код игры фото. как расшифровать код игры-243906f7ca5719321c93ceb0fcaf8d96. картинка как расшифровать код игры. картинка 243906f7ca5719321c93ceb0fcaf8d96. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: Cryptic Sea
Издатель: Chronic Logic / Stardock
Платформа: Windows / Linux

Gish был примечателен физикой «мягкого тела» и интересным подходом ко времени. Интересно разбираться в его исходниках и выяснять, как что работает. Никаких сторонних физических движков тут нет.

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

Canabalt (2009)

как расшифровать код игры. 97aa5158beeff6caebd1d3ba38ed28ff. как расшифровать код игры фото. как расшифровать код игры-97aa5158beeff6caebd1d3ba38ed28ff. картинка как расшифровать код игры. картинка 97aa5158beeff6caebd1d3ba38ed28ff. Одна из главных тайн — древняя, но очень развитая цивилизация Предтечей, также известная как Ису. Она появилась на Земле задолго до людей. Сами Предтечи и создали человечество — куда менее развитое в техническом плане и не обладающее такой же физической мощью. Люди прислуживали Ису до тех пор, пока между ними не началась война. Но из-за вспышки на Солнце большая часть населения планеты погибла.

Разработчик: Adam Saltsman
Издатель: Semi-Secret / Beatshapers / Kittehface
Платформа: Flash / iOS / PSP / Android / Ouya

Не самая сложная игра, ну и что? Если вы хотите научиться делать игры, начинайте с простого – вот с этого.

Прототипирование заняло 5 дней, портирование на iOS – 10. Пример превращения простой идеи в достойное выражение. Это как бы возвращение 8-битной эпохи, когда еженедельно могли появляться новые жанры. Жаль, что с тех пор люди предпочитают клонировать идеи, а не творить самостоятельно.

Canabalt показывает, насколько вещи можно сделать просто, если захотеть.

Что я упустил

Нужно упомянуть ещё несколько игр. Они не выпускали исходников, но подверглись фанатскому обратному инжинирингу. Это, конечно, не то же самое, что настоящие исходники, но тоже может быть интересным:

Не попали в рейтинг

Сорцы следующих игр утекли в сеть нелегально, поэтому они не попали в зал славы:

Half Life 2
Falcon 4.0
ReVolt
Turrican III
Mr. Nutz: Hoppin’ Mad
Trespasser (ладно уж, вот вам обзор кода)

Источник

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

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