尽管大多数人将 SQL 视为管理大型数据集的工具,但从本质上说,它是一种具备 C 或 Python 等通用语言特性的编程语言。虽然它并非为通用用途而设计,却能够完成一些出人意料的任务。CedarDB 团队为了展示这一能力,将原版 DOOM 搬到了 SQL 中。WAD 数据,也就是引擎之外几乎所有内容,都存储在表中。保持游戏 35 fps 的运行速度并生成画面更加困难:渲染部分由 1300 行 SQL 组成,分布在 89 个公共表表达式(CTE)中。项目的其余部分包含 4000 行 SQL,并使用少量 Python 处理键盘、计时和位图图像。DOOM 并非真正的 3D 游戏,而且是在显卡出现之前开发的,这使得转换为适合 SQL 的数据成为可能。代码已发布在 GitHub 上;此外,还有使用正则表达式和 Microsoft Word 制作的版本。
为何重要
这项工作表明,将 SQL 视为仅限于数据查询和管理的工具,可能无法充分体现这一语言的表达能力。尤其对于数据库开发者以及研究编程语言边界的人来说,它具体展示了如何利用关系结构对游戏逻辑等不寻常的工作负载进行建模。DOOM 不使用真正的 3D 技术,且开发时间早于图形硬件,这一点对实现这一方案起到了决定性作用;因此,这一结果并不意味着所有图形应用都能以类似方式通过 SQL 运行。GitHub 上的代码,以及使用正则表达式和 Microsoft Word 制作的其他版本,展示了如何利用不同工具检验同一想法。尚未得到解答的问题是,除了作为一种有趣的演示之外,这种方法还能在哪些实际任务中发挥意义。
背景
DOOM 并不是 FikirPilot 档案中的新名字:过去 90 天内,我们发布了 3 篇提到这一名字的新闻;最新一篇的日期是 2026年9月15日。