Market Overview

SQL数据库也能跑《毁灭战士》?1300行查询实现35帧渲染

· · 18 · Source: 新闻热点聚焦
SQL数据库也能跑《毁灭战士》?1300行查询实现35帧渲染

用SQL数据库渲染《毁灭战士》,听起来像是一个程序员自虐式的玩笑,但德国开发者Lukas Vogel真的做到了。据Ars Technica报道,这个名为SQLDoom的开源项目仅凭约1300行SQL查询,就能以每秒35帧的速度生成640×480分辨率的彩色画面,几乎与1993年原版《毁灭战士》的视觉效果别无二致。

明星合影

从ASCII到全彩的跨越

Vogel并不是第一次尝试在关系型数据库中运行游戏。去年,他发布的DoomQL项目试图构建一个“完全用SQL实现的多人在线毁灭战士射击游戏”,但最终只实现了基于光线投射的灰度ASCII图形,效果更接近《德军总部3D》那种90度直角的简单地图。相比之下,SQLDoom是质的飞跃——它直接读取原版《毁灭战士》的WAD数据文件,将其结构化到关系数据库中,再通过89个通用表表达式(CTE)逐帧渲染出彩色画面。

明星同框

SQL数据库如何解构经典FPS

将《毁灭战士》的经典WAD文件转换为关系数据库出乎意料地顺利。Vogel在技术博客中写道,这得益于原版游戏将关卡拆分为顶点、线段、扇区等基础元素的架构。Databases原本就擅长处理这类结构化数据。《毁灭战士》标志性的二叉空间分割树(BSP树)也能通过sort_key字段在加载时为每个位置预先计算,渲染时只需执行简单的“ORDER BY”语句,就能判断哪些墙体可见、哪些需要剔除,大幅提升性能。

明星聚会

地板与天花板:SQL实现的棘手之处

并非所有渲染环节都能优雅地转换为SQL查询。Vogel指出,最大的难点在于地板和天花板的渲染算法——原版游戏通过逐列的“visplane”机制和状态变更来处理,而SQLDoom无法直接复现这套逻辑。他不得不采用一个自称“相当hacky”的替代方案:遍历一个有序的面板列表。尽管存在额外读写SQL表的开销,Vogel仍在一台搭载Ryzen 7的笔记本上跑出了约60帧/秒的成绩,复杂场景下偶尔会掉到35帧/秒。

明星旅行

明星度假

性能对比:SQLDoom vs 原版《毁灭战士》

以下是两种渲染方式的对比数据:

对比项原版《毁灭战士》SQLDoom
---------
渲染方式软件光栅化,C语言直接操作帧缓冲SQL查询,约1300行代码
分辨率640×480640×480
帧率35帧/秒(原机上限制)60帧/秒(Ryzen 7笔记本),忙时35帧/秒
图形颜色全彩全彩
关卡数据来源WAD文件直接加载WAD文件转存为数据库表

这个对比表由Ars Technica根据Vogel公开的性能测试数据整理。

数据库作为游戏引擎的意外优势

尽管SQLDoom在渲染效率上远不如原生代码,Vogel却看到了数据库带来的独特优势。他在接受Ars Technica采访时表示:“数据库始终保留游戏状态的‘参考快照’,加上天然支持的并发控制和访问处理机制,对运行多人游戏服务器非常有利。”他进一步指出,基于数据库的状态管理意味着“不存在部分应用的更新、物理bug,也不会对火箭弹是否命中产生分歧”。这种事务性保证正是传统游戏服务器需要额外开发才能实现的特性。

如何亲自体验SQLDoom

对于想在自己电脑上运行这套“Doom数据库”的玩家,Vogel将全部代码开源在GitHub上。你只需要克隆sqlDoom仓库、下载CedarDB数据库引擎,并准备一份合法的《毁灭战士》WAD文件即可。如果不想折腾环境,CedarDB官方还提供了一个免费在线托管演示,可以直接在浏览器中体验。不过Ars Technica的编辑Kyle Orland试玩后提醒,云端的网络延迟会导致明显的性能问题,本地运行效果更佳。

永不落幕的《毁灭战士》移植潮

SQLDoom只是长期以来的“能跑《毁灭战士》吗?”系列中的最新成员。此前,Ars Technica曾报道过在肠道细菌中渲染、在耳塞上运行、用AI模型实时生成手柄控制版本,甚至有人在Windows记事本中实现过运行画面的移植。SQL数据库以其严谨的结构化逻辑,成为又一个出人意料的宿主平台。

Q1: SQLDoom所必需的硬件和软件条件是什么?

A1: 只需一台普通电脑,Windows、macOS或Linux均可。需要安装CedarDB数据库引擎(免费提供),从GitHub获取sqlDoom代码,再准备一份合法获得的《毁灭战士》WAD文件。推荐配置中,一颗较新的多核CPU(如AMD Ryzen 7)能提供最流畅的体验。

Q2: 为什么用SQL数据库运行《毁灭战士》?

A2: 除了证明技术可行性,它展示了关系数据库在高频状态管理上的潜力。数据库的ACID事务特性和并发控制,让多人服务器能避免部分更新和不一致问题,这点正是传统游戏服务端需要大量定制代码才能解决的。

SQLDoom的出现再次证明《毁灭战士》已成为程序员文化中的万能测试平台。据Ars Technica报道,这个项目不仅把数据库变成了游戏引擎,还为未来在数据库内部实现更复杂状态同步应用提供了想象空间。当SQL查询能渲染出地狱一般的场景时,还有什么数据库不能做的呢?

Crypto assets are volatile and high-risk. Nothing here is financial advice; always do your own research.

相关文章

▸ 明星晒娃▸ 明星育儿▸ 明星孩子▸ 明星父母▸ 明星兄弟▸ 明星姐妹▸ 明星趣闻▸ 明星糗事▸ 明星秘闻▸ 明星真相
友情链接:明星内幕 明星黑料 明星丑闻 明星风波 明星争议 明星互撕 明星恩怨 明星不和

🔗 友站推荐

ATP改革计划:2028年球员薪酬目标3.5亿美元
油人队深度危机:三核与队友差距创纪录,开局火热难掩隐患
墨西哥未成年人网络保护法令签署 平台须实施年龄验证与内容过滤
全家与罗森上半年营业利润创历史新高 | 日本便利店行业
Cineverse将《Mayfair Watchers Society》播客改编成电影 | 独家
香港警方拘捕6人 涉沉香及加密货币投资骗局 9年骗21名长者1400万港元 防骗贴士
加州山火警报:70英里大风来袭 预防性断电或影响数十万用户
快船2026-27赛季转播指南:加兰核心,ClipperVision回归
AI泡沫警讯!美国科技股违约保险成本创历史新高
NFL芝加哥熊队四分卫凯莱布·威廉姆斯周四恢复完整合练 主帅本·约翰逊仍不承诺复出时间 或将缺席第三周