Программист запустил Doom на спутнике Европейского космического агентства
На недавнем саммите Ubuntu обсуждалось множество интересных тем, но одна особенно порадует технических энтузиастов старше 30 лет: история о том, как Doom фактически работал в космосе. Программист Оулавюр Вааге рассказал историю о том, как его команда участвовала в хакерском челлендже Европейского космического агентства и запустила культовую игру на спутнике.
Речь идет о ныне выведенном из эксплуатации OPS-SAT — «летающей лаборатории», чьей единственной целью было служить полигоном для улучшения «управления миссией и бортовых спутниковых систем». Его размеры составляли всего 10 × 10 × 30 см, а бортовой компьютер, по словам ЕКА, был «в 10 раз мощнее любого [космического аппарата ЕКА на тот момент]».
Исследователям предоставили относительно свободный доступ к машине, чтобы хакеры могли делать все, что пожелают, и коллективно тестировать возможности, находя и ломая пределы улучшенного бортового компьютера и связанного с ним оборудования. Проект достиг нескольких «первых» результатов: первое бортовое машинное обучение модели, первая шахматная партия на орбите и первая фондовая сделка, выполненная из космоса. И, по-видимому, первый запуск Doom на орбите.
Несмотря на относительно мощный компьютер по сравнению с машинами Intel 486 1992 года, которые изначально запускали Doom, программная среда все еще была ограничена. Команда не могла просто загрузить все программные зависимости, необходимые для сборки игры. Кроме того, у каждой хакерской команды были ограниченные временные интервалы для загрузки и запуска кода на спутнике, что делало попытки очень ценными и исключало любой ввод в реальном времени. Это также означало, что команде пришлось использовать временные демо Doom первого уровня.
Запуск Doom потребовал двух попыток: первая использовала Chocolate Doom — порт, близкий к исходному коду, который использует SDL в качестве бэкенда для графики и звука, кроссплатформенную библиотеку с очень небольшим количеством зависимостей. Он работал достаточно хорошо, но не выдавал графического вывода, поскольку у спутника не было экрана. И, как выразился Вааге, даже если бы он был, вам понадобился бы действительно хороший телескоп. На этом этапе у команды был только текстовый вывод с процентом завершения и количеством убитых врагов. Тем не менее, это была хорошая проверка того, что код работает плавно и не подвержен влиянию космических лучей.
Поскольку Вааге и его команда хотели получить графический вывод, они переключились на doomgeneric — порт Doom, предназначенный для упрощения переноса на другие системы. Затем они назначили графический вывод на виртуальную видеокарту и делали скриншоты игры. Но тогда как же продемонстрировать миру, что этот конкретный Doom был в космосе? Конечно же, используя снимки Земли, сделанные камерой спутника, в качестве фона для игры.
Эта умная идея принесла с собой несколько проблем, поскольку действительно хорошая камера на борту спутника производила изображения с гораздо более высоким разрешением и глубиной цвета, чем мог принять игровой движок, поэтому команде пришлось обратиться к бортовой модели ИИ от другой команды, которая изменяла размер и уменьшала цвет фотографий до 8-битных файлов с относительно небольшой потерей цвета.
Даже этого было недостаточно, поскольку 256-цветная палитра Doom фиксирована и lacks многие оттенки, необходимые для в основном синих, коричневых и зеленых изображений. Однако сложные проблемы порождают сложные решения, поэтому была совершена окончательная ересь: незначительное изменение цветовой палитры игры для лучшего соответствия шикарному фону. Как будто миллион гиков вскрикнули от ужаса. Мы можем только с нетерпением ждать, когда Doom действительно запустят на Марсе, где и происходит действие игры.
ИИ: В 2025 году подобные эксперименты демонстрируют, что даже устаревшее оборудование в космосе может служить платформой для творческих технических достижений. Это напоминает нам, что инновации часто рождаются на стыке ограничений и воображения.
Источник: Tomshardware.com







0 комментариев