Files
gplan-2/.claude/docs/technical-preferences.md
T
2026-09-14 18:18:49 +08:00

72 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Technical Preferences
## Engine & Language
- **Engine**: Godot 4.7.2-stable(2026-09-07 锁定;4.7 分支最新维护版)
- **Language**: GDScript(唯一项目语言——与 `design/gdd/d2-data-config.md` 实现级规约一致:二补数回绕语义、`--headless --script` 冒烟、autoload/.tres 体系)
- **Renderer**: 2D 项目;Forward+ / gl_compatibility 的选择留实现期 ADR
- **Headless 约束**: Core 层玩法逻辑必须 `godot --headless --script` 可完整运行(D2 Rule 7 工程债)
## Naming Conventions (GDScript)
- Classes: PascalCase(`PlayerController`)
- Variables/functions: snake_case(`move_speed`)
- Signals: snake_case 过去式(`health_changed`)
- Files: snake_case 对应类名(`player_controller.gd`)
- Scenes: PascalCase 对应根节点(`PlayerController.tscn`)
- Constants: UPPER_SNAKE_CASE(`MAX_HEALTH`)
- Autoload 单例: PascalCase——**`ConfigDB`、`RngService` 已由 D2 GDD 定名,勿改**
## Input & Platform
- **Target Platforms**: PC (Steam)
- **Input Methods**: Keyboard/Mouse(主——挖/旗/移动为鼠标驱动),Gamepad(Partial)
- **Primary Input**: Keyboard/Mouse
- **Gamepad Support**: Partial(Steam 上架建议支持,非 MVP 门禁)
- **Touch Support**: None
- **Platform Notes**: 回合制可全点击驱动,无 hover-only 交互;UI 需兼容纯鼠标完成全部操作
## Performance Budgets(2D 回合制默认值,实现期可调)
- Target FPS: 60
- Frame Budget: 16.6 ms
- Draw Calls: < 200(棋盘格子 + 数字标签同屏;超出再谈合批)
- Memory: < 500 MB
- Headless 冒烟全套: < 30 s
## Testing
- **现行载体**: `godot --headless --script` 冒烟框架——脚本 extends SceneTree 以获得 `quit(code)`;该模式下 autoload 须由脚本显式实例化(D2 GDD 决策,AC 套件执行前提)
- **gdUnit4**: 是否引入并迁移冒烟用例 → Technical Setup 阶段决策(d2-data-config.md OQ1,未决)
- **测试通道**: `load_tables(root, collect_only=true)` + `--data-root=` 夹具注入(仅 debug 构建);致命类用例按独立进程"调用 → 期望退出码"枚举
## Forbidden Patterns
[TO BE CONFIGURED]
## Allowed Libraries
[TO BE CONFIGURED——仅在实际集成时登记,不预填]
(gdUnit4 若在 Technical Setup 引入,届时登记于此。)
## Engine Specialists
- **Primary**: godot-specialist
- **Language/Code Specialist**: godot-gdscript-specialist(全部 .gd 文件)
- **Shader Specialist**: godot-shader-specialist(.gdshader、VisualShader)
- **UI Specialist**: godot-specialist(无专职 UI specialist)
- **Additional Specialists**: godot-gdextension-specialist(仅 GDExtension/原生插件)
- **Routing Notes**: 架构决策/ADR 校验/跨切面审查走 primary;.gd 代码质量、信号架构、静态类型、GDScript 惯用法走 GDScript 审查;材质/着色器走 shader specialist。
- **本工具链映射**: 上述 specialist 以 general-purpose 子 agent + `godot-master` 技能承载(无独立 agent 类型注册)。
### File Extension Routing
| 文件类型 | Specialist |
|---|---|
| 游戏代码(.gd) | godot-gdscript-specialist |
| 着色器(.gdshader / VisualShader) | godot-shader-specialist |
| UI(Control / CanvasLayer) | godot-specialist |
| 场景/资源(.tscn / .tres) | godot-specialist |
| 原生扩展(.gdextension / C++) | godot-gdextension-specialist |
| 架构审查 | godot-specialist |