mirror of
https://github.com/unanmed/ginka-generator.git
synced 2026-05-14 04:41:12 +08:00
2.5 KiB
2.5 KiB
Ginka 地图生成器 - Copilot 指引
项目概述
本项目是一个基于深度学习的二维网格状地图生成模型,用于生成魔塔(Magic Tower)类网页游戏地图。
- 模型结构:VQ-VAE 风格编码器 + MaskGIT 解码器
- VQ-VAE 编码器将完整地图压缩为离散隐变量 z(从 codebook 查得)
- MaskGIT 以 z 为条件,通过迭代掩码预测生成地图
- 推理时直接随机采样 z,无需用户输入
- 地图规格:13×13 格子,7 类图块
- 目录结构
ginka/— 模型定义与训练脚本(Python)data/— 数据预处理(TypeScript,因游戏是网页游戏)docs/— 设计文档shared/— 可视化等共享工具
重要约束
训练
- 不要在当前设备上运行训练,训练在其他设备上进行
- 可以运行小规模验证、推理或单步测试,但不要触发完整训练流程
代码风格
Python
-
不使用三引号注释(
"""..."""),一律改用#注释 -
不出现连续空行(即空行仅允许连续出现一行)不出现连续空格,例如下面的例子就不允许出现:
a = func1() abcdef = func2()应改为:
a = func1() abcdef = func2() -
遵循类似 Prettier 的风格,不出现尾逗号。
-
不进行无意义的对齐,例如函数参数定义应该遵循这种风格,到达 80 字符左右换行:
def func( param1: type, param2: type, param3: type, param4: type, param5: type )而不是:
def func(param1: type, param2: type, param3: type, param4: type, param5: type) -
不使用下划线开头命名任何内容,包括私有方法。
-
不写静态方法。
-
仅允许在文件开头引入内容,不允许其他地方出现任何
import。 -
文件尾添加空行。
-
不允许出现连等。
-
不允许使用元组语法同时给多个量分别赋值,比如
a, b, c = d, e, f不允许出现,仅允许a, b, c = func()这种一赋多的场景。 -
不要在文件开头添加注释,开头第一句应该是
import。文件注释应该在import之后写。
TypeScript
遵循 Prettier 风格。
验证与可视化
- 编写验证代码时,优先输出可视化结果(图片文件),使用
shared/image.py中的工具 - 验证阶段应对不同条件(不同 z 采样)分别生成图片,便于直观对比模型效果