把《Doom》送上太空!程序员玩出新高度,在卫星的Ubuntu系统上上演神操作

B站影视 电影资讯 2025-10-29 19:33 1

摘要:在互联网世界里,有一个流传已久的梗——“It runs Doom”。最初,这只是玩家们在各种设备上移植经典游戏《Doom》时开的玩笑。然而,随着各路网友在计算器、ATM 机、、甚至上让 Doom“复活”,这个梗逐渐演变成了“万物皆可 Doom”的狂想。

整理 | 屠敏

出品 | CSDN(ID:CSDNnews)

在互联网世界里,有一个流传已久的梗——“It runs Doom”。最初,这只是玩家们在各种设备上移植经典游戏《Doom》时开的玩笑。然而,随着各路网友在计算器、ATM 机、、甚至上让 Doom“复活”,这个梗逐渐演变成了“万物皆可 Doom”的狂想。

如今,这个梗被推向了前所未有的高度——《Doom》竟然在太空中的卫星上运行过。虽然这颗卫星和项目并不是最新的,但却是其背后的实践者、冰岛软件工程师 Ólafur Waage 首次对外分享这一经历。

在 10 月 23 日的 Ubuntu 峰会上,他详细分享了他如何将这个看似疯狂的想法变为现实的全过程。

一场跳出地球、在卫星上的“整活”行动

故事要从欧洲航天局(ESA)的一颗实验卫星说起。

这颗名叫 OPS-SAT 的卫星,是首个纯粹用于实验的 CubeSat 立方体卫星。卫星本身高度仅 30 厘米,但搭载的实验计算机性能是当时任何 ESA 航天器的十倍。

图源自 ESA 官网

这颗卫星的任务不是观测地球、也不是传输通信信号,而是更像一座在轨的“开放实验室”,其唯一使命是测试和验证任务控制与卫星机载系统中的新技术。

那所谓要测试,就要有好点子。

当时研究人员、开发者乃至普通程序员,都可以申请在上面测试自己的软件或算法。据 ESA 在其官网公布的数据显示,来自 17 个欧洲国家的 100 多家公司和机构,已经提交了在 OPS-SAT 上运行的实验提案。

这个在轨实验室提供多种资源,包括处理器、可现场编程门阵列(FPGA)、摄像头以及姿态测定与控制系统,所有实验者都可以利用这些资源来展示新的任务和操作概念。

其中一位申请者,就是我们提到的程序员 Ólafur Waage,就提交了一个令人哭笑不得的提案:

“我想让 Doom 在卫星上跑起来。”

Ólafur Waage 是一名首席软件开发工程师,曾在游戏行业和空中交通管制行业工作多年。他自称是一名“职业键盘打字员”和“搞笑视频制作者”,工作主要集中在 C++、Go 和 TypeScript编程方面,这也正符合 OPS-SAT 的目标人群。

他认为 Doom 的开放性、确定性和可复现性,反而非常适合卫星实验环境。“选择它上太空再合适不过——它的 C 语言代码简单明了,适合移植。”换句话说,虽然看似是游戏,但其实是个完美的测试样例。

当然,这不是他一个人的功劳。在分享中,他也特别感谢了 Georges Labrèche,“这同样是他、我,以及整个 ESA 团队共同的成果。”

事实上,让 Doom 在卫星上运行,既是一次移植挑战,也是对空间硬件和任务控制限制的考验。那他究竟是怎么做的?

在受限的环境中运行 Doom

要知道,《Doom》最初诞生于 1993 年,当时的目标平台是 MS-DOS 电脑,依赖 VGA 图形接口和相对原始的处理器。而 OPS-SAT 虽然号称彼时“欧洲航天局最强的实验卫星”,但和地面电脑相比,仍然是一台受限环境下的计算设备——它没有高性能散热,通信延迟高达数秒。

更麻烦的是,卫星软件必须在极端条件下稳定运行。任何错误、死机、过载都有可能让实验中断甚至影响其他任务。这意味着 Waage 必须让 Doom 运行在一个极度受控、简化且安全的版本上。

从配置来看,OPS-SAT 有效载荷的核心是处理平台,它提供一个可重构环境以满足每个实验的需求。平台运行 Linux 系统,框架灵活可重构,提供高级处理能力、接口、内存完整性和可重构逻辑。

硬件由 Altera Cyclone V SoC 构成,内含 ARM 双核 Cortex-A9 MPCore 和 Cyclone V FPGA。对太空设备而言,它已算“高性能”,但与地球上的电脑相比仍相当慢。

于是,Waage 选择了开源社区中流行的版本 Chocolate Doom 2.3,因为它能兼容当时 OPS-SAT 上运行的 Ubuntu 18.04 LTS 系统。他解释道:

“我们选 Chocolate Doom 2.3 是因为 18.04 上的库支持最好,而且那是最后一个能顺利编译的版本。”

在卫星上更新软件极其困难,所以他们尽量减少上传代码量。“Doom 是相当纯粹的 C 代码,只依赖少量外部库,”Waage 说,“换句话说,它很容易移植。”

最初,他们在地面上用与卫星相同的硬件进行测试,经过几次调试后,一切运行良好。2023 年圣诞节后的几天,他终于成功让 Doom 在卫星上运行。

2023-12-28 18:16:36 (UTC) — DOOM 在 OPS-SAT 上于太空运行(初始演示检查)

太空中没有游戏机

值得注意的是,太空版 Doom 的体验和地球上大不相同。首先——卫星上没有显示器,它可不是游戏主机。因此,所有画面都必须通过软件渲染,即便经过优化,帧率依然不高。

所以,在这次实验中,Waage 主要依靠预录制的 Demo 文件运行完整关卡,这些文件包含确定性的输入序列。这样一来,只要辐射导致比特翻转(太空环境中,宇宙辐射会偶尔改变计算机内存或处理器中存储的数据位),输出结果就会偏离预期,便于检测异常。

这一设计还带来了科学价值。Waage表示,“我们的想法是尽可能多地运行这些 Demo 文件,对比来自太空与地面计算的结果。

他描述了整个过程:“我们把随机数(RNG)表做得非常大,并检查单个事件是否会影响游戏玩法。在仿真环境中,确实会;但在太空中,不幸的是,没有。不过这正是我们项目的实际计划——有时候实验会失败,但这也是 OPS‑SAT 存在的意义所在。”

实验中,Waage 并没有满足于“让它能跑”。既然是在太空,那画面也得配得上。

最初,唯一表明 Doom 正在太空中运行的迹象,只是一条孤零零的日志记录。后来,他做了一个小小的艺术加工:修改游戏资源,把 Doom 的火星天空盒替换成真实的卫星照片。

Waage 解释道:“我们的想法是,从卫星拍一张截图,用它作为天空背景,并全部用软件渲染,采用游戏限制的 256 色调色板。”

当然,这带来了新的难题。“你试着用那 256 种颜色去绘制地球的美丽色调,一开始肯定不行。我们做了渐变测试,使用 NASA 的样本照片,调了好久。”

最终,他们在游戏天空里成功展示了真实的地球——不再是虚构的火星。游戏本身运行得非常顺利,Waage 轻描淡写地说:“运行得漂亮极了,毕竟是在 Ubuntu 上跑的。”

2024 年 3 月 23 日 — DOOM 在太空中运行,并使用航天器机载相机拍摄的照片作为游戏环境的背景图像

为什么要这么做?

至于这个项目的意义,Waage 认为,这类实验并非纯属娱乐,而是展示了开源软件、航天硬件与国际合作的适应性和创新潜力。

OPS-SAT 的使命之一,就是降低在轨实验的门槛,让更多跨界创意在太空中得到验证。Waage 认为:“我们的目标是让任何人都能轻松提出并运行创新实验。Doom 听起来像个小玩意儿,但它验证了整套基础设施,也激发了公众对未来任务的兴趣。”

基于此,他们还把项目开源在 GitHub 上,供更多爱好者参考:https://github.com/olafurw/opssat-doom/

Doom 的太空旅程还在继续

“Doom 在太空中跑起来”听起来像个异想天开的点子,但其实背后凝结了数十年的工程积累、开源精神和人类的好奇心。

尽管 OPS-SAT 已于 2024 年退役,但其创新精神却永存。这不,后来波兰公司 KP Labs 也在自家的 Intuition-1 卫星上成功运行了 Doom。这颗卫星用自研的 Leopard 数据处理单元,一边玩 Doom,一边采集地球的高光谱图像,完全不耽误任务。

对此,也有网友幻想,或许有一天,当下一代宇航员在月球基地登录系统时,屏幕上会弹出那句熟悉的问候:“Press Start to Continue.”

参考:

来源:CSDN一点号

相关推荐