Files
cmr-mini/doc/gameplay/地图列表与默认体验活动方案.md

293 lines
5.3 KiB
Markdown
Raw Permalink 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-07 14:35:00
本文档用于定义“地图列表”这条产品线如何与现有活动系统协同工作,重点解决以下问题:
- 是否需要独立的地图列表入口
- 默认体验活动如何挂在地图/地点下
- 默认体验活动是否必须出现在正式活动列表
- 后台应如何支持这套关系
本文档的核心原则是:
**地图列表是体验入口层,不是第二套业务内核。**
也就是说:
- 正式业务主链仍然是 `Event -> Release -> Launch -> Session`
- 地图列表只是帮助用户从“地点/地图”进入默认体验活动
---
## 1. 总体结论
建议增加一条独立的:
- `地图列表`
它主要面向:
- 未注册用户
- 想快速试玩的用户
- 先看地点/地图,再决定是否体验的用户
但这条线不应重新发明一套“体验配置系统”,而应继续复用现有:
- `Event`
- `EventRelease`
- `Launch`
- `Session`
默认体验活动只是:
- 一类特殊的 `Event`
- 可以挂在 `Place / MapAsset`
- 可以选择是否出现在正式活动列表
---
## 2. 基本对象关系
建议继续沿用当前对象模型:
- `Place`
- `MapAsset`
- `Event`
在此基础上,补一层关系:
- `defaultExperienceEvents[]`
可理解为:
- 一个地点下可有多张地图
- 一张地图下可挂 `0 ~ N` 个默认体验活动
默认体验活动本身不需要新建特殊业务对象,仍然是 `Event`
---
## 3. 默认体验活动的定义
默认体验活动建议继续用 `Event` 承载,但补充两个活动级属性:
### 3.1 `isDefaultExperience`
- 类型:`boolean`
- 含义:该活动是否属于默认体验活动
### 3.2 `showInEventList`
- 类型:`boolean`
- 含义:该活动是否出现在正式活动列表中
这样就能支持以下场景:
1. 正式活动
- `isDefaultExperience = false`
- `showInEventList = true`
2. 纯地图体验活动
- `isDefaultExperience = true`
- `showInEventList = false`
3. 既是体验又允许出现在活动列表
- `isDefaultExperience = true`
- `showInEventList = true`
4. 当前不开放的体验活动
- 活动未 active
- 或未挂到地图
---
## 4. 产品入口建议
建议前台保留两条入口:
### 4.1 活动列表
面向正式活动。
默认只展示:
- `showInEventList = true`
不要求把所有默认体验活动都混进去。
### 4.2 地图列表
面向“先选地图/地点,再试玩”活动。
流程建议:
1. 首页进入 `地图列表`
2. 用户看到地点/地图卡片
3. 点进地图详情
4. 查看该地图下挂的默认体验活动
5. 点某个体验活动进入现有:
- 活动详情页
- 准备页
- 地图页
也就是说:
**地图列表负责入口分发,活动主链仍复用现有链路。**
---
## 5. 地图列表页建议
地图列表页第一阶段建议尽量简单。
### 每张地图卡片最小字段
- 地点名称
- 地图名称
- 地图预览图
- 简短描述
- 是否存在默认体验活动
- 默认体验数量
### 当前不必一开始就做
- 复杂筛选
- 复杂排序
- 地图标签系统
- 地图收藏
---
## 6. 地图详情页建议
地图详情页建议承担:
- 地图介绍
- 地图预览
- 默认体验活动列表
### 默认体验活动列表显示建议
每条体验活动可显示:
- 标题
- 副标题
- 玩法类型
- 当前状态
- 进入体验 CTA
如果该地图当前没有默认体验活动,应明确显示:
- `当前暂无体验活动`
不要整块隐藏。
---
## 7. 后台支持建议
后台后续应支持:
### 7.1 地图下挂体验活动
最少应支持:
- 一张地图可挂 `0 ~ N` 个默认体验活动
- 一个默认体验活动可绑定到某张地图
### 7.2 活动可见性控制
后台应能控制:
- 是否默认体验
- 是否出现在正式活动列表
也就是:
- `isDefaultExperience`
- `showInEventList`
### 7.3 不要求每种玩法都挂默认体验
后台不应把“默认体验活动”做成强制项。
可以是:
- 不挂
- 只挂顺序赛
- 只挂积分赛
- 顺序赛 + 积分赛都挂
这应由地图、运营目标和活动阶段决定,而不是系统硬约束。
---
## 8. 与现有活动系统的关系
这套方案必须继续遵守:
- 默认体验活动仍然是 `Event`
- 仍然要有 `EventRelease`
- 仍然通过 `play / launch / session` 进入
- 仍然遵守 `canLaunch`
不要为地图体验活动单独发明:
- 新的 launch 入口
- 新的 session 类型
- 新的结果体系
否则会把主链拆坏。
---
## 9. 推荐实施顺序
建议按以下顺序推进:
### 第一步
先把后台和对象关系定好:
- 地图可挂默认体验活动
- 活动可配置是否在活动列表出现
### 第二步
前台做:
- 地图列表页
- 地图详情页
### 第三步
地图详情页里的默认体验活动继续复用现有:
- 活动详情页
- 准备页
- 地图页
### 第四步
再决定是否补:
- 地图筛选
- 推荐体验
- 地图封面优化
---
## 10. 一句话结论
建议增加地图列表,但它应被定义为:
**默认体验活动的入口层,而不是第二套活动系统。**
后台后续只需支持:
- 地图下挂默认体验活动
- 默认体验活动是否出现在正式活动列表
这样既能支持未注册/试玩用户体验,也不会把现有活动主链拆成两套。