用一句话,生成一个可玩的游戏

Ludo Canvas 是语音 / 文本驱动的声明式 Canvas 游戏工作台: 你说需求,AI 生成完整可玩游戏(画布 + 多场景 + 状态 + 玩法规则), 页面内固定引擎即时执行 —— 玩法交互零 LLM 延迟。

声明式 JSON 协议 Phaser 4 引擎 SSE 实时中继 SQLite 内容寻址 语音输入 🎤
How it works

三步:从一句话到一个游戏

AI 的影响力被收敛为一份协议数据,而不是一堆代码 —— 于是每次改动都可校验、可评判、可回退。

你说需求

右下角命令栏 🎤 语音或文字 描述玩法:「做一个三关卡的太空战机」。头部项目胶囊可随时切换、新建项目。

AI 生成协议

AI 只推送声明式 JSON:GameDef / GameOp。服务端 TypeBox 校验,失败自动回喂模型自纠。

引擎即时执行

页面内固定引擎 GameRuntime(Phaser 4) 驱动点击 / 键盘 / 定时,玩法交互不经 LLM —— 零延迟。

为什么这样设计? 改动的单位是一份被校验的 JSON 数据(不是代码), 所以每次改动都能被静态判定、被机器评判(冒烟 / 目标 bot 通关 / 视觉守门)、零成本回退对比 —— 这是它与 Godot / Unity 这类引擎的结构性差异。

Features

核心特性

从生成、游玩到协作与迭代,每个环节都被协议化。

语音 / 文本驱动

全屏画布 + 悬浮仪表,命令栏支持语音识别与文字输入,回车即发送,随口改需求。

零 LLM 延迟玩法

AI 只在生成与自然语言指令时参与;游玩中的点击 / 键盘 / 定时全部由前端引擎本地执行。

多项目模式

游戏 / 对话 / 轨迹按项目隔离,可随时切换、新建;内置「太空战机」三关卡等模板起点。

多人实时同看

多个浏览器各编各的项目互不干扰(请求显式携带项目作用域),同一项目多人实时同看。

历史版本与回退

每次生成完成自动落库历史版本,可查看当时运行截图,不满意一键回退。

机器可评判

无头冒烟测试、目标 bot 通关、视觉守门 —— 生成质量由机器说了算,不靠肉眼。

Architecture

架构:thin 三原则

服务端只做「校验 → 应用 → 落盘 → 中继」,全部复杂度收敛在一份协议里。

① AI 只推送协议

没有代码工具、没有文件工具。全部影响力 = 一份 JSON 协议(场景 / 实体 / 玩法规则)。

② 最小推送

变更以 game_update(GameOp 数组)表达,只携带变化字段;id 稳定,引擎复用已物化对象。

③ 服务端 thin

「校验 → 应用 → 落盘 → 中继」四步,玩法执行在前端固定引擎,服务端无游戏逻辑。

Positioning

定位与边界

它不是引擎替代品,而是一个表达面明确的工作台 —— 诚实地说清楚能做什么、不做什么。

✓ 擅长的表达面

  • 街机(射击、接物、躲避……)
  • 棋盘与回合制玩法
  • 点击交互 / 轻解谜
  • 多场景、多关卡的状态机游戏
  • 想用自然语言快速验证玩法的创作者

✕ 明确不做

  • 3D 渲染与真物理
  • 实时联机对战
  • 替代 Godot / Unity 等成熟引擎
  • 面向「会写代码的开发者」(他们用引擎 + AI 助手更快)
Tech Stack

技术栈

前端 Next.js + Phaser 4;服务端 Node + Express;协议校验 TypeBox;存储 SQLite 内容寻址。

Next.js (App Router) Phaser 4 Node.js + Express SSE TypeBox SQLite Web Speech API npm workspaces