first commit
This commit is contained in:
@@ -0,0 +1,273 @@
|
||||
# 商业化需求文档:坦克大作战
|
||||
|
||||
## 引言
|
||||
|
||||
本文档基于《坦克大作战》微信小游戏商业化方案,提炼出可落地的商业化功能需求。商业化总策略采用 **"IAA(激励广告)+ IAP(内购)+ 社交裂变"** 三轨并行模式,以**非强制性、高转化**为核心原则,确保免费玩家体验不受损害,同时激励付费转化。
|
||||
|
||||
商业化功能按版本分阶段交付:
|
||||
- **V1.0 基础版**:激励视频广告(复活、双倍结算)、插屏广告
|
||||
- **V1.5 内购版**:钻石充值、去广告特权、基础皮肤商店
|
||||
- **V2.0 赛季版**:战斗通行证、赛季任务、段位系统
|
||||
- **V2.5 社交版**:分享裂变体系、战队系统、社交皮肤
|
||||
|
||||
---
|
||||
|
||||
## 需求
|
||||
|
||||
### 需求 1:激励视频广告系统
|
||||
|
||||
**用户故事:** 作为游戏运营方,我希望在关键游戏节点嵌入激励视频广告,以便在不破坏玩家体验的前提下获得广告收入。
|
||||
|
||||
#### 验收标准
|
||||
|
||||
##### 1.1 复活续关广告
|
||||
1. WHEN 玩家在关卡中死亡且生命数降为0 THEN 系统 SHALL 弹出"观看广告复活"选项,展示激励视频广告入口。
|
||||
2. WHEN 玩家选择观看广告并完整观看激励视频 THEN 系统 SHALL 立即复活玩家,保留当前火力等级,在出生点重生。
|
||||
3. IF 玩家选择不观看广告 THEN 系统 SHALL 正常进入游戏失败结算流程。
|
||||
4. WHEN 同一关卡中玩家已使用过1次广告复活 THEN 系统 SHALL 不再提供复活广告选项(每关最多复活1次)。
|
||||
|
||||
##### 1.2 双倍结算广告
|
||||
5. WHEN 玩家通关进入结算界面 THEN 系统 SHALL 展示"观看广告获得双倍奖励"按钮。
|
||||
6. WHEN 玩家完整观看激励视频 THEN 系统 SHALL 将本局获得的金币和经验值翻倍发放。
|
||||
7. IF 广告加载失败 THEN 系统 SHALL 提示"广告暂时不可用,请稍后重试",并按正常倍率发放奖励。
|
||||
|
||||
##### 1.3 宝箱加速广告
|
||||
8. WHEN 玩家获得稀有宝箱且宝箱处于冷却倒计时中(4小时) THEN 系统 SHALL 展示"观看广告立即开启"按钮。
|
||||
9. WHEN 玩家完整观看激励视频 THEN 系统 SHALL 跳过冷却时间,立即打开宝箱并发放奖励。
|
||||
|
||||
##### 1.4 体力恢复广告
|
||||
10. WHEN 玩家体力耗尽 THEN 系统 SHALL 展示"观看广告恢复体力"按钮。
|
||||
11. WHEN 玩家完整观看激励视频 THEN 系统 SHALL 恢复5点体力。
|
||||
12. WHEN 玩家当日已通过广告恢复体力达5次 THEN 系统 SHALL 隐藏该广告入口,提示"今日广告恢复次数已用完"。
|
||||
|
||||
##### 1.5 免费礼包广告
|
||||
13. WHEN 玩家进入每日签到或活动页面 THEN 系统 SHALL 展示"观看广告领取免费礼包"入口。
|
||||
14. WHEN 玩家完整观看激励视频 THEN 系统 SHALL 发放随机道具包(内容根据配置表随机)。
|
||||
|
||||
##### 1.6 广告体验优化
|
||||
15. WHEN 关卡加载时 THEN 系统 SHALL 预加载激励视频广告资源,减少玩家等待时间。
|
||||
16. WHEN 同一广告场景在15分钟内已展示过 THEN 系统 SHALL 不重复展示相同场景的广告。
|
||||
17. WHEN 广告播放完毕 THEN 系统 SHALL 在广告结束瞬间立即发放奖励,建立正反馈。
|
||||
|
||||
---
|
||||
|
||||
### 需求 2:插屏广告
|
||||
|
||||
**用户故事:** 作为游戏运营方,我希望在自然间歇点展示插屏广告,以便补充广告收入。
|
||||
|
||||
#### 验收标准
|
||||
|
||||
1. WHEN 玩家完成一局游戏(胜利或失败)退出关卡时 THEN 系统 SHALL 检查是否满足插屏广告展示条件。
|
||||
2. IF 距离上次插屏广告展示已超过3局 THEN 系统 SHALL 展示一次插屏广告。
|
||||
3. IF 玩家已购买"去广告特权" THEN 系统 SHALL 永久跳过所有插屏广告展示。
|
||||
4. WHEN 插屏广告加载失败 THEN 系统 SHALL 静默跳过,不影响玩家正常流程。
|
||||
|
||||
---
|
||||
|
||||
### 需求 3:货币体系
|
||||
|
||||
**用户故事:** 作为一名玩家,我希望游戏有清晰的货币体系,以便了解如何获取和使用游戏内资源。
|
||||
|
||||
#### 验收标准
|
||||
|
||||
##### 3.1 金币系统
|
||||
1. WHEN 玩家完成对局 THEN 系统 SHALL 根据击杀数、通关时间等计算并发放金币奖励。
|
||||
2. WHEN 玩家完成每日任务 THEN 系统 SHALL 发放对应的金币奖励。
|
||||
3. WHEN 玩家消耗金币 THEN 系统 SHALL 支持以下消耗场景:升级坦克属性、购买基础道具。
|
||||
4. WHEN 系统展示金币相关信息 THEN 系统 SHALL 按照 100金币 ≈ ¥0.1 的价值锚定进行经济平衡。
|
||||
|
||||
##### 3.2 钻石系统
|
||||
5. WHEN 玩家通过充值获得钻石 THEN 系统 SHALL 按照购买的钻石包规格发放对应数量的钻石。
|
||||
6. WHEN 玩家通过高级通行证或活动获得钻石 THEN 系统 SHALL 发放对应数量的钻石。
|
||||
7. WHEN 玩家消耗钻石 THEN 系统 SHALL 支持以下消耗场景:购买皮肤、购买稀有道具、补充体力。
|
||||
8. WHEN 系统展示钻石相关信息 THEN 系统 SHALL 按照 1钻石 ≈ ¥0.1 的价值锚定进行经济平衡。
|
||||
|
||||
##### 3.3 赛季币系统
|
||||
9. WHEN 玩家完成赛季任务或达到段位奖励节点 THEN 系统 SHALL 发放赛季币。
|
||||
10. WHEN 玩家消耗赛季币 THEN 系统 SHALL 支持兑换往季限定皮肤。
|
||||
11. WHEN 赛季结束 THEN 系统 SHALL 保留玩家的赛季币余额,不清零(可跨赛季使用)。
|
||||
|
||||
---
|
||||
|
||||
### 需求 4:应用内购买(IAP)系统
|
||||
|
||||
**用户故事:** 作为一名玩家,我希望能通过内购获得增值服务和虚拟商品,以便提升游戏体验。
|
||||
|
||||
#### 验收标准
|
||||
|
||||
##### 4.1 去广告特权
|
||||
1. WHEN 玩家在商店中购买"去广告特权"(¥30/永久) THEN 系统 SHALL 永久移除所有插屏广告。
|
||||
2. IF 玩家已购买去广告特权 THEN 系统 SHALL 保留激励视频广告入口(因为是玩家主动选择观看以获取奖励)。
|
||||
3. IF 玩家已购买去广告特权 THEN 系统 SHALL 在原插屏广告触发点直接跳过,无任何等待。
|
||||
|
||||
##### 4.2 月卡
|
||||
4. WHEN 玩家购买月卡(¥12/月) THEN 系统 SHALL 立即发放月卡权益:专属头像框解锁。
|
||||
5. WHEN 月卡有效期内玩家每日登录 THEN 系统 SHALL 发放100钻石的每日领取奖励。
|
||||
6. WHEN 月卡到期 THEN 系统 SHALL 停止发放每日钻石,收回专属头像框(或标记为过期状态)。
|
||||
7. IF 玩家开启自动续费 THEN 系统 SHALL 在到期前自动续费,前3天支持无条件退款。
|
||||
|
||||
##### 4.3 钻石充值包
|
||||
8. WHEN 玩家购买钻石包 THEN 系统 SHALL 按以下规格发放钻石:¥6/60钻、¥30/360钻、¥68/880钻。
|
||||
9. WHEN 玩家首次充值任意金额 THEN 系统 SHALL 额外赠送等值钻石(首充双倍)。
|
||||
10. WHEN 玩家连续7天每日充值 THEN 系统 SHALL 在第7天额外赠送稀有皮肤奖励。
|
||||
|
||||
##### 4.4 皮肤礼包
|
||||
11. WHEN 玩家购买皮肤礼包(¥18-68) THEN 系统 SHALL 解锁对应的限定坦克皮肤及配套技能特效。
|
||||
12. WHEN 赛季更新或节日活动期间 THEN 系统 SHALL 上架对应主题的限定皮肤礼包。
|
||||
|
||||
##### 4.5 新手礼包
|
||||
13. WHEN 新用户首次进入游戏 THEN 系统 SHALL 在24小时内展示新手礼包购买入口(¥1,价值¥30道具组合)。
|
||||
14. WHEN 新手礼包倒计时结束(24小时) THEN 系统 SHALL 移除新手礼包购买入口,不再展示。
|
||||
|
||||
##### 4.6 支付与安全
|
||||
15. WHEN 玩家发起内购 THEN 系统 SHALL 通过微信支付完成交易,交易成功后立即发放商品。
|
||||
16. IF 支付过程中网络中断 THEN 系统 SHALL 在网络恢复后自动查询订单状态,补发未到账的商品。
|
||||
17. WHEN 玩家购买的虚拟商品 THEN 系统 SHALL 将购买记录同步至云端,确保换设备后不丢失。
|
||||
|
||||
---
|
||||
|
||||
### 需求 5:战斗通行证(Battle Pass)系统
|
||||
|
||||
**用户故事:** 作为一名玩家,我希望通过完成任务解锁赛季奖励,以便获得持续的游戏目标和丰厚的回报。
|
||||
|
||||
#### 验收标准
|
||||
|
||||
##### 5.1 赛季基础设计
|
||||
1. WHEN 新赛季开始 THEN 系统 SHALL 重置通行证等级为1级,赛季时长为28天(4周)。
|
||||
2. WHEN 赛季进行中 THEN 系统 SHALL 为所有玩家提供免费通行证(20级),包含基础奖励(金币、普通皮肤)。
|
||||
3. WHEN 玩家购买高级通行证(¥18/赛季) THEN 系统 SHALL 解锁40级奖励轨道,包含:3款限定坦克皮肤、专属头像框、聊天气泡、双倍任务经验加成、赛季结算额外30%金币。
|
||||
4. WHEN 玩家获得通行证经验 THEN 系统 SHALL 更新通行证等级进度条,达到新等级时自动发放对应奖励。
|
||||
|
||||
##### 5.2 任务体系
|
||||
5. WHEN 每日刷新时 THEN 系统 SHALL 为免费玩家生成3个每日任务(100经验/个),为高级通行证玩家额外生成2个每日任务。
|
||||
6. WHEN 每周刷新时 THEN 系统 SHALL 为免费玩家生成5个每周任务(500经验/个),为高级通行证玩家额外生成3个每周任务。
|
||||
7. WHEN 赛季开始时 THEN 系统 SHALL 生成10个赛季成就(1000经验/个),免费版和高级版无差异。
|
||||
8. WHEN 玩家完成任务 THEN 系统 SHALL 立即发放对应经验值,并更新通行证进度。
|
||||
|
||||
##### 5.3 转化策略
|
||||
9. WHEN 免费玩家通行证等级达到10级 THEN 系统 SHALL 展示高级通行证的前10级奖励预览(已解锁但需购买高级版才能领取)。
|
||||
10. WHEN 赛季剩余时间不足3天 THEN 系统 SHALL 展示高级通行证限时8折优惠。
|
||||
11. WHEN 玩家将通行证分享给3位好友 THEN 系统 SHALL 发放5折优惠券(可用于购买高级通行证)。
|
||||
|
||||
---
|
||||
|
||||
### 需求 6:社交裂变与分享变现
|
||||
|
||||
**用户故事:** 作为游戏运营方,我希望通过社交分享激励体系降低获客成本,以便利用微信社交链实现用户增长。
|
||||
|
||||
#### 验收标准
|
||||
|
||||
##### 6.1 分享激励
|
||||
1. WHEN 玩家每日首次分享游戏 THEN 系统 SHALL 发放50金币奖励。
|
||||
2. WHEN 玩家成功邀请新用户(新用户需完成新手引导) THEN 系统 SHALL 发放200金币奖励给邀请者,每日上限5人。
|
||||
3. WHEN 被邀请的新用户完成新手引导 THEN 系统 SHALL 发放双倍经验卡(3天有效期)给新用户。
|
||||
4. WHEN 玩家分享战绩 THEN 系统 SHALL 以概率发放稀有道具奖励,每日上限3次。
|
||||
5. WHEN 玩家与好友组队完成3局对战(每局时长>2分钟) THEN 系统 SHALL 发放100钻石给双方。
|
||||
|
||||
##### 6.2 防作弊机制
|
||||
6. WHEN 系统判定分享奖励时 THEN 系统 SHALL 进行 IP + 设备指纹去重,同一设备/IP不重复计算。
|
||||
7. WHEN 系统判定邀请新用户奖励时 THEN 系统 SHALL 验证新用户已完成新手引导,未完成则不发放邀请者奖励。
|
||||
|
||||
##### 6.3 裂变活动
|
||||
8. WHEN 运营配置"老带新活动"时 THEN 系统 SHALL 支持:邀请3位新用户送永久限定皮肤。
|
||||
9. WHEN 运营配置"战队招募活动"时 THEN 系统 SHALL 支持:创建战队并招募10人,队长得500钻石。
|
||||
10. WHEN 运营配置"节日助力活动"时 THEN 系统 SHALL 支持:集齐5种道具可兑换大奖,道具需好友互赠。
|
||||
|
||||
---
|
||||
|
||||
### 需求 7:皮肤商店系统
|
||||
|
||||
**用户故事:** 作为一名玩家,我希望能购买和装备不同的坦克皮肤,以便展示个性和获得视觉享受。
|
||||
|
||||
#### 验收标准
|
||||
|
||||
1. WHEN 玩家进入皮肤商店 THEN 系统 SHALL 展示所有可购买的坦克皮肤,按分类展示:基础皮肤(金币购买)、高级皮肤(钻石购买)、限定皮肤(活动/赛季获取)。
|
||||
2. WHEN 玩家购买皮肤 THEN 系统 SHALL 扣除对应货币并解锁皮肤,皮肤永久拥有。
|
||||
3. WHEN 玩家装备皮肤 THEN 系统 SHALL 在所有游戏模式中展示该皮肤外观。
|
||||
4. WHEN 皮肤为限定类型(赛季限定/节日限定) THEN 系统 SHALL 在限定期结束后下架,已购买的玩家永久保留。
|
||||
5. WHEN 玩家查看皮肤详情 THEN 系统 SHALL 展示皮肤预览、价格、获取途径等信息。
|
||||
|
||||
---
|
||||
|
||||
### 需求 8:体力系统
|
||||
|
||||
**用户故事:** 作为游戏运营方,我希望通过体力系统控制玩家游戏节奏,以便创造付费点并提升玩家留存。
|
||||
|
||||
#### 验收标准
|
||||
|
||||
1. WHEN 玩家开始一局经典模式或无尽模式 THEN 系统 SHALL 消耗1点体力。
|
||||
2. WHEN 玩家体力不足 THEN 系统 SHALL 阻止进入关卡,并展示体力恢复选项(等待自然恢复/观看广告/钻石购买)。
|
||||
3. WHEN 体力未满 THEN 系统 SHALL 每6分钟自动恢复1点体力,体力上限为20点。
|
||||
4. WHEN 玩家使用钻石购买体力 THEN 系统 SHALL 立即恢复满体力(每日钻石购买上限3次,价格递增:5/10/20钻石)。
|
||||
5. WHEN 玩家进行双人对战或3v3对战 THEN 系统 SHALL 不消耗体力(PvP模式免体力)。
|
||||
|
||||
---
|
||||
|
||||
### 需求 9:付费节奏与引导
|
||||
|
||||
**用户故事:** 作为游戏运营方,我希望根据玩家生命周期阶段推送合适的付费引导,以便提高付费转化率。
|
||||
|
||||
#### 验收标准
|
||||
|
||||
##### 9.1 新手期(1-3天)
|
||||
1. WHEN 新用户首次进入游戏 THEN 系统 SHALL 在24小时内展示1元新手礼包弹窗(最多展示3次)。
|
||||
2. WHEN 新用户首次遇到插屏广告 THEN 系统 SHALL 展示"去广告特权"推荐入口。
|
||||
|
||||
##### 9.2 成长期(4-14天)
|
||||
3. WHEN 玩家累计登录达4天 THEN 系统 SHALL 在商店页面高亮展示月卡推荐。
|
||||
4. WHEN 玩家累计登录达7天 THEN 系统 SHALL 推送钻石充值促销活动(限时加赠20%)。
|
||||
|
||||
##### 9.3 成熟期(15天+)
|
||||
5. WHEN 玩家累计登录达15天且赛季进行中 THEN 系统 SHALL 推送战斗通行证购买引导。
|
||||
6. WHEN 新赛季开始 THEN 系统 SHALL 向成熟期玩家推送限量皮肤预告。
|
||||
|
||||
---
|
||||
|
||||
### 需求 10:未成年人保护与合规
|
||||
|
||||
**用户故事:** 作为游戏运营方,我希望游戏符合未成年人保护法规和平台合规要求,以便合法合规运营。
|
||||
|
||||
#### 验收标准
|
||||
|
||||
##### 10.1 未成年人保护
|
||||
1. WHEN 系统识别到未成年用户 THEN 系统 SHALL 在22:00-8:00期间禁止登录游戏。
|
||||
2. WHEN 未成年用户进行消费 THEN 系统 SHALL 限制月消费上限为¥400,单次消费超过¥50时弹出确认提示。
|
||||
3. WHEN 未成年用户观看广告 THEN 系统 SHALL 限制每日广告展示不超过5次。
|
||||
|
||||
##### 10.2 概率公示
|
||||
4. WHEN 游戏中存在随机奖励机制(宝箱、抽奖等) THEN 系统 SHALL 在对应界面明确公示所有物品的掉落概率。
|
||||
|
||||
##### 10.3 退款与数据隐私
|
||||
5. WHEN 玩家申请退款 THEN 系统 SHALL 符合微信小游戏退款规范,支持合理退款请求。
|
||||
6. WHEN 游戏收集用户数据 THEN 系统 SHALL 明确告知数据收集范围,并提供关闭选项。
|
||||
|
||||
##### 10.4 反作弊
|
||||
7. WHEN 系统检测到同一广告源IP短时间内大量请求 THEN 系统 SHALL 触发广告反刷机制,限制该IP的广告展示。
|
||||
8. WHEN 系统检测到异常大额充值行为 THEN 系统 SHALL 触发人工审核流程。
|
||||
9. WHEN 系统检测到对局数据异常(如不可能的击杀数/速度) THEN 系统 SHALL 标记该账号并进行封禁处理。
|
||||
|
||||
---
|
||||
|
||||
## 边界情况与技术约束
|
||||
|
||||
### 边界情况
|
||||
1. **广告加载失败**:激励视频加载失败时,应提供备选方案(提示稍后重试),不阻塞玩家正常流程。
|
||||
2. **支付异常**:支付过程中网络中断时,需在网络恢复后自动查询订单状态并补发商品。
|
||||
3. **跨设备同步**:玩家换设备登录时,所有购买记录和货币余额需从云端恢复。
|
||||
4. **赛季切换**:赛季结束时,未领取的通行证奖励需给予一定的缓冲期(如3天)供玩家领取。
|
||||
5. **月卡续费失败**:自动续费失败时,需通知玩家并保留3天的权益缓冲期。
|
||||
6. **货币溢出**:金币/钻石数量需设置合理上限,防止数值溢出。
|
||||
|
||||
### 技术约束
|
||||
1. 微信小游戏内购需通过微信支付接口(`wx.requestMidasPayment`)完成,需接入米大师虚拟支付。
|
||||
2. 广告SDK需使用微信小游戏广告组件(`wx.createRewardedVideoAd`、`wx.createInterstitialAd`)。
|
||||
3. 所有货币和商品数据需服务端校验,防止客户端篡改。
|
||||
4. 通行证和赛季数据需服务端管理赛季时间和奖励配置。
|
||||
5. 未成年人识别依赖微信平台提供的用户年龄信息接口。
|
||||
|
||||
### 成功标准
|
||||
1. 激励视频广告转化率 ≥ 8%(复活场景)。
|
||||
2. 付费率 ≥ 3%,ARPPU ≥ ¥50。
|
||||
3. 高级通行证购买率 ≥ 5%。
|
||||
4. 广告展示不影响核心游戏体验(玩家满意度调查 ≥ 4/5)。
|
||||
5. 所有内购流程零丢单率(支付成功但未发货的情况为0)。
|
||||
@@ -0,0 +1,234 @@
|
||||
# 实施计划:坦克大作战商业化
|
||||
|
||||
> 基于 [requirements.md](./requirements.md) 商业化需求文档,按版本阶段拆解为可执行的编码任务。
|
||||
|
||||
---
|
||||
|
||||
## V1.0 基础版 — 激励广告 + 插屏广告
|
||||
|
||||
- [ ] 1. 扩展 AdManager,实现场景化广告触发与频控机制
|
||||
- [ ] 1.1 在 `js/managers/AdManager.js` 中新增广告场景枚举(REVIVE、DOUBLE_REWARD、CHEST_SPEED、STAMINA、FREE_GIFT),为每个场景维护独立的冷却计时器(15分钟内不重复展示同一场景广告)
|
||||
- 新增 `_sceneCooldowns` Map 和 `canShowScene(sceneType)` 方法
|
||||
- 新增 `showRewardedVideoForScene(sceneType, callback)` 方法,内部调用 `canShowScene` 检查后再调用 `showRewardedVideo`
|
||||
- 新增每日广告次数计数(体力恢复场景每日上限5次),使用 StorageManager 持久化当日计数
|
||||
- _需求:1.6 广告体验优化(验收标准15、16、17)、1.4 体力恢复广告(验收标准12)_
|
||||
|
||||
- [ ] 1.2 在 `js/managers/AdManager.js` 中实现广告预加载机制
|
||||
- 新增 `preloadRewardedVideo()` 方法,在关卡加载时提前调用
|
||||
- 在 GameScene 和 TeamGameScene 的初始化阶段调用预加载
|
||||
- _需求:1.6 广告体验优化(验收标准15)_
|
||||
|
||||
- [ ] 1.3 优化插屏广告频控逻辑
|
||||
- 将现有的 `_gamesPlayed` 计数改为基于"距上次展示的局数"判断(每3局展示一次)
|
||||
- 确保 `_adFreeEnabled` 标志正确跳过所有插屏广告
|
||||
- 插屏广告加载失败时静默跳过,不阻塞流程
|
||||
- _需求:2 插屏广告(验收标准1、2、3、4)_
|
||||
|
||||
- [ ] 2. 实现复活续关广告功能
|
||||
- [ ] 2.1 在 `js/scenes/GameScene.js` 的玩家死亡流程中集成复活广告
|
||||
- 在玩家生命数降为0时,弹出"观看广告复活"弹窗(而非直接进入失败结算)
|
||||
- 新增 `_showReviveAdDialog()` 方法,展示选择界面(观看广告 / 放弃)
|
||||
- 新增 `_reviveAdUsed` 标志,确保每关最多使用1次复活
|
||||
- 观看完成后调用 `_revivePlayer()` 方法:保留火力等级,在出生点重生,恢复1条生命
|
||||
- 选择放弃或广告不可用时,正常进入失败结算
|
||||
- _需求:1.1 复活续关广告(验收标准1、2、3、4)_
|
||||
|
||||
- [ ] 2.2 在 `js/scenes/TeamGameScene.js` 中同步实现 PvP 模式的复活广告(如适用)
|
||||
- 根据 PvP 模式规则决定是否支持复活广告(可配置开关)
|
||||
- _需求:1.1 复活续关广告(验收标准1)_
|
||||
|
||||
- [ ] 3. 实现双倍结算广告功能
|
||||
- [ ] 3.1 在 `js/scenes/ResultScene.js` 的结算界面中添加"双倍奖励"按钮
|
||||
- 在结算界面新增"观看广告获得双倍奖励"按钮
|
||||
- 调用 `AdManager.showRewardedVideoForScene('DOUBLE_REWARD', callback)`
|
||||
- 观看完成后将金币和经验值翻倍显示并发放
|
||||
- 广告加载失败时提示"广告暂时不可用",按正常倍率发放
|
||||
- _需求:1.2 双倍结算广告(验收标准5、6、7)_
|
||||
|
||||
- [ ] 3.2 在 `js/scenes/TeamResultScene.js` 中同步实现 PvP 结算的双倍奖励广告
|
||||
- _需求:1.2 双倍结算广告(验收标准5、6、7)_
|
||||
|
||||
- [ ] 4. 在结算流程中集成插屏广告触发
|
||||
- 在 ResultScene 和 TeamResultScene 退出关卡时调用 `AdManager.showInterstitial()`
|
||||
- 确保去广告特权用户不展示
|
||||
- _需求:2 插屏广告(验收标准1、2、3)_
|
||||
|
||||
---
|
||||
|
||||
## V1.5 内购版 — 货币体系 + 支付 + 皮肤商店
|
||||
|
||||
- [ ] 5. 实现货币系统(CurrencyManager)
|
||||
- [ ] 5.1 新建 `js/managers/CurrencyManager.js`,实现金币和钻石的管理
|
||||
- 实现 `getGold()` / `addGold(amount)` / `spendGold(amount)` 方法
|
||||
- 实现 `getDiamonds()` / `addDiamonds(amount)` / `spendDiamonds(amount)` 方法
|
||||
- 所有货币变动通过 EventBus 发送事件(`currency:gold:changed`、`currency:diamonds:changed`),供 UI 监听更新
|
||||
- 使用 StorageManager 持久化货币数据,并纳入云同步数据
|
||||
- 设置货币上限防止溢出(金币上限999999,钻石上限99999)
|
||||
- _需求:3.1 金币系统(验收标准1、2、3)、3.2 钻石系统(验收标准5、6、7)_
|
||||
|
||||
- [ ] 5.2 在 `js/base/GameGlobal.js` 中注册 CurrencyManager 实例
|
||||
- 在全局初始化流程中创建并挂载 `GameGlobal.currencyManager`
|
||||
- _需求:3.1、3.2_
|
||||
|
||||
- [ ] 5.3 在 ResultScene / TeamResultScene 的结算逻辑中集成金币发放
|
||||
- 根据击杀数、通关时间等计算金币奖励并调用 `CurrencyManager.addGold()`
|
||||
- _需求:3.1 金币系统(验收标准1)_
|
||||
|
||||
- [ ] 6. 实现体力系统(StaminaManager)
|
||||
- [ ] 6.1 新建 `js/managers/StaminaManager.js`,实现体力管理
|
||||
- 实现 `getStamina()` / `consumeStamina()` / `recoverStamina(amount)` 方法
|
||||
- 实现自然恢复逻辑:每6分钟恢复1点,上限20点,使用定时器 + 离线时间差计算
|
||||
- 实现钻石购买体力:每日上限3次,价格递增(5/10/20钻石)
|
||||
- 实现广告恢复体力:每次恢复5点,每日上限5次
|
||||
- 通过 EventBus 发送 `stamina:changed` 事件
|
||||
- 使用 StorageManager 持久化体力值和上次恢复时间戳
|
||||
- _需求:8 体力系统(验收标准1、2、3、4、5)、1.4 体力恢复广告(验收标准10、11、12)_
|
||||
|
||||
- [ ] 6.2 在 GameScene 开始关卡前检查体力
|
||||
- 进入经典模式/无尽模式前调用 `StaminaManager.consumeStamina()`
|
||||
- 体力不足时弹出恢复选项弹窗(等待/广告/钻石)
|
||||
- PvP 模式(TeamGameScene)不消耗体力
|
||||
- _需求:8 体力系统(验收标准1、2、5)_
|
||||
|
||||
- [ ] 7. 实现支付模块(PaymentManager)
|
||||
- [ ] 7.1 新建 `js/managers/PaymentManager.js`,封装微信支付接口
|
||||
- 封装 `wx.requestMidasPayment` 调用,实现 `purchase(productId, callback)` 方法
|
||||
- 实现订单状态查询和补发逻辑(网络中断后自动重试)
|
||||
- 实现商品配置表:去广告特权(¥30)、月卡(¥12)、钻石包(¥6/¥30/¥68)、新手礼包(¥1)、皮肤礼包(¥18-68)、高级通行证(¥18)
|
||||
- 购买成功后通过 EventBus 发送 `purchase:completed` 事件
|
||||
- 将购买记录同步至 StorageManager 和云端
|
||||
- _需求:4.6 支付与安全(验收标准15、16、17)_
|
||||
|
||||
- [ ] 7.2 实现去广告特权购买逻辑
|
||||
- 购买成功后调用 `AdManager.enableAdFree()`
|
||||
- 保留激励视频入口,仅移除插屏广告
|
||||
- _需求:4.1 去广告特权(验收标准1、2、3)_
|
||||
|
||||
- [ ] 7.3 实现钻石充值包购买逻辑
|
||||
- 按规格发放钻石(60/360/880),首充双倍
|
||||
- 使用 StorageManager 记录首充状态
|
||||
- _需求:4.3 钻石充值包(验收标准8、9)_
|
||||
|
||||
- [ ] 7.4 实现新手礼包逻辑
|
||||
- 新用户首次进入游戏后24小时内展示购买入口
|
||||
- 倒计时结束后自动移除入口
|
||||
- _需求:4.5 新手礼包(验收标准13、14)_
|
||||
|
||||
- [ ] 8. 实现皮肤系统与商店场景
|
||||
- [ ] 8.1 新建 `js/data/SkinData.js`,定义皮肤配置数据
|
||||
- 定义皮肤分类(基础/高级/限定)、价格(金币/钻石)、获取途径、皮肤资源映射
|
||||
- _需求:7 皮肤商店系统(验收标准1、5)_
|
||||
|
||||
- [ ] 8.2 新建 `js/managers/SkinManager.js`,实现皮肤解锁与装备管理
|
||||
- 实现 `getOwnedSkins()` / `unlockSkin(skinId)` / `equipSkin(skinId)` / `getCurrentSkin()` 方法
|
||||
- 使用 StorageManager 持久化已解锁皮肤和当前装备
|
||||
- 纳入云同步数据
|
||||
- _需求:7 皮肤商店系统(验收标准2、3、4)_
|
||||
|
||||
- [ ] 8.3 新建 `js/scenes/ShopScene.js`,实现商店界面
|
||||
- 展示皮肤列表(分类标签页:基础/高级/限定)
|
||||
- 展示皮肤预览、价格、购买/装备按钮
|
||||
- 集成 CurrencyManager 扣款和 SkinManager 解锁
|
||||
- 展示去广告特权、钻石充值包等 IAP 商品入口
|
||||
- _需求:7 皮肤商店系统(验收标准1、2、5)、4.1、4.3_
|
||||
|
||||
- [ ] 8.4 在 `js/scenes/MenuScene.js` 中添加商店入口按钮
|
||||
- 点击后通过 SceneManager 跳转到 ShopScene
|
||||
- _需求:7 皮肤商店系统_
|
||||
|
||||
- [ ] 8.5 在 Tank 渲染逻辑中集成皮肤系统
|
||||
- 修改 `js/entities/Tank.js` 或 `PlayerTank.js`,根据 `SkinManager.getCurrentSkin()` 加载对应皮肤资源
|
||||
- _需求:7 皮肤商店系统(验收标准3)_
|
||||
|
||||
---
|
||||
|
||||
## V2.0 赛季版 — 战斗通行证 + 任务体系
|
||||
|
||||
- [ ] 9. 实现战斗通行证系统(BattlePassManager)
|
||||
- [ ] 9.1 新建 `js/data/BattlePassData.js`,定义赛季配置
|
||||
- 定义赛季时长(28天)、等级数(免费20级/高级40级)、每级奖励内容
|
||||
- 定义每日任务池、每周任务池、赛季成就列表及对应经验值
|
||||
- _需求:5.1 赛季基础设计(验收标准1、2、3)、5.2 任务体系(验收标准5、6、7)_
|
||||
|
||||
- [ ] 9.2 新建 `js/managers/BattlePassManager.js`,实现通行证核心逻辑
|
||||
- 实现赛季状态管理:当前赛季ID、开始/结束时间、玩家等级、经验值
|
||||
- 实现 `addExp(amount)` / `getLevel()` / `claimReward(level)` 方法
|
||||
- 实现免费/高级通行证奖励轨道区分
|
||||
- 实现任务生成与完成追踪(每日3+2任务、每周5+3任务、赛季10成就)
|
||||
- 赛季结束时保留赛季币余额,提供3天奖励领取缓冲期
|
||||
- 使用 StorageManager 持久化赛季进度
|
||||
- _需求:5.1(验收标准1、2、3、4)、5.2(验收标准5、6、7、8)_
|
||||
|
||||
- [ ] 9.3 新建 `js/scenes/BattlePassScene.js`,实现通行证界面
|
||||
- 展示等级进度条、免费/高级奖励轨道
|
||||
- 展示每日任务、每周任务、赛季成就列表及完成状态
|
||||
- 高级通行证购买入口(集成 PaymentManager)
|
||||
- 免费玩家达到10级时展示高级版奖励预览
|
||||
- 赛季剩余不足3天时展示8折优惠
|
||||
- _需求:5.1(验收标准2、3、4)、5.3 转化策略(验收标准9、10)_
|
||||
|
||||
- [ ] 9.4 在 MenuScene 中添加通行证入口,在 GameScene/TeamGameScene 结算时触发任务进度更新
|
||||
- 对局结束后检查并更新任务完成状态(如"击杀N个敌人"、"通关N次"等)
|
||||
- _需求:5.2 任务体系(验收标准8)_
|
||||
|
||||
- [ ] 10. 实现月卡系统
|
||||
- [ ] 10.1 在 `js/managers/PaymentManager.js` 中新增月卡购买与状态管理
|
||||
- 实现月卡有效期检查、每日登录领取100钻石、专属头像框解锁/过期
|
||||
- 使用 StorageManager 记录月卡购买时间和每日领取状态
|
||||
- _需求:4.2 月卡(验收标准4、5、6)_
|
||||
|
||||
- [ ] 10.2 在游戏启动流程中检查月卡状态并弹出每日领取弹窗
|
||||
- _需求:4.2 月卡(验收标准5)_
|
||||
|
||||
---
|
||||
|
||||
## V2.5 社交版 — 分享裂变 + 付费引导 + 合规
|
||||
|
||||
- [ ] 11. 扩展 ShareManager,实现分享激励体系
|
||||
- [ ] 11.1 在 `js/managers/ShareManager.js` 中新增分享奖励逻辑
|
||||
- 每日首次分享发放50金币(通过 CurrencyManager)
|
||||
- 分享战绩概率发放稀有道具,每日上限3次
|
||||
- 使用 StorageManager 记录每日分享次数和奖励领取状态
|
||||
- _需求:6.1 分享激励(验收标准1、4)_
|
||||
|
||||
- [ ] 11.2 实现邀请新用户奖励机制
|
||||
- 新用户完成新手引导后,向邀请者发放200金币(每日上限5人)
|
||||
- 新用户获得双倍经验卡(3天有效期)
|
||||
- 实现 IP + 设备指纹去重防作弊(服务端校验)
|
||||
- _需求:6.1 分享激励(验收标准2、3)、6.2 防作弊机制(验收标准6、7)_
|
||||
|
||||
- [ ] 12. 实现付费节奏引导系统
|
||||
- [ ] 12.1 新建 `js/managers/PromotionManager.js`,实现生命周期付费引导
|
||||
- 根据玩家累计登录天数判断所处阶段(新手期/成长期/成熟期)
|
||||
- 新手期(1-3天):展示新手礼包弹窗(最多3次)、去广告特权推荐
|
||||
- 成长期(4-14天):高亮月卡推荐、钻石充值促销(限时加赠20%)
|
||||
- 成熟期(15天+):推送通行证购买引导、限量皮肤预告
|
||||
- 使用 StorageManager 记录弹窗展示次数和登录天数
|
||||
- _需求:9.1(验收标准1、2)、9.2(验收标准3、4)、9.3(验收标准5、6)_
|
||||
|
||||
- [ ] 12.2 在 `game.js` 启动流程和 MenuScene 中集成 PromotionManager 的引导触发
|
||||
- 登录时检查阶段并展示对应引导弹窗
|
||||
- _需求:9 付费节奏与引导_
|
||||
|
||||
- [ ] 13. 实现未成年人保护与合规机制
|
||||
- [ ] 13.1 新建 `js/managers/ComplianceManager.js`,实现合规检查
|
||||
- 实现未成年人识别(调用微信平台用户年龄信息接口)
|
||||
- 实现游戏时间限制:22:00-8:00禁止未成年人登录
|
||||
- 实现消费限制:月消费上限¥400,单次>¥50弹出确认
|
||||
- 实现广告展示限制:未成年人每日广告不超过5次
|
||||
- _需求:10.1 未成年人保护(验收标准1、2、3)_
|
||||
|
||||
- [ ] 13.2 在宝箱/抽奖等随机奖励界面添加概率公示
|
||||
- 在对应 UI 中明确展示所有物品的掉落概率
|
||||
- _需求:10.2 概率公示(验收标准4)_
|
||||
|
||||
- [ ] 13.3 在服务端 `server/index.js` 中新增反作弊检测逻辑
|
||||
- 广告反刷:同一IP短时间大量请求时限制广告展示
|
||||
- 异常充值检测:大额充值触发人工审核标记
|
||||
- 对局数据校验:异常击杀数/速度标记封禁
|
||||
- _需求:10.4 反作弊(验收标准7、8、9)_
|
||||
|
||||
- [ ] 14. 国际化支持:为所有商业化 UI 文案添加 i18n 翻译
|
||||
- 在 `js/i18n/zh.js` 和 `js/i18n/en.js` 中新增商店、通行证、体力、货币、弹窗等所有商业化相关的翻译键值
|
||||
- 确保所有新增场景和弹窗使用 `I18n.t()` 获取文案
|
||||
- _需求:全部商业化需求的 UI 文案_
|
||||
Reference in New Issue
Block a user