Devilution: проект реконструкции оригинального Diablo

19.06.2018 19:35 2

Devilution: проект реконструкции оригинального Diablo

Пока игроки врываются в новые сезоны в Diablo II и Diablo III, а разработчики вовсю делают продолжение, некоторые поклонники занимаются возрождением классики. Встречайте Devilution — проект реконструкции оригинального Diablo.

Когда появляется любое устройство, способное выполнять программы, на него обязательно портируют Doom. Это факт, доказанный десятилетиями примеров: бесчеловечным экспериментам подверглись банкоматы, фотоаппараты, принтеры, калькуляторы — перечислять можно вечно. За это нужно сказать спасибо разработчикам из id Software, которые не только сделали классную игру, но и выпустили в конце 1997 года ее исходный код. Когда кто-то просто портирует код на все устройства с процессорами, другие дорабатывают или даже расширяют оригинальную игру, порождая такие проекты, как Brutal Doom. Имея доступ к исходному коду, программисты-энтузиасты могут делать с игрой практически все что угодно. id Software отпустили Doom в свободное плавание и подарили ему практически вечную жизнь.

Хотя Diablo — это тоже игра про истребление орд демонов, ее судьба совершенно иная. Blizzard не выпускает исходный код для своих игр, а последнее обновление Diablo вышло в 2001 году. Страсть поклонников и острое желание дать вторую жизнь классике дает о себе знать: появляются такие проекты, как The Hell и Tchernobog / Belzebub (также известный как Diablo 1 HD MOD). Но прогресс идет медленно и разработка затягивается на годы. Кроме того, приведенные в пример проекты имеют закрытый исходный код: другие разработчики не могут использовать их наработки, и если создатели этих модификаций куда-то пропадут или просто потеряют интерес, мы лишимся многих лет прогресса.

Чтобы обеспечить сохранность оригинального Diablo для будущих поколений, что-то нужно делать. Об этом задумался программист-энтузиаст GalaXyHaXz и родился проект Devilution. Он решил воссоздать исходный код Diablo при помощи метода обратной разработки (реверс-инжиниринга) для документации и использования в качестве основы для других проектов. GalaXyHaXz рассказал на странице проекта на GitHub, что на самом деле картина была не такая уж и печальная: Blizzard действительно никогда не выпускали исходный код Diablo, но его тайны не охранялись должным образом.

В 1998 году Blizzard передали исходный код Diablo двум студиям: Synergestic Software для разработки дополнения Hellfire и Climax Studios для портирования игры на PlayStation. Sony Computer Entertainment Japan в те времена славились своей поражающей способностью сливать исходники. Один из самых знаменитых случаев — когда на диске с игрой Beatmania Best Hits случайно оставили исходный код Beatmania 5th Mix. Руки японских мастеров своего дела добрались и до Diablo: на диске с японской версией игры для PlayStation забыли файл со структурой исходного кода. Из него GalaXyHaXz узнал об используемых в коде функциях и типах данных и другую полезную информацию. Некоторое время назад на просторах Интернета также появилась бета-версия порта на PlayStation, из которой удалось извлечь еще больше информации. Но не только японцам мы должны быть благодарны: сами разработчики из Blizzard North оставили в игровых архивах PC-версии альтернативную сборку с включенными функциями для отладки.

Вооружившись этими знаниями, GalaXyHaXz после 1200 часов работы смог почти полностью воссоздать оригинальных исходный код Diablo. Главная задача пока что — это именно воссоздание оригинального кода с максимальной точностью, а не реализация нового функционала. С этим практически удалось справиться, если не считать некоторые шероховатости, которые еще будут сглажены. На странице проекта на GitHub уже есть собранная версия Devilution, которую можно положить в папку с игрой и использовать вместо Diablo.exe. Игра проходится от начала до конца, но, например, динамическое освещение работает некорректно. Также еще предстоит воссоздать некоторые дополнительные элементы, например библиотеку DiabloUI.dll, отвечающую за интерфейс в главном меню игры.

Самое интересное — это будущее проекта. Когда все оставшиеся проблемы будут решены, GalaXyHaXz и другие программисты смогут использовать Devilution для доработки оригинального Diablo. Можно будет решить проблемы с совместимостью на современных версиях Windows, перенести игру с устаревшего графического API DirectDraw на OpenGL, портировать игру на Linux и другие платформы, модернизировать интерфейс, переработать сетевой код и сделать еще много всего интересного. GalaXyHaXz ожидает, что многое из этого будет готово уже через 6-12 месяцев. Для примера он даже показал скриншоты экспериментальной версии, в которую он перенес некоторые функции интерфейса из Diablo II, включая индикаторы здоровья противников, отображение названий предметов на земле, графический интерфейс торговцев и всплывающие подсказки с описанием предметов.

Devilution: проект реконструкции оригинального Diablo Devilution: проект реконструкции оригинального Diablo

GalaXyHaXz сконцентрирован на оригинальном Diablo и не собирается воссоздавать Diablo II, потому что там исходный код примерно в восемь раз больше и высока вероятность скорого появления официального Diablo II Remastered.

Если Devilution сможет привлечь внимание сообщества и опытных программистов, в будущем нас может ждать самый настоящий ренессанс оригинального Diablo с волной новых модификаций и портов на различные платформы. На странице GalaXyHaXz на GitHub также есть подробная документация движка Diablo, которая должна помочь быстро разобраться всем, кто хочет помочь.

Источник

Следующая новость
Предыдущая новость

Халява: сразу 6 игр и 5 приложений бесплатно раздают в Google Play и App Store Якутские косплееры построили звездолет из «Мандалорца» в натуральную величину. Есть фотографии СМИ сообщили об ограничении доступа к Google Docs и некоторым другим сайтам в России «Ппеснь о вернувшихся героях»: Blizzard убрала российский ролик World of Warcraft с опечаткой Анонсирован перезапуск Saints Row

Лента публикаций