Simon Willison's Weblog

DOOMQL

8.5内容质量
DOOMQL

TL;DR · AI 摘要

SQLite被用作游戏引擎实现Doom-like游戏,结合GPT-5.6 Sol和Datasette展示AI驱动的数据库应用创新。

核心要点

  • SQLite可作为游戏引擎实现完整游戏逻辑,包括碰撞检测和像素渲染
  • GPT-5.6 Sol生成的递归CTE实现全功能光线追踪
  • Datasette Apps插件支持HTML+JS直接操作SQL数据库实时渲染游戏画面

结构提纲

按章节快速跳转。

  1. 介绍DOOMQL项目将SQLite作为游戏引擎的创新概念

  2. 详细说明使用GPT-5.6 Sol生成的递归CTE实现游戏逻辑

  3. 展示通过Datasette Apps插件实现实时游戏画面渲染的完整流程

  4. 描述如何通过自定义HTML+JS应用扩展Datasette功能

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • DOOMQL项目
    • 核心技术
      • SQLite游戏引擎
      • GPT-5.6 Sol生成代码
    • 实现工具
      • Datasette Apps插件
      • uv运行环境
    • 应用场景
      • 实时游戏渲染
      • 数据库可视化

金句 / Highlights

值得收藏与分享的关键句。

#SQLite#AI#游戏开发#Datasette#GPT
打开原文

DOOMQL

Simon Willison’s Weblog

Subscribe

#smallhead

Sponsored by:

Teleport

— How do you ensure that AI agents act within your intended boundaries? Teleport’s “From Zero Trust to Agent Trust” white paper details what needs to be in place to realize the promise of agentic designs.

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:

code
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:

code
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.

Posted

13th July 2026

at 10:34 pm

Recent articles

  • The new GPT-5.6 family: Luna, Terra, Sol - 9th July 2026
  • sqlite-utils 4.0, now with database schema migrations - 7th July 2026
  • sqlite-utils 4.0rc2, mostly written by Claude Fable (for about $149.25) - 5th July 2026

#primary

This is a link post by Simon Willison, posted on 13th July 2026 .

games

23

sql

114

sqlite

479

ai

2,115

datasette

1,525

generative-ai

1,870

llms

1,837

ai-assisted-programming

397

gpt

130

datasette-apps

7

Monthly briefing

Sponsor me for $10/month and get a curated email digest of the month's most important LLM developments.

Pay me to send you less!

Sponsor & subscribe

.metabox

#secondary

#wrapper

  • Disclosures
  • Colophon
  • ©
  • 2002
  • 2003
  • 2004
  • 2005
  • 2006
  • 2007
  • 2008
  • 2009
  • 2010
  • 2011
  • 2012
  • 2013
  • 2014
  • 2015
  • 2016
  • 2017
  • 2018
  • 2019
  • 2020
  • 2021
  • 2022
  • 2023
  • 2024
  • 2025
  • 2026