Сможет ли он запустить Doom? Мое путешествие через ад, чтобы узнать, почему ответ всегда «да»

Сможет ли он запустить Doom? Мое путешествие через ад, чтобы узнать, почему ответ всегда «да»

Сможет ли он запустить Doom? Мое путешествие через ад, чтобы узнать, почему ответ всегда «да»

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


Эта история является частью серии ReSpec Джейкоба Роуча, посвященной миру компьютерных игр и аппаратного обеспечения.

Шутка «Can it run Doom», появившаяся несколько десятилетий назад, является одной из самых ранних и любимых интернет-розыгрышей. Однако это вышло за рамки простого юмора. Теперь это служит ритуалом посвящения для начинающих программистов.

Посетите мой любимый сабреддит r/itrunsdoom, где с энтузиазмом сохраняется наследие Doom. С It Runs Doom! Страница Tumblr замолчала около года назад, а сообщество Reddit расширилось до более чем 100 000 участников, которые делятся и участвуют в продолжающемся портировании Doom на впечатляющее разнообразие платформ. От калькуляторов и терминалов для кредитных карт до более необычных решений, таких как Nintendo Alarmo, RS Media Robot 2006 года и мультиплеер Pioneer DJ — это лишь некоторые примеры из недавнего прошлого.

По мере того, как я глубже погружался в причудливые версии Doom, чем старше они казались, тем больше мне было любопытно их происхождение – особенно учитывая их осуществимость. Кто изначально придумал эту, казалось бы, абсурдную идею? Чтобы раскрыть правду, мне пришлось бы порыться в хаотичных анналах Интернета 1990-х годов и пообщаться с страстными хакерами, которые продолжают поддерживать это наследие и сегодня.

Почему Дум?

Наша история не восходит к 1993 году, когда вышел Doom. Вместо этого он начинается четыре года спустя, в 1997 году. 23 декабря того же года, за два дня до Рождества, id Software обнародовала исходный код Doom. Примечательно, что Джон Кармак, вдохновитель оригинального кода, написал письмо сообществу, которое до сих пор доступно на странице GitHub для Doom. Да, даже несмотря на то, что такая крупная корпорация, как Zenimax (которая позже была приобретена Microsoft), взяла на себя управление id Software, исходный код Doom остается доступным.

В своем письме Кармак заявил, что не может точно предсказать, сколько людей будет работать над этим проектом, но если будет проделана существенная работа, было бы здорово увидеть чувство сотрудничества сообщества. Он признает, что большинство первоначальных проектов, скорее всего, будут индивидуальными усилиями, но надеется увидеть в следующем году единый «сетевой выпуск» улучшенной, кроссплатформенной совместимой версии Doom. Кармак также предложил своим читателям несколько идей проектов.

Сразу после того, как сообщество получило исходный код Doom, оно тут же приступило к его адаптации. Фактически, первоначальный исходный порт Doom, известный как DOSDoom, был обнародован в тот же день, когда был выпущен исходный код. Вы все еще можете найти этот порт доступным для загрузки сегодня. Исходный исходный код, выпущенный id Software, предназначался только для версии Doom для Linux; к сожалению, код DOS был недоступен из-за звуковой библиотеки, защищенной авторским правом. В своем письме Кармак выразил сожаление по поводу этой оплошности, заявив: «Какая ошибка! Теперь я пишу свой собственный звуковой код.

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

К счастью, не потребовалось много времени, чтобы все стало необычным. Самая ранняя версия Doom, которую мне удалось найти, была разработана для графического калькулятора Texas Instruments TI-82 и загружена на ticalc.org 12 апреля 1998 года. Написанная на языке Basic, она больше похожа на грубую имитацию. а не правильный порт. Тем не менее, даже тогда было желание заставить Doom работать на непредназначенных для этого платформах.

Примерно в ближайшие десять лет или около того в Интернете не будет много свидетельств того, что Doom работает на необычных платформах, таких как YouTube, поскольку он начался только в 2005 году. Тем не менее, как предсказывал Джон Кармак, вероятно, было много «рудиментарных хаков, созданных в изоляция.» В 1998 году появились камеры с операционной системой DigitaOS, а несколько лет назад YouTube-канал LGR продемонстрировал, что на этих камерах можно запускать Doom. Так что помните о DigitaOS, поскольку мы обсудим ее подробнее в следующем разделе.

Как аналитик, я не смог подтвердить, что Doom когда-либо успешно запускался на каких-либо камерах в 1998 году. Однако, судя по раннему выпуску и портированию исходного кода на различные платформы, похоже, предпринимались попытки экспериментировать. с этим. Самое раннее конкретное свидетельство о правильном портировании Doom, которое мне удалось найти, относится к сообщению на форуме Doomworld в 2007 году, где автор поделился видео (сейчас удаленным), демонстрирующим игру, работающую на калькуляторе TI-83.

Еще в октябре 2013 года It Runs Doom! Был запущен сайт Tumblr, первоначально демонстрирующий простые адаптации игры. Позже создатель опубликовал видео, демонстрирующее, как в Doom можно играть не на компьютере или консоли, а на пианино.

После тщательного поиска в Tumblr, Reddit, YouTube и общем поиске Google я постоянно натыкался на одно конкретное видео, которое выделялось. Это видео LGR о запуске Doom на калькуляторе TI-83, которое было опубликовано в 2017 году. С тех пор оно собрало более 7 миллионов просмотров, что сделало его самым популярным и широко распространенным источником демонстрации того, как Doom может работать на необычном компьютере. устройство в моем исследовании. Идея о том, что Doom потенциально может работать на различных платформах, возникла, когда игра была впервые запущена, и спустя годы она вызывала интерес у энтузиастов. Однако недавний всплеск интереса к запуску Doom на различных необычных устройствах можно частично объяснить видеороликом LGR на эту тему.

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

Высокомобильный истребитель демонов

Очень важно обсудить некоторые причины замечательной переносимости Doom, и ничего из этого не было бы возможным, если бы игра не стала таким значительным культурным феноменом. Мягко говоря, Doom пользовался невероятной популярностью, и это утверждение может быть даже преуменьшением. Гейб Ньюэлл, основатель Valve, который работал в Microsoft во время запуска Doom, подсчитал, что в 1993 году игра была установлена ​​на большем количестве компьютеров, чем Windows. Хотя возможно, что его утверждение преувеличено, нет никаких сомнений в том, что Doom вызвал бурю волнений.

Вскоре после выхода в 1994 году «Дум» приобрел настолько большую популярность, что права на производство фильма приобрела компания Universal Pictures. Джон Кармак из id Software предложил бесплатную адаптацию Doom для Windows. Однако Intel ввела ограничения на установку «Doom» на корпоративные компьютеры. В анонсе игры id Software предсказала, что «Doom», скорее всего, станет основной причиной снижения производительности в бизнесе по всему миру.

Сможет ли он запустить Doom? Мое путешествие через ад, чтобы узнать, почему ответ всегда «да»

В книге Дэвида Кушнера Masters of Doom было отмечено, что игра Doom увлекла многих до такой степени, что они не смогли устоять перед тем, чтобы пройти ее целиком. Некоторые даже называли это «героиновой программой». Игра имела такой успех, что журнал Forbes написал восторженную статью под названием Прибыль из подполья, в которой утверждалось, что id Software фактически превосходит таких гигантов отрасли, как Microsoft. В статье говорилось, что прибыль id была настолько впечатляющей, что по сравнению с ней Microsoft выглядела второстепенным производителем цемента.

Как энтузиаст технологий, я всегда поражался тому, как таким играм, как Doom, удавалось завоевывать различные платформы. Я считаю, что секретный соус состоял из трех важнейших компонентов. Во-первых, исходный код должен был быть в свободном доступе — и Джон Кармак, зная, что даже оригинальная Super Mario Bros может работать на современных устройствах, позаботился о том, чтобы сделать этот шаг лично. В конце концов, это все равно, что искать иголку в стоге сена, пытаясь найти исходный код большинства игр!

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

Другие игры имеют некоторые схожие особенности, но ни одна из них не может сравниться с Doom по своей огромной популярности. Как объяснил мне Sick.Codes, Doom выделяется как «одна из наиболее широко портируемых игр на Земле», а это означает, что кому-то в какой-то момент удалось адаптировать ее даже для самых необычных компьютерных систем.

Позвольте мне продемонстрировать.

Вот ссылка на браузерную версию классической игры Doom. Вы можете подумать, что в этом нет ничего необычного, но взгляните на адресную строку. Версия «Doom», в которую вы можете играть, на самом деле представляет собой файл SVG — обычно векторное изображение, используемое в таких программах, как Photoshop, для статического дизайна. Однако это не просто статичное изображение; это интерактивно! Это означает, что вы можете воспроизвести «Doom» прямо в этом SVG-файле в своем браузере.

Важным моментом является то, что персональные компьютеры (ПК) не были оптимальным выбором для игр в 1993 году из-за нехватки и высокой стоимости ускорителей 3D-графики, что затрудняло их приобретение. Поскольку большая часть этих чипов вместо этого использовалась в игровых автоматах и ​​домашних консолях, id Software пришлось сделать свою игру совместимой с широким спектром систем, поскольку она распространялась как условно-бесплатная программа, как это было в их предыдущих играх, таких как Commander Keen и Wolfenstein.

Гзало связан с аргентинской волонтерской организацией Cybercirujas, которая собирает использованные компьютерные компоненты в качестве пожертвований и модернизирует их. Примечательно, что этому инновационному разработчику удалось заставить классическую игру «Doom» работать на выброшенном платежном терминале Verifone VX620, который они обнаружили в мусоре.

Разработчик Gzalo объясняет, что Doom в первую очередь требует фреймбуфер для отображения изображений и базового ввода. Что касается программного обеспечения, вы должны уметь компилировать код C для целевой архитектуры, что обычно необходимо при написании программ для 32-битных процессоров. Для перехода к портированию новых игр обычно необходима операционная система, такая как Linux/Posix, а также поддержка OpenGL — задача, которую можно выполнить, но требует дополнительных усилий.

Далее Гзало объяснил, как мало нужно Doom для запуска программного обеспечения.

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

Крайне важно иметь скромные потребности в программном обеспечении, но аппаратный аспект не менее важен. Примечательно, что для работы Doom не требовалось много аппаратного обеспечения. Первоначальные системные требования для игры включали процессор 386 с тактовой частотой не менее 25 МГц и 4 МБ ОЗУ. Для сравнения: 80386 был первым 32-битным процессором Intel, появившимся на ПК еще в 1986 году, то есть за семь лет до запуска Doom. Возможность запускать Doom на широком спектре систем была целенаправленной.

По словам самого Кармака, когда-то существовала версия программного обеспечения, которая не требовала для работы монитора и вместо этого сохраняла скриншоты.

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

— Джон Кармак (@ID_AA_Carmack) 3 марта 2022 г.

Возвращаясь к операционной системе прошлых лет, мы снова обсуждаем DigitaOS. Эта система, написанная на языке C, предоставляла платформу для создания и распространения стороннего программного обеспечения. Двумя первыми камерами, связанными с DigitaOS, были Kodak DC220 и DC260, каждая из которых была оснащена процессорами PowerPC 800. Я обоснованно предполагаю, что они использовали чип MPC860, способный развивать скорость до 80 МГц. По словам LGR, по крайней мере, чип внутри DC260 сумел достичь частоты 66 МГц.

Во многом таким же образом были достигнуты требования к запуску Doom. У нас есть процессор, более мощный, чем у 386, работающий на частоте 25 МГц, приличный объем памяти и система, которая может компилировать код, написанный на C. Чтобы избежать путаницы с временными интервалами, это было возможно еще в 1998 году. некоторые более поздние разработки, которые позволили Doom работать на Kodak DC260. Все необходимые компоненты были доступны с самого начала.

Причина, по которой этот сценарий обусловлен не только тем, что Doom является безупречной программой, заключается в том, что она чрезвычайно адаптируема и совместима с современными устройствами. Однако большая часть повествования вращается вокруг того факта, что исходный код свободно доступен для изменения кем угодно. За последние почти три десятилетия версии Doom, известные как «порты исходного кода», появились практически на всех мыслимых платформах. Если вы не можете запустить Doom, используя исходный исходный код, весьма вероятно, что вы сможете запустить его с одним из многочисленных доступных портов исходного кода.

Вы с нетерпением ждали — давайте углубимся в тему SVG. Интересно, что на SVG можно разместить Doom благодаря поддержке JavaScript. Создатель Doom SVG объясняет, что векторный файл по сути использует js-dos, эмулятор DOS с открытым исходным кодом, основанный на JavaScript. Затем они используют один из нескольких доступных исходных портов DOS для Doom. Хотя это может показаться своего рода магией программирования, сам разработчик называет это не чем иным, как «забавным приложением на несколько часов». Это прекрасно подводит итог.

Как Doom стал минимально жизнеспособным хаком

Сможет ли он запустить Doom? Мое путешествие через ад, чтобы узнать, почему ответ всегда «да»

В 2022 году Sick.Codes продемонстрировала, что классическую игру «Doom» можно запустить на экране трактора John Deere. Это было представлено на Def Con 2022, ежегодной конференции по кибербезопасности и хакерству, которая проводится в Лас-Вегасе с 1993 года — по совпадению, в том же году был впервые выпущен «Doom». Вместо использования пушек портированная версия позволяла косить демонов трактором. Это необычная адаптация, и Sick.Codes отметили, что им потребовалось несколько месяцев, чтобы она заработала. Остается вопрос, почему так много усилий было вложено в этот проект.

Как технический энтузиаст, если вы в курсе движения за право на ремонт, вы, вероятно, поймете суть проблемы. Оборудование John Deere, производимое компанией Deere & Company, подверглось пристальному вниманию в этом движении, и не в лучшую сторону. Компания была втянута в длительную судебную тяжбу с фермерами из-за их ограничительного программного обеспечения, из-за которого никому, кроме них самих, сложно починить свое оборудование. Попытка запустить такие игры, как Doom, на дисплее трактора John Deere — это не просто забавный трюк, это демонстрация концептуальной свободы, которую мы должны иметь в отношении наших технологических инструментов.

«Запуск Doom на флагманском стенде сельскохозяйственной техники John Deere, на разработку которого они потратили тысячи часов в течение нескольких лет, показывает, что я смог полностью взломать это устройство», — рассказали в Sick.Codes. мне. «Если я смогу запустить Doom на их флагманских устройствах, я смогу внести в устройство любую другую несанкционированную модификацию. Я могу заложить его кирпичом. Я могу улучшить его. Могу установить стороннее ПО. Я могу удалить функции или установить функции, которые должны стоить денег».

Играем в Doom на дисплее трактора John Deere (с взломанным/рутованным доступом) на @defcon

— Sick.Codes (@sickcodes) 14 августа 2022 г.

В данном случае «Doom» служит свидетельством более существенной и важной работы, проделанной за кулисами. Согласно отчету Wired, опубликованному два года назад, разработчик сообщил, что им удалось получить 1,5 ГБ журналов, хранящихся на машине, благодаря получению root-доступа. Эти журналы предназначены исключительно для сертифицированных специалистов по ремонту John Deere. Они позволяют фермерам или внешним экспертам диагностировать и, возможно, ремонтировать оборудование John Deere, не требуя прямого вмешательства со стороны Deere & Company.

Проще говоря, Sick.Codes объяснил, что для работы графики Doom требуется всего несколько библиотек, таких как SDL2. Итак, если вам удастся запустить Doom на устройстве, которое обычно с ним несовместимо, это означает, что на этом устройстве потенциально можно запускать любое программное обеспечение, а не только Doom.

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

Несмотря на значительные усилия, вложенные в разработку этого эксплойта в течение нескольких месяцев, стоит отметить, что Doom — относительно простая программа, служащая эффективной демонстрацией. В своей презентации Sick.Codes использовали Chocolate Doom — универсальный исходный порт, предназначенный для бесперебойной работы на различных аппаратных и программных конфигурациях. На самом деле, существует целая вики-страница, посвященная переносимости исходного порта Chocolate Doom. Без оригинального исходного кода и его многочисленных портов неясно, осуществилась бы эта демонстрация вообще. Хотя это все еще может быть достижимо, остается вопрос: произошло ли бы это на самом деле?

Добро пожаловать в ад

Сможет ли он запустить Doom? Мое путешествие через ад, чтобы узнать, почему ответ всегда «да»

«Одна из причин, по которой Doom считается одной из самых влиятельных игр, когда-либо разработанных, связана с уникальными обстоятельствами ее создания. Высокоэффективный код игры для ПК в сочетании с условно-бесплатной моделью помог ей достичь огромной популярности. Когда исходный код был выпущенный в 1997 году, он вдохновил огромное сообщество моддеров. Сегодня у нас есть не только одна из крупнейших и наиболее удобных для пользователя платформ для моддинга Doom, но также есть приложение, которое значительно пережило свое первоначальное предназначение.

Когда я писал эту историю, меня охватило чувство приятных воспоминаний, и, возможно, после прочтения она может вызвать у вас подобные эмоции. Если это так, я настоятельно рекомендую попробовать GZDoom. Он предлагает бесчисленные возможности для исследования поистине диковинных уровней, разработанных с момента его создания. Если постараться, вы можете найти оригинальные файлы WAD для первых двух игр, заархивированные в Интернете. Тем, кто жаждет большего, я рекомендую посмотреть документальный фильм на MyHouse.WAD (более 13 миллионов просмотров) или, что еще лучше, загрузить сам уровень, чтобы полностью погрузиться в игровой процесс.

Если вы склонны переносить суть Doom туда, где она обычно не обитает, некоторые вдумчивые разработчики вели хронику своих путешествий на различных устройствах. Существует руководство по установке на наушники Ikko Activebuds, другое для VoIP-телефона, а также есть обширная статья, подробно описывающая, как игра была портирована на ранее упомянутый платежный терминал VX620.

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

Смотрите также

2024-11-17 18:28