Найти в Дзене
Аксолот

Технологическое безумие DOOM: почему эту игру портируют на все подряд?

Среди старых игр есть много легендарных, которые помнят и уважают до сих пор. Фанаты поддерживают старые игры, дорабатывают их, выпускают моды, прикручивают новые функции и портируют их на современные платформы. И среди всего этого мира ретро игр есть одна, которая стала одновременно и символом своей эпохи, и площадкой для соревнования программистов, и мемом. Doom 1993 года был и остается одной из самых известных игр в мире. До сих пор эта серия шутеров получает новые части, да и про классику никто не забывает. В свое время первая часть Doom поражала графикой и дизайном уровней, разнообразием противников и оружия, интересными техническими решениями и возможностью запустить игру почти на любом компьютере. И именно последнее и дало начало явлению, о котором мы расскажем в этом выпуске. В последние годы то и дело появляются новости о том, что Doom запустили на устройстве, которое вообще не предназначено для игр. Среди платформ, на которых работает Doom есть холодильник, газонокосилка, тес

Среди старых игр есть много легендарных, которые помнят и уважают до сих пор. Фанаты поддерживают старые игры, дорабатывают их, выпускают моды, прикручивают новые функции и портируют их на современные платформы. И среди всего этого мира ретро игр есть одна, которая стала одновременно и символом своей эпохи, и площадкой для соревнования программистов, и мемом.

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

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

Лично у меня при виде таких новостей всегда возникало много вопросов. С чего вообще кто-то решил переносить Doom на все устройства подряд? Почему именно Doom? Когда это все началось и есть ли у этого какой-то смысл?

В общем, предлагаю погрузиться в историю появления концепции «Doom running on everything» и попробовать найти ответы на эти вопросы.

Технологическое безумие DOOM: почему эту игру портируют на все подряд? – Аксолот – Podcast.ru

Для своего времени Doom был действительно прорывной во многих смыслах игрой. Оно и не удивительно, ведь студия id Software к моменту разработки Дума выпустила больше десятка игр, в том числе шутеров от первого лица. По сути Doom был их самой амбициозной и совершенной игрой.

История создания и студии, и всех ее игр, включая Дум, заслуживает отдельного выпуска, так что ее расскажем чуть позже. А пока что сразу переместимся в 1993 год и посмотрим, чем же так выделялась игра, ставшая в итоге полигоном для соревнований программистов.

С самого начала id Sotware разрабатывали Doom так, чтобы он был максимально нетребовательным к ресурсам. Вся игра весила меньше 2,5 мегабайт, что даже по тем временам очень экономно. Добиться таких результатов удалось с помощью очень грамотной оптимизации кода и использования некоторых хитростей.

Например, графика в Doom выглядит как полноценное 3D, но на самом деле все уровни двухмерные. Чтобы добиться 3D-эффекта, Doom был запрограммирован очень эффективно. В Doom тратится очень мало процессорных циклов. Сам движок технически не является 3D — по оси Z выполняются ограниченные расчёты. Данные очень эффективно упаковываются в специальные файлы-архивы. В Doom есть собственный менеджер памяти.

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

Помимо DOS, Doom официально был выпущен для операционных систем Windows, NEXTSTEP, OS/2, Solaris, IRIX, Linux и Mac OS. Больше всего установок игры было на Windows 95, что побудило Microsoft выпустить для этой операционной системы отдельный порт игры для продвижения системы в качестве новой игровой платформы. Билл Гейтс, даже снялся в рекламном ролике, в котором выступал от имени главного персонажа Doom и рекламировал преимущества Windows 95 и DirectX для игроков и разработчиков игр.

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

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

Самое главное событие, которое дало старт всей культуре портирования Дума — открытие исходного кода игры. В 1997 году id Software выложила все исходники в открытый доступ, дав возможность каждому желающему делать с игрой что угодно. А популярность у Дума уже тогда была серьезная.

-2

Эту популярность, кстати, во многом обеспечила модель shareware, которую использовали разработчики для распространения игры. Треть всех уровней можно было скачать и пройти абсолютно бесплатно, а уже за остальное предлагалось заплатить. Такой подход в те годы не был чем-то новым, но работал отлично.

Изначально id Software открыли код версии для Linux. Почти сразу же фанаты приступили к портированию игры обратно в DOS. В итоге это привело к множеству разветвлений кода на разные исходные порты, например, ZDoom и Chocolate Doom. Единственное, что объединяет все эти порты, — это то, что они используют оригинальные ресурсы Doom.

Очень сильно в портировании помогало то, что код игры написан на языке C. Этот язык очень гибкий в плане создания портов. Если для нужной платформы есть компилятор, с портированием программы, написанной на C, проблем не возникнет.

Также очень сильно в портировании помогала система автоматической оптимизации на слабом железе. В детали вдаваться не будем, да я и не шарю в технических подробностях, но в общих чертах механизм был такой: если процессор слабый, то текстуры упрощаются в два раза, если совсем слабый — в четыре раза. Достигался такой эффект следующим образом — каждая текстура накладывается на одну сторону виртуального куба, у которой есть длина и ширина. Так как текстуры упрощаются в два раза по каждому измерению, получается, что на одну сторону тратится в 4 раза меньше ресурсов, а на весь куб — в 24 раза меньше.

Примерно так же игра работала и с разными мониторами. Если монитор может отображать только 8 цветов, то процессор не будет вычислять те цвета и оттенки, которые не поддерживаются. Вместо этого он всю палитру приведёт к цветам монитора и будет работать с ними, что даст существенный прирост производительности.

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

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

Но не бросать же это увлекательное дело, правильно? Новая волна популярности создания портов классического Дума запустилась в 2006 году.

8 апреля этого года на Ютубе появилось видео с работой игры на плейере iPod. Необычно, но в целом, iPod довольно мощное устройство, неудивительно, что его ресурсов хватило для запуска Дума.

-3

12 августа этого же года появилось видео работы Doom на Nintendo DS. Неплохо, но опять же эта консоль вышла через 11 лет после релиза Дума. К тому же железо тут приспособлено для игр.

-4

А вот дальше, все стало интереснее. 1 декабря на Youtube был загружен ролик, демонстрирующий отличную работу игры на осцилографе.

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

-5

Ну а дальше это занятие стало собирать вокруг себя все больше интересующихся людей. Поначалу портированием Дума занимались из интереса. Несмотря на простоту игры и возможности современного железа запускать Doom на новых платформах было интересно многим энтузиастам. А уже к 2013 году все это превратилось в мем.

16 октября 2013 года был запущен блог «It Runs Doom» на Tumblr. В нем собирались и собираются до сих пор доказательства запуска Дума на разных устройствах и платформах. Чем более странным и неприспособленным для игр было устройство, тем интереснее был такой порт.

В 2016 году запустился сабреддит r/itrunsdoom с аналогичным смыслом. Да и в целом «It Runs Doom» стало целым движением, в рамках которого люди со всего мира запускают игру везде, где только могут.

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

Одним из самых известных устройств является банкомат. На нем Дум запустили в 2014 году, видос как и полагается выложили на Ютуб. В целом история запуска игры на банкомате довольно простая, сам банкомат никто не взламывал, просто в мастерскую к энтузиасту попало одно из устройств, и он по приколу решил запустить на нем Дум. Для этого к банкомату пришлось подключить клавиатуру, но чуть позже удалось сделать идеальный порт, который позволил управлять персонажем с помощью кнопок самого банкомата.

-6

Один из создателей Doom-а — Джон Ромеро назвал именно этот порт отправной точкой для начала соревнований между программистами в портировании игры.

Один из самых легких в исполнении портов позволила сделать цифровая фотокамера Kodak DC260. Выпускали ее еще в 1998 году, и для своего времени камера была очень солидной. Она позволяла на ходу редактировать фотографии, а потом сразу распечатывать их, подключившись к принтеру или компьютеру по usb.

Начинка у камеры была, как вы понимаете, очень хорошая: процессор PowerPC с тактовой частотой 66 МГц, 8 МБ оперативной памяти и звуковой чип. А изображение выводилось на жидкокристаллический дисплей разрешением 288×216.

-7

Автору порта даже делать ничего не пришлось, чтобы запустить Doom на этом сетапе. Он просто закинул файлы игры на флешку, вставил ее в камеру и запустил нужный файл. Игра с ходу заработала на устройстве.

А вот порт Дума на беспроводной принтер Canon отлично показывает, как движок оптимизирует игру под слабое железо. У серии принтеров Pixma есть небольшой цветной дисплей, очевидно, он не предназначен для вывода сложных динамических изображений, да и прошивка для игр не адаптирована. Но один из техно-блогеров в 2014 году накатил на принтер пользовательскую прошивку, которая позволила запускать на устройстве любые программы, которые сможет потянуть железо.

И вот тут как раз движок Дума показал свои возможности. Картинка, которая выводится на дисплей, отвратительна, цвета очень странные, а все текстуры рассыпаются на пиксели, но самое главное, что игра работает! Управлять, кстати, можно кнопками самого принтера. Неудобно, зато порт полноценный, без дополнительного оборудования.

Еще один вариант, демонстрирующий возможности движка — электронная книга. Тут есть 2 важных особенности: во-первых, экран работает по технологии цифровых чернил, и выбор цветов ограничен черным, белым и оттенками серого. А во-вторых, частота обновления изображения у электронной книги примерно 3-5 кадров в секунду.

Играть при таких раскладах не очень удобно, зато движок Doom-а может смело обрезать почти все цвета, которые были в игре, и сильно уменьшить затраты ресурсов на отрисовку, потому что отрисовать надо лишь несколько кадров за секунду. По итогу даже на таком устройстве Дум работает без особых проблем.

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

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

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

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

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

-8

В 2022 году один из энтузиастов смог запустить Doom на стандартном блокноте из Windows. Изображение формируется из букв и цифр и рбаотет это все достаточно бодро, вполне можно поиграть. Деталей своего порта автор не раскрыл, сказал только, что никак не модифицировал блокнот.

Похожий вариант это порт Дума, который работает в диспетчере задач того же Windows. Автор этого порта — Max Holt специализируется на запуске всякого разного в диспетчере задач. Он тоже не раскрывает деталей своих работ, так что до конца непонятно, действительно ли он делает порты или это обман. Но если он действительно запустил Дум внутри диспетчера, это впечатляет.

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

Вообще, портирование игр дело довольно распространенное. Зачастую сами разработчики пытаются переносить свою игру на не самые подходящие для нее платформы, чтобы заработать побольше денег. А иногда фанатам хочется запустить любимую игру там, где ее еще никто не запускал.

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

Аксолот - exclusive content on Boosty

В целом во всех этих портах Дума нет никакого смысла, и это добавляет происходящему еще больше интереса. Просто одни люди в свое время сделали очень хорошую в техническом плане игру, миллионам игроков она понравилась, а потом некоторые из этих игроков решили запускать эту игру на всем подряд. Просто так, по приколу, потому что могут. А когда за дело берутся увлеченные люди, всегда получается что-то необычное и интересное.

Я перечислил далеко не все порты Дума. Не уверен, что вообще где-то в интернете есть полный список всего, на чем запускали эту игру. В любом случае этот список еще долго будет пополняться.

Пишите в комментариях, порт на какую платформу кажется вам самым крутым и на чем бы хотели сыграть в Doom.

Подписывайтесь на нашу группу Вконтакте и Телеграм-канал, там мы делимся новостями, анонсами стримов и другим годным контентом.

ВКонтакте | ВКонтакте
Аксолот

Еще залетайте на наш Дискорд-сервер. Там можно пообщаться с нами — авторами подкаста — и другими увлеченными гик и поп-культурой людьми. А заодно можно найти себе пати для игры, обсудить любимые фильмы, сериалы, комиксы и просто хорошо провести время.

Присоединяйтесь к сообществу «Аксолот» на сервере Discord!

Если Дискорд после блокировки вам стал не очень удобен, то у нас есть чат в Телеграме, где точно так же можно пообщаться с нами и не только.

Чат Аксолота

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

Аксолот - exclusive content on Boosty

Шутеры
4634 интересуются