游乐游手机版
首页/AI热点日报/热点详情

DOOMQL 详细全面解析与实战应用指导手册完整版

类型:热点整理2026-07-14
DOOMQL基于SQLite构建迷你Doom-like游戏,所有移动、碰撞、渲染及光线追踪均由SQL查询实现,通过递归CTE驱动。游戏运行于Python终端,生成数据库后可用DatasetteApps插件实时显示画面并支持小地图功能,展示了SQL在图形渲染中的创新应用。

13th July 2026 - Link Blog

DOOMQL(via Peter Gostev,基于 GPT-5.6 Sol 构建)——这东西玩起来相当带劲。先看核心思路:

DOOMQL 的起点,是一个故意找茬式的问题:如果 SQLite 不是游戏的数据仓库,而是游戏引擎本身呢?

结果就是,一个迷你 Doom-like 游戏诞生了,它的移动、碰撞、敌人、战斗、进度条,以及屏幕上每一个 RGB 像素,全归 SQL 管。

实现方式是一个 Python 终端脚本。试试这样跑:

cd /tmp
git clone https://github.com/petergpt/doomql
cd doomql
uv run host/doomql.py

上面那张图里,藏着一条巨大的 SQL 查询——它利用递归 CTE 在 SQLite 里实现了一个完整的光线追踪器。运行脚本后,会生成一个 /tmp/doomql/.doomql/doomql.sqlite 数据库,用 Datasette 打开它就能一探究竟:

uvx --prerelease=allow --with datasette-apps datasette /tmp/doomql/.doomql/doomql.sqlite -p 4444 --root --secret 1 --internal internal.db

这里的 --with datasette-apps 参数会安装新出的 Datasette Apps 插件,它支持在 Datasette 界面里直接创建自定义 HTML+Ja vaScript 应用,并运行 SQL 查询。

接下来,创建了一个新应用,把复制粘贴的提示词扔给 Claude(Fable 5),告诉它:

构建一个能显示屏幕当前状态的应用,使用 frame_pixels 视图(包含 x, y, r, g, b 列),每秒刷新一次。

几秒钟后,一个能实时反映终端游戏画面的 HTML+Ja vaScript 应用就在 Datasette 里跑起来了。接着又加了一句:

加一个小地图

于是,Datasette 应用变成了这样:

对应的 HTML 应用代码附在下面——把它粘贴到自己的 Datasette 实例(用上面那个 uvx --with datasette-apps 配方启动)里,就能亲自试试了。

来源:https://www.bestblogs.dev/article/b6f1424402?utm_source=rss&utm_medium=feed&utm_campaign=resources&entry=rss_article_item

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。