游戏引擎代码语料全景调研:公开数据集、代码转语料工具链与多模态空白

要训练一个懂游戏引擎的代码模型,第一个问题是:公开语料到底有多少、质量如何? 这篇调研系统扫了一遍 HuggingFace 和 GitHub 上主流游戏引擎的代码数据集,顺带盘点了”把代码仓库变成训练语料”的工具链,最后落到一个重要结论:游戏引擎方向的多模态语料目前是空白。
一、主流引擎的公开语料
| 引擎 | 公开语料 |
|---|---|
| Godot | ✅ |
| Unity | ✅ 多个现成指令集 |
| Unreal | ✅ UE5 代码/QA 数据集 |
| RPG Maker | ✅ MV/XP 数据集 |
| Roblox/Luau | ✅ |
Godot
| 数据集 | 体积 | 许可 | 类型 |
|---|---|---|---|
| icici121/godot-gdscript-dataset | 629MB | apache-2.0 | 项目源码(最热门) |
| wallstoneai/godot-gdscript-dataset | 629MB | apache-2.0 | 同上同源 |
| minosu/godot_dodo_4x_60k | 12MB | mit | 6 万条「指令→GDScript」对 |
| glaiveai/godot_4_docs | 5MB | — | Godot4 文档 |
| bunnycore/Gd-Script、dotfantasy/godot-code 等 | 小 | — | GDScript 代码/片段 |
Unity
| 数据集 | 体积 | 许可 | 类型 |
|---|---|---|---|
| vishnuOI/unity-dev-instructions | 75MB | cc-by-4.0 | 48,929 条指令-代码对 |
| Hypersniper/unity_api_2022_3 | 544MB | apache-2.0 | API 文档 |
| KaQyn/unity_stack | 177MB | 多重 | C# 代码 |
| AmnaHassan/…GDD-Code-Pairs | 5MB | — | 代码↔游戏设计文档 |
| neph1/Unity_Code_QnA、robertzeng/unity3ddoc 等 | 小 | — | 代码/QA/文档 |
Unreal Engine
| 数据集 | 体积 | 许可 | 类型 |
|---|---|---|---|
| AdamCodd/unreal-engine-5-raw | 405MB | apache-2.0 | UE5 原始代码 |
| AdamCodd/unreal-engine-5-code | 14MB | apache-2.0 | UE5 清洗后代码 |
| olympusmonsgames/unreal-engine-5-code-split | 144MB | — | 代码(切分版) |
| TunstallTensor/unreal-engine-5.7-qa | 150MB | mit | UE5.7 QA |
| KoeYe/UnrealPythonCode 等 | 小 | — | Python/UnrealScript/文档 |
RPG Maker 与其他
| 数据集 | 体积 | 许可 | 类型 |
|---|---|---|---|
| NintenHero/RPG-Maker-MV-Data | 250MB | cc-by-nc-sa-4.0 | MV 工程数据 |
| NintenHero/RPG-Maker-XP-Data | 29MB | — | XP 工程数据 |
| GitHub: rpgtkoolmv/corescript 等 | — | — | 引擎核心 JS |
衍生方向还有 Roblox/Luau(Roblox/luau_corpus 46MB、TorpedoSoftware/the-luau-stack 104MB 等)、通用 gamedev(mlfoundations-dev/gamedev_* 系列最大 100 万样本)、以及 LOVE2D / Bevy / Pygame / Verse-UEFN 的零散数据集。
二、代码→语料的工具链
拿到代码仓库之后,怎么变成模型能吃的语料?分两类工具:
仓库压平工具(把代码变成结构化文本):
| 工具 | 是什么 |
|---|---|
| repomix | 整仓库打包成单个 AI 友好文件 |
| gitingest | GitHub 链接 hub→ingest 即得文本;pip install gitingest |
| code2prompt | 代码库→带目录树的 prompt,能数 token |
| files-to-prompt | 文件→prompt,优化 Claude XML 格式 |
| yek | 按 token 预算 + git 历史挑重要文件 |
| tree-sitter | 按语法树(AST)抽「函数+注释」对 |
合成数据框架(用 LLM 反向造指令语料):
| 框架 | 是什么 |
|---|---|
| distilabel | 合成数据流水线,喂代码→LLM 反向写指令 |
| Data-Juicer | 100+ 算子清洗/去重/合成,支持多模态 |
| NeMo Curator | GPU 加速大规模清洗+合成 |
| Augmentoolkit | 原始文档→QA 数据集,带答案校验 |
| Bespoke Curator | 构建高质量数据集的库 |
| DataDreamer | prompt→造数据→训练一条龙 |
| Lilac | 数据集可视化探索/质检 |
方法论层面主要是 Self-Instruct / OSS-Instruct / OpenCodeInstruct 三条路线。
三、多模态代码数据集:全是网页,没有游戏引擎
这是调研里最重要的发现。现有”看图写代码”的多模态数据集和基准,产出的几乎全是 HTML/网页代码或 Python 绘图代码:
仅评测用(量小,不能训练):
| 名称 | 是什么 | 产出代码 | 规模 |
|---|---|---|---|
| MMCode | 看图解→写代码 | Python 等算法代码 | 3548 题 |
| HumanEval-V | 看图解→写代码 | Python | 253 题 |
| ChartMimic | 看图表→画图代码 | Python 绘图 | 评测集 |
| Flow2Code | 流程图/UML→代码 | C/C++/Java/Python | 评测集 |
| Design2Code | 设计稿→前端 | HTML/CSS | 484 对 |
| V-GameGym | 游戏画面→代码 | Python (Pygame) | 2219 |
可训练(量大):
| 名称 | 是什么 | 产出代码 | 规模 |
|---|---|---|---|
| WebSight | 截图→网页 | HTML/Tailwind | 82 万~192 万 |
| Web2Code | 网页截图→代码 | HTML | 88 万 |
| BigDocs | 多模态文档→代码 | HTML/Markdown/多种 | 750 万 |
| CodeSCAN | 编程截屏→识别代码 | 24 种语言 | 1.2 万 |
| Pix2Code | UI 截图→代码 | 自定义 DSL | 1750 |
唯一沾游戏的 V-GameGym 是 Python+Pygame,而且只能用来打分。针对 Godot/Unity/UE 的”编辑器画面/运行画面 ↔ 引擎源码”多模态训练语料,目前没有任何公开数据集——对做游戏引擎多模态而言,现有工作只能借方法,数据本身用不上。这既是障碍,也是机会:谁先把这类语料造出来,谁就有先发优势。
四、落盘结果
调研同时把可用数据集实际下载验证了一遍,共 34 个数据集、约 3.1 GB 成功落盘:
| 引擎目录 | 子集数 | 体积 |
|---|---|---|
| godot | 10 | 697 MB |
| unity | 12 | 894 MB |
| ue | 8 | 570 MB |
| rpgmaker | 4 | 288 MB |
| roblox-luau | 5 | 146 MB |
| gamedev-general | 6 | 527 MB |
| other-engines | 4 | 3 MB |
有 5 个数据集因仓库受限或改名下载失败(如 AdamCodd/Unreal-engine-5.5、TorpedoSoftware/the-luau-stack),实际使用时需要注意甄别失效仓库。
总结
- 纯代码语料:四大引擎都有可用的公开数据集,Unity 和 Godot 生态最好,且有现成的指令微调格式
- 工具链成熟:从仓库压平到 LLM 合成指令,每个环节都有开源工具,语料生产的工程门槛不高
- 多模态是空白:游戏引擎方向的”画面↔代码”训练语料不存在,需要借鉴 WebSight/Web2Code 的构建方法自建——这是这个方向最值得投入的地方
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!

