Files
cmr-mini/doc/config/配置分级总表.md

231 lines
8.5 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.
# 配置分级总表
> 文档版本v1.0
> 最后更新2026-04-02
本文档用于把当前配置体系按“核心必需项 / 常用活动项 / 高级实验项”三层整理,作为后续后台配置设计、活动装配和字段治理的统一依据。
目标:
- 防止把所有内部变量都直接暴露成后台配置
- 明确哪些字段适合最先做成后台表单
- 明确哪些字段只应保留在高级配置区或 JSON 扩展区
- 支撑“默认能跑、少配能跑、多配能扩”的可伸缩配置方案
说明:
- 本文档关注的是“字段开放策略”,不是字段字典本身
- 字段定义、类型、默认值仍以 [配置选项字典](D:/dev/cmr-mini/doc/config/配置选项字典.md) 为准
- 玩法专属使用范围仍以各玩法目录下的文档为准
---
## 1. 分级原则
### 1.1 核心必需项
满足以下条件的字段应归入核心必需项:
- 不填就无法正常进入游戏
- 不填会导致地图、场地或玩法主流程无法成立
- 后台创建一个新活动时几乎一定会填写
特点:
- 数量要少
- 后台首屏就能录入
- 应优先做成明确表单项
### 1.2 常用活动项
满足以下条件的字段应归入常用活动项:
- 不填也能跑,但活动运营经常会改
- 改动后会明显影响玩家体验或活动策略
- 属于“常见活动差异”,而不是内部实现细节
特点:
- 可以在后台做成“高级设置”分组
- 建议有默认值
- 应控制数量,避免首版后台过重
### 1.3 高级实验项
满足以下条件的字段应归入高级实验项:
- 只在少数玩法或实验活动中才需要
- 更偏表现调优、体验实验、联调或研发控制
- 暂时不适合做成常规后台表单
特点:
- 默认不暴露给普通运营
- 更适合放在高级 JSON 区或内部配置区
- 后续可以按实际使用频率再降级到常用活动项
---
## 2. 推荐后台策略
建议后续后台按三层展示:
1. 基础信息
2. 常用活动设置
3. 高级配置
其中:
- 基础信息只对应核心必需项
- 常用活动设置对应常用活动项
- 高级配置对应高级实验项和 JSON 扩展
不建议:
- 首版后台直接开放全部字段
- 把玩家个人设置和活动规则配置混在一起
- 把纯运行时状态做成配置项
---
## 3. 当前分级总表
### 3.1 核心必需项
| 字段 | 说明 | 备注 |
| --- | --- | --- |
| `schemaVersion` | 配置结构版本 | 建议固定为 `"1"` |
| `version` | 配置版本号 | 建议按发布日期或发布号维护 |
| `app.id` | 活动实例 ID | 必填 |
| `app.title` | 活动标题 | 必填 |
| `map.tiles` | 瓦片根路径 | 必填 |
| `map.mapmeta` | 地图元数据路径 | 必填 |
| `playfield.kind` | 场地类型 | 顺序赛常用 `course`,积分赛常用 `control-set` |
| `playfield.source.type` | 场地来源类型 | 当前推荐 `kml` |
| `playfield.source.url` | 场地源文件路径 | 必填 |
| `game.mode` | 玩法模式 | 当前核心玩法:`classic-sequential` / `score-o` |
建议:
- 核心必需项应控制在 `10` 个左右
- 新活动创建时,后台优先只要求填写这一层
### 3.2 常用活动项
| 字段 | 说明 | 备注 |
| --- | --- | --- |
| `app.locale` | 语言环境 | 常见默认值 `zh-CN` |
| `settings.*.value` | 系统设置默认值 | 活动可覆盖玩家默认体验 |
| `settings.*.isLocked` | 系统设置锁态 | 只在本局生命周期内生效 |
| `map.declination` | 磁偏角 | 地图类活动常用 |
| `map.initialView.zoom` | 初始缩放 | 常见活动会调 |
| `playfield.CPRadius` | 控制点绘制半径 | 常用地图表现项 |
| `playfield.metadata.title` | 路线标题 | 常用展示信息 |
| `playfield.metadata.code` | 路线编码 | 常用管理字段 |
| `playfield.controlOverrides.<key>.score` | 点位分值覆盖 | 积分赛常用 |
| `game.session.requiresStartPunch` | 是否要求起点打卡 | 常用局流程控制 |
| `game.session.requiresFinishPunch` | 是否要求终点打卡 | 常用局流程控制 |
| `game.session.autoFinishOnLastControl` | 最后点自动结束 | 常用局流程控制 |
| `game.session.maxDurationSec` | 最大时长 / 关门时间 | 常用赛事规则项 |
| `game.punch.policy` | 打点方式 | 常用玩法差异项 |
| `game.punch.radiusMeters` | 打点半径 | 常用活动调节项 |
| `game.punch.requiresFocusSelection` | 是否先选目标 | 积分赛常用 |
| `game.sequence.skip.enabled` | 是否允许跳点 | 顺序赛常用 |
| `game.sequence.skip.radiusMeters` | 跳点半径 | 顺序赛常用 |
| `game.sequence.skip.requiresConfirm` | 跳点是否确认 | 顺序赛常用 |
| `game.guidance.showLegs` | 是否显示腿线 | 常用表现项 |
| `game.guidance.legAnimation` | 腿线动画 | 常用表现项 |
| `game.guidance.allowFocusSelection` | 是否允许地图选点 | 积分赛常用 |
| `game.visibility.revealFullPlayfieldAfterStartPunch` | 起点后是否揭示全场 | 常用局流程表现项 |
| `game.finish.finishControlAlwaysSelectable` | 终点是否始终可打 | 积分赛常用 |
| `game.scoring.defaultControlScore` | 默认点位分值 | 常用计分项 |
建议:
- 常用活动项是后台第二层的重点
- 这层优先服务“活动策划/运营经常会改的东西”
### 3.3 高级实验项
| 字段 | 说明 | 备注 |
| --- | --- | --- |
| `playfield.controlOverrides.<key>.template` | 白卡模板 | 内容实验项 |
| `playfield.controlOverrides.<key>.title` | 打点后内容标题 | 内容实验项 |
| `playfield.controlOverrides.<key>.body` | 打点后内容正文 | 内容实验项 |
| `playfield.controlOverrides.<key>.clickTitle` | 点击内容标题 | 显式启用型能力 |
| `playfield.controlOverrides.<key>.clickBody` | 点击内容正文 | 显式启用型能力 |
| `playfield.controlOverrides.<key>.autoPopup` | 是否自动弹白卡 | 内容实验项 |
| `playfield.controlOverrides.<key>.once` | 是否仅一次 | 内容实验项 |
| `playfield.controlOverrides.<key>.priority` | 内容优先级 | 内容实验项 |
| `playfield.controlOverrides.<key>.contentExperience.*` | 打点后 H5 / 原生体验 | 高级体验项 |
| `playfield.controlOverrides.<key>.clickExperience.*` | 点击 H5 / 原生体验 | 高级体验项 |
| `playfield.controlOverrides.<key>.pointStyle` | 单点样式覆盖 | 表现调优项 |
| `playfield.controlOverrides.<key>.pointColorHex` | 单点颜色覆盖 | 表现调优项 |
| `playfield.controlOverrides.<key>.pointSizeScale` | 单点尺寸倍率 | 表现调优项 |
| `playfield.controlOverrides.<key>.pointAccentRingScale` | 单点强调环倍率 | 表现调优项 |
| `playfield.controlOverrides.<key>.pointGlowStrength` | 单点光晕强度 | 表现调优项 |
| `playfield.controlOverrides.<key>.pointLabelScale` | 标签缩放 | 表现调优项 |
| `playfield.controlOverrides.<key>.pointLabelColorHex` | 标签颜色覆盖 | 表现调优项 |
| `playfield.legOverrides.<key>.*` | 腿线局部覆盖 | 表现调优项 |
| `game.presentation.*` | 全局点位/腿线样式 | 当前更适合高级区 |
| `game.presentation.track.*` | 轨迹表现细项 | 高级表现区 |
| `game.presentation.gpsMarker.*` | GPS 点表现细项 | 高级表现区 |
| `game.telemetry.*` | 遥测计算参数 | 高级区或设备联调区 |
| `game.audio.*` | 音效细项 | 高级表现区 |
| `game.haptics.*` | 震动细项 | 高级表现区 |
| `game.uiEffects.*` | UI 动效细项 | 高级表现区 |
| `resources.*` | 资源档与主题档 | 高级资源管理项 |
| `debug.*` | 调试与模拟字段 | 默认不进正式后台 |
建议:
- 这一层先不要全做成常规表单
- 后期可以根据真实使用频率,把一部分下放到常用活动项
---
## 4. 当前建议的开放策略
### 4.1 先开放
优先开放这些:
- 核心必需项
- 常用活动项中的对局规则、打点规则、完赛规则、分值规则
### 4.2 后开放
后续再开放这些:
- 常用活动项中的部分设置默认值
- 少量高频使用的内容卡字段
- 少量高频使用的表现字段
### 4.3 暂不开放
建议先不开放这些:
- 大量细粒度动画参数
- 大量音效和震动细项
- 纯调试字段
- 仅研发联调使用的实验字段
---
## 5. 后续维护规则
后续每次新增配置能力时,建议先回答 3 个问题:
1. 这个字段是不是不配就跑不了?
2. 这个字段是不是活动经常会改?
3. 这个字段是不是只是研发或实验阶段才会动?
对应落点:
- 第 1 类:核心必需项
- 第 2 类:常用活动项
- 第 3 类:高级实验项
如果无法明确归类,默认先归入高级实验项,不急着开放到后台常规表单。