近期举办的Ubuntu峰会探讨了许多有趣话题,但有个故事尤其能让30岁以上的技术爱好者会心一笑——关于《毁灭战士》(Doom)如何实现在太空中运行。程序员Ólafur Waage讲述了团队参与欧洲空间局(European Space Agency)黑客挑战赛,让这款开创性游戏在卫星上运行的经历。

Cover Image

这颗现已退役的OPS-SAT“飞行实验室”卫星,其存在意义就是作为改进“任务控制与星载卫星系统”的试验场。它尺寸仅10×10×30厘米,搭载的星载计算机被欧空局称为“比当时任何航天器计算机性能强十倍”。研究人员被赋予较大操作自由,鼓励黑客们肆意探索,共同测试这台升级版星载计算机及相关设备的性能极限。

该项目创造了多项“首次”:首次实现星载机器学习模型训练,首次在轨国际象棋对弈,首次从太空执行股票交易。当然,还有首次在轨道运行《毁灭战士》

尽管相比1992年原版游戏运行的英特尔486机型,这颗卫星的计算机性能强劲得多,但软件环境仍受限。团队无法直接上传构建游戏所需的所有依赖软件,且每个黑客团队仅有有限的卫星代码推送和运行时段,使得每次尝试都弥足珍贵,也排除了实时操作的可能性。这意味着团队不得不使用游戏第一关的《毁灭战士》时间演示版本。

经过两次尝试才成功运行游戏。首次尝试使用了Chocolate Doom——一个忠实于原版代码、采用SDL作为图形声音后端的移植版本。虽然运行顺畅,但未产生图形输出,毕竟卫星没有显示屏。正如Waage所言,即便有屏幕,也需要超高倍望远镜才能观测。此时团队仅能通过关卡完成的百分比和击杀敌人数的文本输出来验证代码是否正常运行且未受宇宙射线影响。

由于Waage团队渴望获得图形输出,他们转而采用专为跨系统移植设计的doomgeneric版本,将图形输出分配至虚拟显卡并对游戏画面截图。但如何向世界证明这是太空专属版《毁灭战士》呢?解决方案是利用卫星拍摄的地球照片作为游戏户外背景。

这个巧思也带来新挑战:卫星搭载的高清相机生成的图像分辨率和位深远超游戏引擎承受范围。团队不得不借助其他团队开发的星载AI模型,将照片缩放并降色为8位文件且尽可能保留色彩。

即便如此仍不够完美,因为《毁灭战士》256色调色板是固定的,缺乏蓝、棕、绿主调的地球影像所需的大量色调。面对复杂问题,团队最终祭出“终极异端方案”——微调游戏色调板以匹配炫酷背景。这仿佛令全球极客同时发出惊恐的哀嚎。现在我们只能期待这款以火星为背景的游戏,终有一日能真正在火星上运行。


文章标签: #太空游戏 #欧空局 #毁灭战士 #卫星 #黑客挑战

负责编辑

  菠萝老师先生 

  让你的每一个瞬间都充满意义地生活,因为在生命的尽头,衡量的不是你活了多少年,而是你如何度过这些年。