Выделить изменения за дату (для работы необходим JavaScript):

сага о
Doom2D

Ты меня слышишь... или нет?
А, слышишь!
© Проверка звука в Setup'е от Doom2D


Ты труп, приятель!



История Легенды

Мало кто из российских игроков не играл и уж тем более не слышал о легендарной игре Doom2D. Думаю, что о ней также хорошо знают как и в СНГ, так и за рубежом. Свидетельство тому - статья в Doom Wiki[1].

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

Давайте для начала поближе познакомимся с создателями этой замечательной игры (титры взяты из версии 1.40):

ПрограммаАлексей Волынсков
ГрафикаАлексей Волынсков,
Владимир Калинин,
Евгений Ковтунов
УровниВладимир Калинин,
Алексей Волынсков
Музыка, звук и речьВладимир Калинин

Итак, игру, как видно, делали всего 3 человека:

Алексей Волынсков Владимир Калинин Евгений Ковтунов

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


-=-: Расскажите, пожалуйста, о создании игры. С чего всё начиналось? Как эта идея вообще пришла Prikol Software в голову?

Алексей Волынсков: Если не ошибаюсь, в 95-ом или около того году я ездил в Троицк, там было что-то вроде летнего лагеря для школьников, хорошо смыслящих в компах и программировании. В общем там нас типа обучали, мы тусили, а по итогам была типа олимпиада по программированию. В моей группе был фанат Дума, он сделал загрузчик для Турбо Паскаля, в виде думовской загрузки, с красной строкой-заголовком, выводом всякого прикольного текста, прогресс-баром точками и т.п. В итоге запускался Турбо Паскаль. Сделано это было против злого препода ("Что это вы тут делаете?" - "Турбо Паскаль загружаю." - "Ну посмотрим, посмотрим, как загрузится..."). Но было довольно забавно.

А ещё там был типа сисадмин, который тоже был большой фанат Дума, ну и мы решили над ним пошутить. Я сделал программку, которая генерит мусорные файлы, и таким образом сделал Doom3, со всеми сопутствующими экзешниками для игры по сети, WAD-ом и т.п. Занимал он намного больше второго дума (мусор, разумеется), и по приколу я сделал doom3.exe на 666 килобайт (дописав мусор к реальному экзешнику, который просто печатал текст). Это всё мы отдали под видом третьего Дума ("только что вышел!") этому админу. Там народ всякие программки с собой привозил, так что это было не очень удивительно. Оказалось, экзешник не запускается (не влезает в досовские 640к), и когда мы уходили, сисадмин пытался его запустить, устанавливая всякие расширители памяти и т.п. :)

Экзешники писали текст, типичный для Doom2, но с копирайтом (c) Prikol Software, 1997. Это было раньше 97-ого, разумеется :)

Потом я думал сделать какую-нибудь свою игрушку, и возникла идея сделать 2д-аркаду вроде Dangerous Dave, но как пародию на Дум.


-=-: Если не ошибаюсь, судя по исходным кодам, игра первоначально должна была носить имя "СМЯТКА" - это был отдельный проект, который потом перерос в Doom2D или изначально Doom2D и планировался, просто потом предложили название лучше? Насколько понимаю, Doom2D - некоммерческий проект. В связи с этим два вопроса:

1) Самая распространённая версия игры - 1.30 - включённая практически на все существующие пиратские сборники "Лучших игр для IBM PC", "Лучших отечественных игр", и т.д. (видел её как минимум на 3-4 разных дисках) имеет известную ошибку "FATAL ERROR: Переустановите игру"[2] - это, так надо понимать, защита - для (или от) чего она была установлена (сделана)?

2) И планировался ли Doom2D как игра, которая поможет команде авторов "заявить о себе" или просто был любительской разработкой?

Алексей Волынсков: Игра изначально делалась просто по-приколу, и называлась Doom2D. Потом возникла мысль её всё-таки попытаться продать. Для этого сменили название на "Операция Смятка", чтобы не эксплуатировать Дум. Собирались продавать на дискетах на Митинском радиорынке. Потому и защита. Пытались продавать, но не особенно получилось. Её потом упиратили на какой-то сборник - видимо, как раз версию с защитой.


-=-: Судя по файлу "Doom2D.doc" была демо-версия игры. Как она распространялись? Через знакомых, FIDO или ещё как-то?

Алексей Волынсков: Демо-версия - это скорее всего для какой-то "конференции юных дарований" или как они там назывались.


-=-: Сколько времени, в сумме, ушло на разработку игры (включая последнюю версию)?

Алексей Волынсков: Сложно сказать. Год-полтора (работы на досуге) наверное. Параллельно с учёбой в школе (школу я закончил в 96-ом, так что мы уже были старшеклассниками). Ну и при учёбе в школе есть летние каникулы, три месяца. До хрена времени, на самом деле.


Здесь возьму на себя наглость ненадолго прервать повествование для осознания такой вот мысли: Алексей Волынсков с товарищами написали эту бессмертную игру "на досуге" ещё учась в школе (!), пусть даже и старшеклассниками. Кто-нибудь знает хотя бы ещё один отечественный проект настолько же известный и написанный... школьниками? Игра вышла в 1996-ом году - уже, практически, 12 лет прошло, а её всё ещё помнят и любят. Неплохо для проекта написанного "просто по-приколу"? В общем, как я люблю говорить - если это и не лучшая вещь, то уж точно одна из лучших.


-=-: А кто так весело озвучил приколистов, Setup, пункты меню в последней версии и прочее?

Алексей Волынсков: Владимир Калинин, он же писал музыку и сделал почти половину уровней.


-=-: Какие интересные / сложные / весёлые моменты при создании игры запомнились больше всего?

Алексей Волынсков: Запомнилось, как рубились первый раз в мультиплеер. Я только сделал эту возможность, в игре было одно оружие (ружьё) и не было аптечек. Играли несколько часов не отрываясь, на малюсеньком уровне :)


-=-: Существуют ли ещё какие-нибудь игры от Prikol Software помимо Doom2D?

Алексей Волынсков: Doom3 :) Выпущенный в 95-ом, кажется :) См. выше про историю идеи.


-=-: Gaijin Entertainment[3] - это выходцы из Prikol Software или нет? Расскажите, пожалуйста, немного о фирме и проектах над которыми сейчас работаете. Над ними трудится та же команда, которая когда-то делала легендарный Doom2D?

Алексей Волынсков: Из Prikol Software в Gaijin только я. Остальные не стали заниматься разработкой игр. Компанию Gaijin Entertainment я основал вместе с другими своими друзьями, Антоном и Кириллом Юдинцевами. Сейчас я руководитель проекта "Ониблэйд"[4]. Это вторая игра (после Doom2D), которую я считаю "своей". В остальных проектах Gaijin я только "принимал участие" (на мой взгляд).


-=-: Большое спасибо, что нашли время ответить на вопросы. Удачи!

Алексей Волынсков: Спасибо.


Вот и всё. В конце хотелось бы подытожить некоторые вещи поразившие лично меня:

а) Doom2D - замечательная игра: аркадная, захватывающая, красиво, незатейливо и качественно сделанная. Всё гениальное - просто.

б) Что особенно приятно - так это то, что игра - отечественная.

в) Игру сделали не программисты-любители и даже не студенты, а школьники.

г) Алексей Волынсков оказался нормальным человеком, вовсе не гнущим пальцы или презренно игнорирующим почту от фанатов. Более того, он даже выложил исходные коды Doom2D и помог с описанием формата DMM для создания конвертера музыки (см. ниже), не говоря уже о том, что любезно согласился ответить на несколько моих вопросов.

Ну, и закончить этот небольшой экскурс в историю игры хотелось бы очередной фразой Алексея Волынскова:

Геймдев - само по себе игра :)


Ай-ай-ай, ой-ой-ой или Музыка

В хронологическом порядке (для пущего эффекту буду говорить о себе в третьем лице):

2004.09.19 - -=CHE@TER=- пытается разобрать формат DMM. Получается у него совсем немного и на этом вся работа останавливается. Исходные коды и наработки выкладываются для общего доступа в Интернете - возможно у кого-то получится.

2005.01.04 - вернувшись к исходным кодам через некоторое время -=CHE@TER=- даёт объявление на форуме Extarctor.ru[5] о помощи в разборе формата.

2005.02.09 - rs.falcon оставляет комментарий, что нашёл сайт разработчика игры - Gaijin Entertainment, где в истории фирмы[6] упоминается, что они делали Doom2D.

2005.02.09 - -=CHE@TER=- пишет письмо фирме (видимо куда-то в support).

2005.02.14 - на сайте Gaijin Entertainment появляются исходные коды Doom2D вместе с последней версией игры[7].

2005.02.15 - не дождавшись ответа -=CHE@TER=- регистрируется на форуме сайта и оставляет там сообщение[8].

2005.02.16 - на форуме отвечает Aliot и сообщает, что исходные коды уже выложены, так что все кто хочет может их смотреть. Больше никаких сообщений нет.

2005.03.30 - когда на затею уже можно было махнуть рукой, на форуме появляется и отвечает Alexey (Aleksey), который, оказывается не кем иным, как одним из разработчиков Doom2D - программистом Алексеем Волынсковым. Он полностью объясняет формат. Благодаря ему закладывается первый кирпичик в фундамент будущего конвертера.

2005.04.11 - Последнее уточнение по формату у Алексея Волынскова. С этого момента, можно сказать, что все кто видел это описание пытаются написать конвертер. Столкнувшись с многочисленными трудностями при конвертировании формата, а также (позже) из-за рухнувшего винчестера, зачинщик всего этого, -=CHE@TER=-, так и не заканчивает конвертер. Всё останавливается после сбора статистики по модулям (кол-во таблиц, инструментов, макс. длинна таблицы и т.д.)

2007.02.21 - после, практически, двухгодового затишья, инициативу подхватывают фанаты со свежеоткрытого сайта Doom2D.org[9] и возобновляют исследования[10]. Теперь, конвертированием занимается 3EPHOEd. Создаётся даже примитивный проигрыватель. Однако, на этом работа опять стопорится.

2007.09.21 - наконец, спустя три года с первой попытки что-то сделать, как гром среди ясного неба появляется Grom PE с программой DMM2XM v0.6[11] конвертирующей DMM файлы в .XM (FastTracker v2.00 Extended Module) формат, которая к тому же, поставляется с исходными кодами на Delphi.

2007.09.15 - после нескольких промежуточных версий, учтя всю критику на форуме, Grom PE выпускает DMM2XM версии v0.8, в которой появилась возможность добавлять стерео, что, по некоторым отзывам, даже улучшает звучание оригинала.

2007.10.02 - выходит DMM2XM v1.0[12] поддерживающая ко всему прочему обратную конвертацию из XM в DMM.

В заключении хотелось бы ещё сказать пару слов о Grom PE - авторе конвертера. Вообще, с Doom2D связано много "странностей" - в том смысле, что люди так или иначе связанные с этой игрой оказываются весьма интересными и приятными в общении. Так вот, мне удалось перекинуться парой слов с Grom PE и на мою реплику о том, что если бы конвертер закончил я, то исходные коды не выложил бы, Grom PE сказал чудесную фразу, на которую мне, собственно, нечего было ответить:


Моя цель - "наносить добро и причинять пользу", а открытые исходники явно принесут больше пользы (и всем), чем плагиат - вреда (и лишь мне?).

© Grom PE


ПошелнаXX или Коды

Все коды работают только в игре для одного игрока:

rambo - всё оружие, 30000 патронов к нему и все ключи

tank - 200% здоровья и 200% брони

formula1 - бегаете как сумасшедший (слово formula пишется слитно с цифрой 1)

iddqd - тут же умрёте

bullfrog - будете очень высоко прыгать

goodbye - завершить текущий уровень

Следующие коды также набираются на английской раскладке, просто смотрите на русские буквы:

симсим - открывает все двери / нажимает все кнопки

горец - бессмертие

пошелнаXX - переход на уровень XX; возможные значения XX - 01, 02 ... 18, 19

белыйорел - возможность летать при помощи клавиши прыжка (только в версии 1.35 и 1.40)



Doom2D Fatal Error Fix

Как уже было упомянуто выше, игра версии V1.30 имела защиту от копирования. Работала она следующим образом: при установке игры в хвост файлу "COLORMAP" из архива "DOOM2D.WAD" дописывался небольшой кусок дампа BIOS и данные о конфигурации компьютера (кому интересно - см. исходные коды игры, там код защиты остался, просто закомментирован). Если при запуске эти данные не совпадали (т.е. игру перенесли на другой компьютер или конфигурация компьютера поменялась), то туда же самой игрой записывался счётчик, уменьшающийся на одно значение с каждым запуском (изначально равен 12). Когда он становился равен нулю, то, спустя небольшое время после запуска игры, у игрока(ов) начинала быстро кончаться жизнь и, когда все умирали, игра выходила с сообщением об ошибке "FATAL ERROR: Пожалуйста переустановите игру". Для пользователя официально купившего игру проблем никаких не было - достаточно было сделать то, о чём и просили - переустановить игру, чтобы проблема более не появлялась. Но вот тем кто получил игру в уже установленном виде (а это большинство фанатов этой игры, кто узнавал о ней со всяких игровых сборников) приходилось либо копировать "DOOM2D.WAD" из резервной копии где счётчик ещё не был нулём, либо вручную увеличивать его - делать отличным от нуля. К слову сказать, попытка поставить на файл "DOOM2D.WAD" атрибут "Только чтение" (Read-only), чтобы не дать записать туда уменьшенное значение счётчика, не позволяла запуститься игре вообще, хотя редактор уровней работал.

Если кто помнит, то 26 июня 2004 года я сделал первую попытку отключить защиту в виде программы "Doom2D Final Patch", которая тупо за'NOP'ливала (аж 5 штук) в "DOOM2D.EXE" функцию записи уменьшенного счётчика, а также записывала значение этого счётчика в "DOOM2D.WAD" числом $FF, на тот случай, если он уже был доведён до нуля. Среди других исправлений на то время, моё выгодно отличалось тем, что не просто откладывало срабатывание защиты на некоторое время записью $FF на место счётчика, а отключало его запись (по сути уменьшение) вообще, т.е. проблем с защитой больше не было.

И вот теперь, спустя 10 лет, я, наконец-то, как и хотел, переработал исправление и сделал элегантное решение (меняются всего два байта и только в файле "DOOM2D.EXE"), так что на "DOOM2D.WAD" теперь можно ставить "Только чтение" (Read-only) и даже записать игру на CD/DVD/BD диск и играть оттуда. После этого патча игре также будет глубоко фиолетово чему там равен счётчик оставшихся запусков.

Данный патч исправляет только "DOOM2D.EXE" и только версии V1.30.


Doom2D Fatal Error Fix (6 565 байт)

Архив содержит в себе исходные коды для TP7, а также исполняемый файл для DOS.

Перед запуском программу нужно обязательно поместить в каталог игры!



Исходные коды программ Prikol Software

-=-: Товарищ Grom PE возится сейчас (2007.10.04 - прим. -=-) с обратным конвертером XM -> DMM. Поэтому хотелось бы спросить вот по какому поводу (цитата с форума):

Как ни странно, мы сделали свой редактор музыки. Он назывался DME (Digital Music Editor). Конвертация из MOD (может даже STM) была, но только чтобы вставлять другую музыку в игру (для deathmatch). У меня кажется где-то была версия DME, которая могла "проиграть" музыку в raw-pcm файл, который потом можно загрузить в звуковой редактор и сконвертить, скажем, в mp3.

DME является частью какого-то другого коммерческого проекта или его можно попросить выложить как и Doom2D?

Алексей Волынсков: Нет, не является. Могу выложить. Залил oldprog.rar (34 Mb)

В общем оно "AS IS" ("как есть") и делать с ним можно что угодно, и кому угодно.

Это всякие мои проги, написанные в древние времена на Турбо С и Watcom.

Там хватает всякого мусора, бекапов и вроде даже Турбо С компилятор есть :)

Я не особо разбирался, просто собрал то, что можно отдать в свободный доступ.

DME там называется DIGMUS.

В остальном - разбирайтесь и делайте что хотите. Я вряд ли смогу помочь, т.к. сам уже не особенно помню что там :)

Кстати, если уж интересно программирование игр, рекомендую глянуть эту статейку:

ИНТЕРВЬЮ ГЛАЗАМИ ПОСТРАДАВШЕГО

Оно конечно про буржуйский Midway, и возможно, спорно, но те вещи, которые там написаны программисту игр знать очень желательно. Но это так, в помощь самообразованию :)



Ссылки

  1. Doom 2D - Doom Wiki
  2. Doom2D Fatal Error Fix
  3. Gaijin Entertainment.
  4. Oniblade - официальный сайт
  5. EXTRACTOR.ru -> !!! Музыка из игры Doom2D !!!
  6. Gaijin Entertainment. Company: history [страница удалена - архивная копия]
  7. Gaijin Entertainment. Проекты: Doom2D [страница удалена - архивная копия]
  8. ПОЖАЛУЙСТА! - Doom2D Music Module (DMM) [форум удалён - архивная копия]
  9. Doom2D.org
  10. Архив старого форума Doom2D.org [см. ссылки на страницы темы по DMM]
  11. Grom PE's Software - сайт автора программы DMM2XM
  12. Grom PE's Software - DMM2XM (последняя версия всегда расположена по этой ссылке)

-=CHE@TER=-
2007.10.03 15:05