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

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

SQL数据库也能跑《毁灭战士》?1300... - 好剧推荐

用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查询能渲染出地狱一般的场景时,还有什么数据库不能做的呢?

娱乐八卦

闪婚闪离

程序员Lukas Vogel用约1300行SQL查询在CedarDB数据库中成功运行《毁灭战士》,以35帧/秒渲染全彩画面。从ASCII到全彩,数据库变身游戏引擎的惊人技术突破。

Tags:

Related Articles

印度英雄机长斯米特·马奇哈尔:被刺后冷静迫降,挽救174人
印度英雄机长斯米特·马奇哈尔:被刺后冷静迫降,挽救174人
厄立特里亚G-15政治犯25年:子女不知父母生死
厄立特里亚G-15政治犯25年:子女不知父母生死
NTA信任危机:印度考试系统八年之痒,改革何去何从
NTA信任危机:印度考试系统八年之痒,改革何去何从
摩洛哥大选:足球、休达移民潮与反以情绪如何影响选情
摩洛哥大选:足球、休达移民潮与反以情绪如何影响选情
新加坡政府推公务员相亲服务FirstDate 应对生育率新低
新加坡政府推公务员相亲服务FirstDate 应对生育率新低
日本首位休产假市长川田翔子入选时代百大 | 产假争议与少子化挑战
日本首位休产假市长川田翔子入选时代百大 | 产假争议与少子化挑战

相关文章

▸ 对话名人▸ 名人访谈▸ 名人语录▸ 剧集评分▸ 收视冠军▸ 收视数据▸ 电影推荐▸ 新片推荐▸ 新片速递▸ 院线新片
友情链接:热映电影 即将上映 电影票房 票房数据 票房预测 票房破亿 电影评分 电影口碑

🔗 友站推荐

卢拉的非凡胜利背后:中产阶级与右翼夹击下的执政挑战
第三次世界大战风险剧增?吉迪恩·拉赫曼《战争对你感兴趣》书评
《VelociPastor 2》FilmQuest首映全场爆笑 导演谈人类电影对抗AI
图斯克访印后,波兰印度关系为何升级?欧亚新棋局
超90名工党议员警告:英国再工业化须由曼彻斯特新办公室主导
巴思盖特多车相撞造成两人死亡 警方调查事故原因
Lykyn蘑菇种植箱评测:300美元的自动结菇室值得买吗?
棒球伴侣世界大赛定制战袍:幕后“有序混乱”全揭秘
中国出口创纪录但消费疲软:BBC解析经济失衡根源
印巴新冷战:对话僵局与南亚安全重构分析