Представлен проект cURL Doom — версия Doom, которая воспроизводится по сети через cURL

от автора

Разработчик под ником Sawyer X представил открытый проект cURL Doom. Это рабочая версия игры в Doom, которая воспроизводится по сети через утилиту cURL.

«Это HTTP‑сервер, отображающий кадры Doom в виде полублоков ANSI (ANSI half‑blocks), передаваемых в терминал по HTTP с помощью cURL Не требует установки, не требует зависимостей, кроме curl и bash», — пояснил создатель проекта.

Разработчик проекта представил два варианта запуска игры:

  • простой способ: через curl | bash: «curl -sL http://localhost:3000 | bash». Как это работает? GET / — это согласование содержимого: curl возвращает play.sh с SERVER, переписанным на хост, с которого был получен файл. Скрипт запускает цикл /tick для каждого нажатия клавиши, обрабатывает stty, альтернативный экран, курсор и очистку. Браузер, обращающийся к тому же URL, получает небольшую целевую страницу, на которой отображается только одна строка кода.

  • мазохистский способ: чистый curl, без зацикливания оболочки: «stty -echo -icanon min 1 time 0 && curl -sN -X POST -T — localhost:3000/play». «Один потоковый HTTP‑запрос, два направления: нажатия клавиш идут вверх по телу запроса, ANSI‑кадры идут вниз по телу ответа. Никакой обертки для зацикливания клавиш, никакого обмена данными между нажатиями клавиш. Это просто одно TCP‑соединение, выполняющее обе части одновременно. Подвох в том, что оболочка обычно переводит терминал в режим „готового ввода“, который (а) буферизует стандартный ввод, так что curl не видит клавишу, пока вы не нажмёте Enter, и (б) выводит все, что вы вводите, поверх кадров. Поэтому сначала нужно перевести терминал в режим „сырого ввода“, а затем вернуть его обратно, когда закончите. Отсюда и команда stty перед curl и необходимость вызова reset для правильной установки», — уточнил автор решения.

Ранее разработчик Нильс Ленхеер представил открытый проект под названием cssDoom. Это реализация игры Doom, использующая для отрисовки графики только CSS, без применения элемента canvas и технологии WebGL. Игровая логика написана на языке JavaScript. В проекте используется в качестве эталона оригинальный код игры Doom, открытый компанией id Software. Наработки проекта cssDoom опубликованы на GitHub под лицензией GPLv2.

Всё что выводится на экран, включая спрайты, текстурированные стены, уровни и эффекты, оформлено через стилизованные при помощи CSS элементы <div>, размещаемые в 3D-пространстве при помощи CSS-свойств transform и transform-style: preserve-3d.

В марте 2026 года разработчик Адам Райс представил открытый проект под названием Doom Over DNS для игры в условно-бесплатную версию популярного шутера с помощью стандартных сетевых возможностей интернета. «В какой‑то момент здравомыслящий человек спросил: „DNS преобразует имена в IP‑адреса, что ещё он может делать?“ Ответ, по‑видимому, — запускать Doom. Записи DNS TXT могут содержать произвольный текст. Cloudflare будет предоставлять их глобально, бесплатно, кэшируя на границе сети, любому, кто запросит. Это не файловая система хранения. Они не были разработаны как файловая система хранения. Никто в IETF не думал об их использовании в качестве файловой системы хранения, когда писал RFC 1035. И всё же вот мы здесь. Этот проект сжимает всю условно‑бесплатную версию DOOM, разбивает её на ~1964 записи DNS TXT в одной зоне Cloudflare и воспроизводит её во время выполнения, используя только скрипт PowerShell и общедоступные DNS‑запросы. Файл WAD никогда не записывается на диск, а DLL‑файлы игрового движка .NET загружаются непосредственно в память», — пояснил Райс.

ссылка на оригинал статьи https://habr.com/ru/articles/1022568/