DOOMQL:基于 GPT-5.6 Sol 构建的 SQLite 游戏引擎 Doom 风格游戏
DOOMQL
Peter Gostev 基于 GPT-5.6 Sol 构建了 DOOMQL,一款将 SQLite 作为游戏引擎的 Doom 风格游戏。SQL 负责控制移动、碰撞、敌人、战斗、进度及屏幕上每个 RGB 像素。游戏实现为 Python 终端脚本,通过递归 CTE 在 SQLite 中完成完整光线追踪。运行脚本会生成一个 SQLite 数据库,可使用 Datasette 配合新插件 Datasette Apps 探索。作者通过 Claude(Fable 5)创建了 HTML+JavaScript 应用,实时显示游戏画面并添加了小地图功能。
Simon Willison’s Weblog
13th July 2026 - Link Blog
DOOMQL (via) Peter Gostev built this using GPT-5.6 Sol. This is a lot of fun:
DOOMQL started with a deliberately unreasonable question: what if SQLite were the game engine, not merely the place where a game stores data?
The result is a small, original Doom-like game in which SQL owns movement, collision, enemies, combat, progression and every RGB pixel on screen.
It's implemented as a Python terminal script - I tried it out like this:
cd /tmp
git clone https://github.com/petergpt/doomql
cd doomql
uv run host/doomql.py
Here's the huge SQL query that implements a full ray tracer in SQLite using a recursive CTE.
Running the above script creates a /tmp/doomql/.doomql/doomql.sqlite SQLite database, which you can explore using Datasette like this:
uvx --prerelease=allow --with datasette-apps datasette \
/tmp/doomql/.doomql/doomql.sqlite \
-p 4444 --root --secret 1 --internal internal.db
The --with datasette-apps option installs the new Datasette Apps plugin, which supports creating custom HTML+JavaScript apps that can run SQL queries directly within the Datasette interface.
I created a new app, pasted the copy-paste prompt into Claude chat (Fable 5) and told it:
Build an app that displays the current state of the screen using the frame_pixels view with its x, y, r, g, b columns. have it refresh once a second.
This got me a working HTML+JavaScript app inside Datasette that could reflect the current state while I played the game in my terminal. Then I added:
add a minimap
And now my Datasette App looks like this:
Here's the HTML app code - paste that into your own Datasette instance (using the uvx --with datasette-apps recipe from above) to try it yourself.
13th July 2026
来源:Simon Willison 博客 · simonwillison.net