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, которая должна помочь быстро разобраться всем, кто хочет помочь.

Источник

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

Фанаты Fortnite воссоздали несколько популярных видео в игре и засняли это Electronic Arts пообещала, что в ремастере серии Command & Conquer не будет микротранзакций В Quake Champions появятся три новых режима После нового патча Assassin's Creed Valhalla станет намного меньше — но ее придется скачать заново А подсветка будет? Razer вложилась в производство «зеленой» туалетной бумаги

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