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

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

SQL数据库也能跑《毁灭战士》?1300... Latest News

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

定档官宣

Related Articles - 游戏论坛

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

Related Tags:

Recommended

Partners:

相关文章

▸ 房产新闻▸ 旅游新闻▸ 美食新闻▸ 时尚新闻▸ 文化新闻▸ 法治新闻▸ 民生新闻▸ 本地新闻▸ 地方新闻▸ 头条新闻
友情链接:今日头条 新闻头条 新闻快讯 新闻资讯 新闻早报 新闻晚报 新闻直播 新闻评论

🔗 友站推荐

河地老农痛斥葡萄酒业援助“来得太迟”——五十年葡萄园谢幕
鲨鱼袭击幸存者伊斯梅尔:感谢救援英雄,誓将重返海浪
Idina Menzel 罕见剖白:Taye Diggs 离婚恰逢《冰雪奇缘》爆红
特朗普官宣福克斯名嘴凯蒂·扎卡里亚出任白宫新闻秘书,白宫记者会或迎来大变革
安杰丽卡·休斯顿献声《Unseasonably Cold》有声书,奥斯卡影后演绎艾米·埃弗隆悬疑力作
持续追踪:法国学生抗议第八天 联合国罕见谴责警察暴力 政府如何收场?
法国制片公司 Sipur Studios 开设伦敦办公室,公布国际扩张战略,加入 Olivier Dahan 新片《娜娜》
新纳粹邪教头目获刑20年!巴黎法院跨国虐童案宣判现场全程直击 受害者遍布美英加三国 暗网黑幕全面深度解析
WBD高管并购薪酬曝光:五名高管因Skydance并购派拉蒙狂揽11亿美元,扎斯拉夫独得6亿天价收益
伯明翰绑架纵火案终审宣判:四名男子涉100万英镑香烟谋杀案,两主谋获终身监禁,两名打手获刑22年至23年