Существует немало игр, которые, к сожалению, из-за своего возраста очень трудно запустить на современных системах. Благо, есть народные умельцы, которые готовы исправить данную несправедливость и помочь владельцам современного железа насладится старыми проектами.

С одним из таких умельцев нам и удалсь пообщаться. Поскольку мы недавно начали публиковать историю компании Action Forms, то решили что вам будет интересно почитать наше интервью с парнем под ником Panzerschrek, который сделал source-порт игры Chasm: The Rift под названием PanzerChasm.

Chasm: The Rift

Как Вы познакомились с оригинальной игрой Chasm: The Rift? Что Вас больше всего в ней зацепило?

Познакомился с оригинальной игрой весной 2014-го года. Зацепили общая игровая атмосфера и техническое исполнение.

Атмосфера была достаточно своеобразной, впечатлил дизайн монстров, удивила смена тем в разных эпизодах игры. Техническое исполнение удивило совмещением грубого двухмерного лабиринта и трёхмерных моделей.

Как вам удалось сделать, своего рода, source-код, без исходников проекта в открытом доступе?

Удалось воссоздать игру, используя ряд методов обратной разработки.(Reverse-инжениринга)

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

Более-менее разобравшись с форматом уровней я начал писать тестовое приложение, которым бы можно было посмотреть уровни.

Далее пришла очередь узнать о формате моделей. По формату статичных моделей *.3o я нашёл заметку в интернете, и смог разобрать данные моделей, в последствии дополнив описание формата.

После моделей остались совсем уж простые файлы – текстовые, с ними проблем не возникло.

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

Дальнейшая задача была на 90% тривиальной, хоть и требующей кое-каких трудозатрат. 90% усилий были направлены на написание кода обсчёта игровой логики и рисования результата на экране.

PanzerChasm

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

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

Всю работу делали самостоятельно, или была команда?

Почти всю работу выполнил я. Немного помогли в каких-то аспектах ряд форумчан (речь о посетителях форума gamedev.ru – прим.ред.) , чуть позже через github несколько добровольцев присылали исправления.

Контактировали ли вы с разработчиками оригинальной игры для решения тех или иных проблем?

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

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

Возникали ли сложности с разработкой проекта? Если да, то какого плана они были?

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

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

Поговорим немного о чем-то другом. Играете ли вы вообще в игры? Если да, то какие у вас самые любимые?

В игры конечно же играю. Предпочитаю, в основном, жанр шутеров от первого лица, но иногда играю в игры других жанров.

Любимые игры — Doom, Doom II, Quake, Quake II, Serious Sam. Из не-шутеров – Thief, Portal, Minecraft.

В основном я предпочитаю игры проверенные временем, в новинки особо не играю, предпочитаю играть в игры года так до 2006-го.

Часто ли хочется что-то улучшить в игре, что-то изменить?

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

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

Последние тенденции в игровой индустрии непрозрачно намекают, что крупные издатели не в восторге от того, что на их игры создают моды. Считаете ли вы такое отношение к модификациям и, в принципе, к фанатскому творчеству приемлемым?

Я резко порицаю любые поползновения правообладателей в сторону ограничения свободного творчества сообщества по созданию модификаций, реинкарнаций, ремейков и т. д. Я считаю, что такие действия правообладателей вредят сообществу игроков в угоду частной выгоде конкретного правообладателя.

Возвращаясь к PanzerChasm. Хотелось бы вам что-то улучшить в нем? Если да, то что именно?

Хотелось бы устранить в PanzerChasm непроходимость ряда оригинальных уровней. Проблема только в том, что не понятно пока, как это сделать.

Также можно было бы улучшить кое-какие незначительные элементы игры – Искусственный интеллект монстров, ряд графических эффектов и так далее.

Ещё, в PanzerChasm есть многопользовательский режим, который (насколько мне известно) так и не тестировался в должной мере. Вполне возможно, что там есть что поправить и улучшить.

Хотели ли вы создать собственную игру (или же, вы её уже создали)?

Я уже создал ряд игр. На первых курсах института я, как и все, создал свои версии игр типа “Змейка” и “Тетрис”.

На конкурсы 64k, 96k, 32k игр на GameDev.ru я создал ряд игр с генерируемым контентом. Относительно недавно, в декабре 2018-го года, я участвовал в местной сходке игроделов, на которой написал простенькую игру про дилемму вагонетки.

Но, в целом, именно что разработчиком игр в полном понимании этого термина я себя не считаю. Я по профессии программист и могу закодить какую-то игру, но не могу разработать оригинальной игровой механики и уж тем более не могу наполнить игру содержимым (спрайтами, моделями, текстурами и т. д.). Желание собираться с кем-то, кто это всё может, у меня особо нету.

Что можете пожелать начинающим мододелам и разработчикам?

Хочется пожелать игроделам и мододелам всяческих успехов в их начинаниях.

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


Благодарим Panzerschrek за интервью и желаем успехов в его деятельности!

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

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