Існує чимало ігор, які, на жаль, через свій вік дуже важко запустити на сучасних системах. Добре, що є народні умільці, які готові виправити дану несправедливість і допомогти власникам сучасного заліза насолодитися старими проектами.

З одним з таких умільців нам і вдалося поспілкуватися. Оскільки ми нещодавно почали публікувати історію компанії 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 кілька добровольців надсилали виправлення.

Чи контактували Ви з розробниками оригінальної гри для вирішення тих чи інших проблем?

Вийти на контакт з оригінальними розробниками гри я не намагався. Через стільки років, я не сподівався, що розробники щось пам’ятають, що я не зміг би з’ясувати методами зворотної розробки.

Істотно допомогти могло б тільки повне відкриття оригінального вихідного коду, але надії на це були вельми туманні у зв’язку з давністю років і неясностями з авторськими правами.

PanzerChasm

Чи виникали складнощі з розробкою проекту? Якщо так, то якого плану вони були?

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

Ще були складнощі, долати які, я і не прагнув. Наприклад, я свідомо не став навіть розбиратися з форматами збережень і демок, оскільки вважав малозначним підтримку старих форматів.

Поговоримо трохи про щось інше. Чи граєте ви взагалі в ігри? Якщо так, то які у вас найулюбленіші?

В ігри звичайно ж граю. Віддаю перевагу, в основному, жанр шутерів від першої особи, але іноді граю в ігри інших жанрів.

Улюблені ігри – Doom, Doom II, Quake, Quake II, Serious Sam. З не-шутерів – Thief, Portal, Minecraft.

Здебільшого, я віддаю перевагу ігри перевірені часом, в новинки особливо не граю, віддаю перевагу грати в ігри року так до 2006-го.

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

Я граю в основному в такі ігри, які є в деякому роді шедеврами, а змінити в них щось – значить погіршити. Тому в таких іграх у мене і думок немає щось міняти.

В інших іграх бувають випадки, коли щось явно дратує, якийсь елемент ігрового процесу, або якась деталь технічної реалізації. Але, зазвичай, в таких ситуаціях змінити нічого не вийде, доводиться змирятися з цим. У разі, коли не одному мені щось не подобається, як правило вже існують фанатські модифікації, які щось виправляють.

PanzerChasm

Останні тенденції в ігровій індустрії непрозоро натякають, що великі видавці не в захваті від того, що на їх ігри створюють моди. Чи вважаєте ви таке ставлення до модифікацій і, в принципі, до фанатської творчості прийнятним?

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

Повертаючись до PanzerChasm. Хотілося б вам щось поліпшити в ньому? Якщо так, то що саме?

Хотілося б усунути в PanzerChasm непрохідність ряду оригінальних рівнів. Проблема тільки в тому, що не зрозуміло поки, як це зробити.

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

Ще, в PanzerChasm є багатокористувацький режим, який (наскільки мені відомо) так і не тестувався в належній мірі. Цілком можливо, що там є що поправити і поліпшити.

Чи хотіли ви створити власну гру (або ж, ви її вже створили)?

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

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

Але, в цілому, саме що розробником ігор в повному розумінні цього терміна я себе не вважаю. Я за професією програміст і можу закодити якусь гру, але не можу розробити оригінальної ігрової механіки і вже тим більше не можу наповнити гру вмістом (спрайтами, моделями, текстурами і т.д.). Бажання збиратися з кимось, хто це все може, у мене особливо немає.

PanzerChasm

Що можете побажати модоробам- початківцям і розробникам?

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

Але я хотів би застерегти їх від передчасних спроб комерціалізації. Подумайте, чи дійсно ваша гра цікава або унікальна, щоб користувач захотів грати саме в неї, або ж ви своєю грою лише розширите звалище “продуктів” в Steam / GooglePlay.


Дякуємо Panzerschrek за інтерв’ю та бажаємо успіхів у його діяльності!

Завантажити PanzerChasm можна тут. Як вже було сказано раніше, Source-порт ще не повністю готовий, але вже можна пограти в гру на роздільних здатностях, вище 1024х768 і оцінити покращену продуктивність.

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