Doom снова запустили в неожиданном месте, но в этот раз трюк собрал не анонимный энтузиаст, а Марк Руссинович, CTO Microsoft Azure. Его проект DoomPaint выводит кадры игры в Microsoft Paint и, по данным автора, на части систем держит до 35 FPS.
Сама новость важна не только из-за мемной оболочки. Проект показывает, что старые механизмы Windows вроде буфера обмена и OLE до сих пор можно использовать вполне всерьез, пусть и для намеренно абсурдной задачи.
Как устроен DoomPaint
DoomPaint не «запускает Doom внутри Paint» в буквальном смысле. Настоящий движок ViZDoom работает отдельно, загружает shareware-версию DOOM1.WAD, а для недостающих эпизодов использует WAD-файлы Freedoom с BSD-лицензией. Paint здесь выступает только экраном: каждый кадр попадает в буфер обмена Windows и вставляется в холст как обычное редактирование документа.
Именно поэтому проект выглядит странно, но технически он честный. В README Руссинович прямо пишет: Paint «рисует игру, но не вычисляет ее». По его словам, нативное разрешение 320x200 вставляется быстрее всего, а среди доступных режимов есть и 640x400. Звук и музыка тоже работают, так что речь не о ролике или фальшивой анимации, а о полноценной игровой сессии.
Отдельная деталь, из-за которой проект и попал в новости: вместо наивной перезаписи буфера обмена для каждого кадра автор использовал OLE-механизм с объектом данных, который Paint читает по мере готовности. Иначе приложение могло бы ловить ошибки при вставке, потому что Paint обрабатывает содержимое буфера не мгновенно, а асинхронно.
Почему это выделяется на фоне других портов Doom
Doom запускали уже почти везде: в PDF, на калькуляторах, через регулярные выражения и в браузерах. Но DoomPaint выбивается из этой коллекции не только площадкой, а уровнем автора. Руссинович пришел в Microsoft в 2006 году вместе с Sysinternals и давно остается одной из самых заметных фигур для администраторов и системных разработчиков Windows.
Поэтому история читается в двух слоях. На поверхности это аккуратный инженерный абсурд. Чуть глубже — напоминание, что люди, отвечающие за облачную платформу масштаба Azure, по-прежнему не прочь копаться в низкоуровневых механизмах Windows просто потому, что им интересно, где у системы еще есть запас по совместимости и изобретательности.
Что из этого следует разработчикам
Практический вывод здесь не в том, что кому-то срочно нужен Doom в Paint. Гораздо полезнее другое: старые слои Windows, которые многие списали в архив, никуда не делись. Буфер обмена, OLE, автоматизация интерфейса, headless-рендеринг и странные обходные пути по-прежнему всплывают в корпоративных приложениях, RPA-сценариях, VDI-средах и поддержке легаси-софта.
Для русскоязычной аудитории это хороший повод вспомнить, что «легаси» в больших компаниях редко умирает красиво. Если ваша команда поддерживает внутренние Windows-инструменты, интеграции или автоматизацию рабочих мест, DoomPaint выглядит не просто шуткой, а демонстрацией того, насколько живучими остаются старые API и сколько сюрпризов они еще хранят.
Значение для рынка
Для Microsoft это еще и аккуратный репутационный сигнал. Вместо стерильной презентации про инновации компания получила вирусный инженерный кейс с открытым кодом под MIT-лицензией, инструкциями и воспроизводимым результатом. Такие проекты работают на бренд сильнее многих официальных анонсов: они показывают живую техническую культуру, а не отдел маркетинга с красивыми слайдами.
Следующий шаг здесь предсказуем: DoomPaint разберут по косточкам, а заодно кто-нибудь попробует протащить тот же подход в другие старые приложения Windows. Первоисточник с деталями и ссылкой на репозиторий опубликован у .