据Ars Technica于2026年10月2日报道,开发者卢卡斯·沃格尔(Lukas Vogel)在长篇博客中介绍了SQLDoom项目,该项目用SQL数据库渲染《Doom》。严格来说,渲染并非全部在数据库内完成:一个体积较小的Python客户端负责处理输入与输出、驱动游戏计时,并把每一帧画面显示到屏幕上,因此“在数据库中渲染《Doom》”的说法需要作出这一区分。

在Python客户端背后,一系列CedarDB数据表记录游戏的几何形状和运行状态。游戏逻辑由大约1300行SQL查询实现,这些查询分布在89个公用表表达式中。按照报道,这些查询每秒生成35个位图帧缓冲。SQLDoom因此把游戏逻辑和帧缓冲生成放在数据库层,而把输入、计时和显示交给数据库之外的客户端程序。

沃格尔在博客中写道:“在数据库里渲染《Doom》显然是个糟糕的主意。”这句话出现在他解释SQLDoom实现方式的博客中。报道称,SQLDoom并不是沃格尔第一次尝试把《Doom》放进数据库。去年的DoomQL项目提出“完全用SQL构建一个多人Doom式射击游戏”。但那次努力最终只得到基于光线投射的灰度ASCII图形,更接近《Wolfenstein 3D》那种采用简单90度角地图的早期射击游戏。

与DoomQL相比,SQLDoom能够生成全彩640x480画面。Ars Technica称,这些画面看起来可能来自原版《Doom》可执行程序。报道将SQLDoom描述为对DoomQL的一次重大改进。两者的差别不仅在图形表现上,也体现在SQLDoom使用CedarDB表、约1300行SQL查询和89个公用表表达式来组织游戏逻辑与帧缓冲生成。

SQLDoom的工作方式分为两层:数据库层用查询实现游戏逻辑并生成帧缓冲,外层则由Python客户端负责输入、计时和屏幕显示。CedarDB表在这一过程中持续跟踪游戏几何与状态。报道指出,SQLDoom每秒生成35个位图帧缓冲,最终以640x480全彩画面呈现到屏幕。