推进活动系统最小成品闭环与游客体验
This commit is contained in:
478
doc/config/最大配置模板后台落地裁剪表.md
Normal file
478
doc/config/最大配置模板后台落地裁剪表.md
Normal file
@@ -0,0 +1,478 @@
|
||||
# 最大配置模板后台落地裁剪表
|
||||
> 文档版本:v1.0
|
||||
> 最后更新:2026-04-07 14:22:00
|
||||
|
||||
本文档用于把当前“最大配置模板”转换成 backend 可执行的落地裁剪表。
|
||||
|
||||
目标不是让 backend 1:1 支持所有字段,而是明确:
|
||||
|
||||
- 哪些块属于第一阶段必做
|
||||
- 哪些块属于第二阶段可做
|
||||
- 哪些块当前不应进入后台,继续留在程序默认值层
|
||||
|
||||
建议结合以下文档一起阅读:
|
||||
|
||||
- [当前最全配置模板](/D:/dev/cmr-mini/doc/config/当前最全配置模板.md)
|
||||
- [配置选项字典](/D:/dev/cmr-mini/doc/config/配置选项字典.md)
|
||||
- [后台游戏定制支持方案](/D:/dev/cmr-mini/doc/backend/后台游戏定制支持方案.md)
|
||||
- [后端第一阶段执行清单](/D:/dev/cmr-mini/doc/backend/后端第一阶段执行清单.md)
|
||||
|
||||
---
|
||||
|
||||
## 1. 总体原则
|
||||
|
||||
最大配置模板当前可视为“系统能力全集参考”,但 backend 不应照单全收。
|
||||
|
||||
建议按以下三类裁剪:
|
||||
|
||||
### A. 第一阶段必做
|
||||
|
||||
必须进入 backend,且需要正式对象化、可绑定、可发布。
|
||||
|
||||
### B. 第二阶段可做
|
||||
|
||||
建议预留,但不需要第一阶段就全部落地。可以先保留为默认值或高级区。
|
||||
|
||||
### C. 暂不进后台
|
||||
|
||||
继续留在程序默认值层、前端默认值层或调试层,当前不建议后台开放。
|
||||
|
||||
---
|
||||
|
||||
## 2. 顶层结构裁剪
|
||||
|
||||
### 2.1 `schemaVersion`
|
||||
|
||||
- 分类:A
|
||||
- backend 建议:保留
|
||||
- 理由:发布物结构版本必须可追踪
|
||||
|
||||
### 2.2 `version`
|
||||
|
||||
- 分类:A
|
||||
- backend 建议:保留
|
||||
- 理由:配置内容版本必须可追踪
|
||||
|
||||
### 2.3 `app`
|
||||
|
||||
- 分类:A
|
||||
- backend 建议:进入活动层
|
||||
- 理由:属于活动基础信息
|
||||
|
||||
### 2.4 `settings`
|
||||
|
||||
- 分类:B
|
||||
- backend 建议:只开放少量活动级默认值和锁态
|
||||
- 理由:适合做活动级系统设置默认值,但不宜第一阶段全开
|
||||
|
||||
### 2.5 `map`
|
||||
|
||||
- 分类:A
|
||||
- backend 建议:进入地图运行域
|
||||
- 理由:属于运行底座
|
||||
|
||||
### 2.6 `playfield`
|
||||
|
||||
- 分类:A
|
||||
- backend 建议:进入地图与赛道层
|
||||
- 理由:属于赛道空间对象
|
||||
|
||||
### 2.7 `game`
|
||||
|
||||
- 分类:A / B 混合
|
||||
- backend 建议:玩法模板化后分层开放
|
||||
- 理由:游戏规则是后台支持游戏定制的核心,但应按模板化和差异化开放
|
||||
|
||||
### 2.8 `resources`
|
||||
|
||||
- 分类:A
|
||||
- backend 建议:进入运营内容层
|
||||
- 理由:与 `presentation / content bundle` 绑定关系紧密
|
||||
|
||||
### 2.9 `debug`
|
||||
|
||||
- 分类:C
|
||||
- backend 建议:不进正式后台
|
||||
- 理由:属于联调/开发域,不是正式活动生产对象
|
||||
|
||||
---
|
||||
|
||||
## 3. 各块裁剪建议
|
||||
|
||||
## 3.1 `app`
|
||||
|
||||
### 建议第一阶段进入后台
|
||||
|
||||
- `app.id`
|
||||
- `app.title`
|
||||
- `app.locale`
|
||||
|
||||
### 说明
|
||||
|
||||
这些字段直接对应:
|
||||
|
||||
- 活动基本信息
|
||||
- 活动标题
|
||||
- 活动语言环境
|
||||
|
||||
属于活动层核心字段,必须进后台。
|
||||
|
||||
---
|
||||
|
||||
## 3.2 `settings`
|
||||
|
||||
### 第一阶段建议只开放少量活动级默认值
|
||||
|
||||
- `autoRotateEnabled`
|
||||
- `trackDisplayMode`
|
||||
- `gpsMarkerStyle`
|
||||
- `showCenterScaleRuler`
|
||||
- `useTrueNorth`
|
||||
|
||||
### 第二阶段再考虑开放
|
||||
|
||||
- 更多地图显示偏好
|
||||
- 更多设备偏好
|
||||
- 更细的锁态粒度
|
||||
|
||||
### 当前不建议后台开放
|
||||
|
||||
- 所有设置项的全量 `value/isLocked`
|
||||
|
||||
### 说明
|
||||
|
||||
`settings` 应继续遵守:
|
||||
|
||||
- 值可持久化
|
||||
- `isLocked` 不持久化
|
||||
- 锁态只在当前游戏配置生命周期内生效
|
||||
|
||||
所以后台第一阶段只应提供少量活动级默认值和锁态,不应做全量设置管理。
|
||||
|
||||
---
|
||||
|
||||
## 3.3 `map`
|
||||
|
||||
### 第一阶段必做
|
||||
|
||||
- `map.tiles`
|
||||
- `map.mapmeta`
|
||||
- `map.declination`
|
||||
- `map.initialView.zoom`
|
||||
|
||||
### 说明
|
||||
|
||||
这块应完全进入地图运行域:
|
||||
|
||||
- `Place`
|
||||
- `MapAsset`
|
||||
- `TileRelease`
|
||||
|
||||
这些字段不应继续作为散装 JSON 长期管理。
|
||||
|
||||
---
|
||||
|
||||
## 3.4 `playfield`
|
||||
|
||||
### 第一阶段必做
|
||||
|
||||
- `playfield.kind`
|
||||
- `playfield.source.type`
|
||||
- `playfield.source.url`
|
||||
- `playfield.CPRadius`
|
||||
- `playfield.metadata.title`
|
||||
- `playfield.metadata.code`
|
||||
|
||||
### 第一阶段建议支持
|
||||
|
||||
- `playfield.controlDefaults`
|
||||
- `playfield.controlOverrides`
|
||||
- `playfield.legDefaults`
|
||||
- `playfield.legOverrides`
|
||||
|
||||
### 说明
|
||||
|
||||
这里是“活动级默认 + 单点重载”的主战场。
|
||||
|
||||
backend 不应只支持 `controlOverrides`,也应支持:
|
||||
|
||||
- `controlDefaults`
|
||||
- `legDefaults`
|
||||
|
||||
这样后台才不会被迫为每个点单独填字段。
|
||||
|
||||
---
|
||||
|
||||
## 3.5 `game.session`
|
||||
|
||||
### 第一阶段必做
|
||||
|
||||
- `startManually`
|
||||
- `requiresStartPunch`
|
||||
- `requiresFinishPunch`
|
||||
- `autoFinishOnLastControl`
|
||||
- `minCompletedControlsBeforeFinish`
|
||||
- `maxDurationSec`
|
||||
|
||||
### 说明
|
||||
|
||||
这块建议作为玩法模板和活动级差异项的一部分进入 backend。
|
||||
|
||||
尤其:
|
||||
|
||||
- 终点解锁条件
|
||||
- 关门时间
|
||||
|
||||
都是活动定制常用项。
|
||||
|
||||
---
|
||||
|
||||
## 3.6 `game.punch`
|
||||
|
||||
### 第一阶段必做
|
||||
|
||||
- `policy`
|
||||
- `radiusMeters`
|
||||
- `requiresFocusSelection`
|
||||
|
||||
### 说明
|
||||
|
||||
这块直接影响:
|
||||
|
||||
- 顺序赛 / 积分赛
|
||||
- 自动打点 / 确认打点
|
||||
- 是否需要先选目标点
|
||||
|
||||
属于 backend 支持玩法定制的核心字段。
|
||||
|
||||
---
|
||||
|
||||
## 3.7 `game.sequence.skip`
|
||||
|
||||
### 第一阶段建议开放
|
||||
|
||||
- `enabled`
|
||||
- `radiusMeters`
|
||||
- `requiresConfirm`
|
||||
|
||||
### 说明
|
||||
|
||||
这块属于顺序赛核心差异项,适合进玩法模板页或活动高级规则页。
|
||||
|
||||
---
|
||||
|
||||
## 3.8 `game.scoring`
|
||||
|
||||
### 第一阶段必做
|
||||
|
||||
- `type`
|
||||
- `defaultControlScore`
|
||||
|
||||
### 说明
|
||||
|
||||
积分赛与顺序赛都要用到基础分/计分逻辑,这块应进入玩法模板层。
|
||||
|
||||
---
|
||||
|
||||
## 3.9 `game.guidance`
|
||||
|
||||
### 第一阶段建议开放少量核心项
|
||||
|
||||
- `showLegs`
|
||||
- `allowFocusSelection`
|
||||
|
||||
### 第二阶段再做
|
||||
|
||||
- `legAnimation`
|
||||
- 其他更细 guidance 展现项
|
||||
|
||||
### 说明
|
||||
|
||||
backend 第一阶段不需要开放全部 guidance 表现细项,只需支撑“路线是否显示 / 是否允许选目标”这类活动差异。
|
||||
|
||||
---
|
||||
|
||||
## 3.10 `game.visibility`
|
||||
|
||||
### 第一阶段建议开放
|
||||
|
||||
- `revealFullPlayfieldAfterStartPunch`
|
||||
|
||||
### 说明
|
||||
|
||||
这是一个清晰且常见的活动差异项,适合后台开放。
|
||||
|
||||
---
|
||||
|
||||
## 3.11 `game.finish`
|
||||
|
||||
### 第一阶段建议开放
|
||||
|
||||
- `finishControlAlwaysSelectable`
|
||||
|
||||
### 说明
|
||||
|
||||
终点是否始终可结束,是活动差异项,特别适合在积分赛里后台控制。
|
||||
|
||||
---
|
||||
|
||||
## 3.12 `game.telemetry`
|
||||
|
||||
### 第一阶段建议只开放少量活动级默认项
|
||||
|
||||
- `age`
|
||||
- `restingHeartRateBpm`
|
||||
- `userWeightKg`
|
||||
|
||||
### 说明
|
||||
|
||||
这块未来会更多依赖用户身体数据接口,当前 backend 不必重做一整套复杂管理。
|
||||
|
||||
---
|
||||
|
||||
## 3.13 `game.feedback`
|
||||
|
||||
### 第一阶段不建议全开
|
||||
|
||||
### 第一阶段最多开放
|
||||
|
||||
- `audioProfile`
|
||||
- `hapticsProfile`
|
||||
- `uiEffectsProfile`
|
||||
|
||||
### 第二阶段再考虑
|
||||
|
||||
- 距离音三档参数
|
||||
- 各类 loopGap/volume 细项
|
||||
|
||||
### 说明
|
||||
|
||||
反馈层参数很多,但大多数不适合第一阶段后台直接编辑。
|
||||
|
||||
---
|
||||
|
||||
## 3.14 `game.presentation`
|
||||
|
||||
### 第一阶段建议只开放这些方向
|
||||
|
||||
- 顺序赛点位样式 profile
|
||||
- 积分赛点位样式 profile
|
||||
- 积分赛 scoreBands
|
||||
- `track.mode`
|
||||
- `gpsMarker.style`
|
||||
|
||||
### 第二阶段再考虑
|
||||
|
||||
- 每个表现子字段全量可编排
|
||||
- 更细的 glow / width / label 等参数
|
||||
|
||||
### 说明
|
||||
|
||||
这块当前最容易做过头。建议 backend 先支持“样式 profile / band / 模式级”配置,而不是让运营直接调几十个视觉参数。
|
||||
|
||||
---
|
||||
|
||||
## 3.15 `resources`
|
||||
|
||||
### 第一阶段必做
|
||||
|
||||
- `resources.audioProfile`
|
||||
- `resources.contentProfile`
|
||||
- `resources.themeProfile`
|
||||
|
||||
### 说明
|
||||
|
||||
这块应与:
|
||||
|
||||
- `EventPresentation`
|
||||
- `ContentBundle`
|
||||
|
||||
一起归入运营内容层。
|
||||
|
||||
---
|
||||
|
||||
## 3.16 `debug`
|
||||
|
||||
### 当前不进后台
|
||||
|
||||
- `allowModeSwitch`
|
||||
- `allowMockInput`
|
||||
- `allowSimulator`
|
||||
|
||||
### 说明
|
||||
|
||||
这些字段继续留在开发联调域,不应进入正式运维后台。
|
||||
|
||||
---
|
||||
|
||||
## 4. backend 第一阶段最小落地范围
|
||||
|
||||
综合以上裁剪,建议 backend 第一阶段只做这些:
|
||||
|
||||
### 活动层
|
||||
|
||||
- `app.*`
|
||||
- 活动状态
|
||||
- 当前发布 release
|
||||
|
||||
### 地图与赛道层
|
||||
|
||||
- `map.*`
|
||||
- `playfield.kind`
|
||||
- `playfield.source`
|
||||
- `playfield.metadata`
|
||||
- `controlDefaults / controlOverrides`
|
||||
- 多赛道 variant
|
||||
|
||||
### 玩法层
|
||||
|
||||
- `game.mode`
|
||||
- `game.session`
|
||||
- `game.punch`
|
||||
- `game.sequence.skip`
|
||||
- `game.scoring`
|
||||
- 少量 `guidance / visibility / finish`
|
||||
|
||||
### 运营内容层
|
||||
|
||||
- `resources.*`
|
||||
- `presentation`
|
||||
- `content bundle`
|
||||
|
||||
### 发布层
|
||||
|
||||
- `schemaVersion`
|
||||
- `version`
|
||||
- 发布完整性校验
|
||||
|
||||
---
|
||||
|
||||
## 5. 当前明确不建议 backend 第一阶段落地的字段
|
||||
|
||||
以下字段当前建议继续留在:
|
||||
|
||||
- 程序默认值层
|
||||
- 玩法默认值层
|
||||
- 前端高级配置层
|
||||
|
||||
而不要第一阶段就强行做成后台表单:
|
||||
|
||||
- `game.feedback.audio.cues.*`
|
||||
- `game.presentation.track.*` 的所有细粒度宽度/颜色/光晕参数
|
||||
- `game.presentation.gpsMarker.*` 的所有细粒度品牌/动画参数
|
||||
- 所有高级 label / glow / accentRing 细项
|
||||
- `debug.*`
|
||||
|
||||
---
|
||||
|
||||
## 6. 一句话结论
|
||||
|
||||
最大配置模板应作为 backend 的“能力全集参考”,但不应 1:1 全量落地。
|
||||
|
||||
当前建议:
|
||||
|
||||
- 第一阶段做核心活动生产与发布字段
|
||||
- 第二阶段做常用活动差异项
|
||||
- 高级视觉/反馈/调试细项继续留在程序默认值层或高级区
|
||||
|
||||
这样 backend 才不会在第一阶段就跑偏成“大而全配置编辑器”。
|
||||
Reference in New Issue
Block a user