На неотдавнашната среща Ubuntu Summit бяха обсъдени много интересни теми, но една от тях може да заинтригува почти всеки технически специалист над 30 години: историята за това как шутърът Doom беше пуснат в Космоса. Програмистът Олафур Вааге разказа как неговият екип е участвал в хакерското предизвикателство на Европейската космическа агенция и е успял да подкара тази емблематична игра на сателит.
Сателитът, за който става дума, е вече изведена от експлоатация „летяща лаборатория“ OPS-SAT, чиято единствена цел е била да служи като своеобразен терен за усъвършенстване на контрола на мисиите и бордовите сателитни системи. Той е с размери само 10 x 10 x 30 см и е оборудван с бордови компютър, който според Eвропейската космическа агенция е „10 пъти по-мощен от всеки неин космически апарат по това време“.
На изследователите беше дадена относителна свобода на действие с машината с цел хакерите да правят каквото пожелаят, за да тестват колективно възможностите и да открият/преодолеят границите на подобрения бордови компютър и свързаното с него оборудване. Проектът постигна няколко „първи“ постижения: първото бордово обучение на модел за машинно обучение, първата игра на шах в орбита и първата борсова транзакция, изпълнена от Космоса. И очевидно първият сателит, който стартира Doom в орбита.
Въпреки сравнително мощния компютър в сравнение с машините Intel 486 от 1992 г., на които първоначално върви Doom, софтуерната среда все още беше ограничена. Екипът не можеше просто да качи всеки софтуер, необходим за създаването на играта. Освен това всеки хакерски екип имаше ограничено време за качване и изпълнение на код на спътника, което правеше опитите много ценни и изключваше всякаква възможност за въвеждане на данни в реално време. Това означава също, че екипът трябваше да използва демо версии от първото ниво на Doom.
Изпълнението на Doom отне два опити, като първият беше с Chocolate Doom: порт, верен на изходния код, който използва SDL като графичен и звуков бекенд, библиотека, независима от операционната система, с много малко зависимости. Той работеше достатъчно добре, но не произвеждаше графичен изход, тъй като спътникът нямаше екран. И както каза Вааге, дори и да имаше, щеше да е необходим наистина добър телескоп. В този момент всичко, с което разполагаше екипът, беше текстовият изход от последното ниво с процента на завършеност и убитите врагове. Въпреки това беше добра проверка, че кодът работи гладко и не е засегнат от космическите особености.
Тъй като Вааге и неговите помощници искаха графична визуализация, те се насочват към doomgeneric: порт на Doom, проектиран да улесни пренасянето към други системи. След това използваха виртуална видеокарта и направиха екранни снимки на играта. Но как да покажеш с гордост на света, че тази конкретна версия на Doom е в Космоса? Разбира се, като използваш камерата на спътника, за да заснемеш Земята като фон на играта.
Тази умна идея доведе до няколко проблема, тъй като наистина хубавата камера на борда на спътника произвежда изображения с много по-висока резолюция и битова дълбочина, отколкото можеше да приеме игралният енджин, така че екипът трябваше да се обърне към бордовия ИИ модел на друг екип, който да променя размера и да намали цветовете на фотографиите до 8-битови файлове с относително малка загуба на цвят.
Все пак това не беше достатъчно, тъй като 256-цветната палитра на Doom е фиксирана и липсват много от нюансите, необходими за изображенията, които са предимно сини, кафяви и зелени. Сложните проблеми обаче изискват сложни решения, така че беше извършена крайната ерес: леко променяне на цветовата палитра на играта, за да съответства по-добре на фантастичния фон. Можем само да очакваме с нетърпение един ден Doom да се играе на Марс, където се развива действието на играта.
Снимка: Pexels
Виж още: Този робот готви 120 ястия на час без човешка помощ, замествайки цял ресторант