段位是「长期竞技的记分牌」,赛季是「定期重置的动力源」。二者组合让玩家既有「每一局都在爬升」的即时目标,又有「下个赛季再来」的回访理由。本 PRD 是《在线联机原型全集》的扩展篇之五,聚焦段位分机制与赛季运营。
1. 目标与验证点
| 编号 | 验证能力 | 说明 |
|---|---|---|
| D1 | 段位分机制 | Elo/Glicko 稳定收敛,防刷分 |
| D2 | 段位升降 | 晋级/保级/降级规则,含保护期 |
| D3 | 赛季周期 | 赛季起止、段位重置、结算奖励 |
| D4 | 防掉分机制 | 连胜保护、段位保护、消极惩罚 |
| D5 | 排行榜整合 | 段位排名 + 全球/好友榜 |
一句话目标:让玩家「每局有短期目标、每赛季有长期目标」,并保证段位系统公平、可信、防作弊。
2. 系统架构
flowchart TD
A["Match Result"] -->|elo diff| B["Rating Engine"]
B --> C["Rating Store (Redis)"]
B -->|update| D["Rank Tier Logic"]
D --> E["Season Manager"]
E -->|periodic| F["Season Reward"]
C --> G["Leaderboard (Redis ZSet)"]
G --> H["Rank Panel"]
说明:
- Rating Engine:计算段位分增减(Elo 或 Glicko-2)
- Rank Tier Logic:把隐藏分映射到可见段位(青铜→王者)
- Season Manager:赛季时钟、重置逻辑、结算
- Leaderboard:ZSet 实时排名 + 分片归档
3. 段位分机制
3.1 Elo vs Glicko-2
| 维度 | Elo | Glicko-2 |
|---|---|---|
| 计算量 | 简单 | 较复杂 |
| 不确定性 | 固定 K 值 | 含 RDS(评级偏差) |
| 新玩家定位 | 慢 | 快(RDS 大时浮动大) |
| 适用 | 休闲快速匹配 | 竞技天梯 |
| 本系统 | 起步用 | 进阶可选 |
3.2 段位分模型
隐藏分 rating → 映射可见段位 tier + 小段 rank
段位示例:
青铜 IV–I → 白银 IV–I → 黄金 IV–I → 铂金 → 钻石 → 王者(按分数排名)
// Elo 更新(K 值随对局数收敛,防刷分)
func updateRating(playerR, opponentR float64, won bool, gamesPlayed int) float64 {
K := 40.0
switch {
case gamesPlayed > 30: K = 20
case gamesPlayed > 100: K = 10
}
expected := 1.0 / (1 + math.Pow(10, (opponentR-playerR)/400))
actual := 0.0
if won {
actual = 1.0
}
return playerR + K*(actual-expected)
}
关键:段位分用隐藏分做匹配与计算,可见段位只做展示——避免玩家「卡在晋级赛边缘」的心理博弈被操纵。
4. 段位升降规则
| 规则 | 说明 |
|---|---|
| 晋级 | 隐藏分跨过段位阈值即升 |
| 降级 | 隐藏分低于阈值持续 N 局才降(避免一局掉段) |
| 保护期 | 新晋级段位有 3-5 局保护,输了不掉 |
| 掉分保护 | 连胜连败时隐藏分波动平滑化 |
4.1 防掉分与消极惩罚
防掉分:
- 段位保护:晋级后 N 局不掉段
- 连胜保护:连胜后输局扣分更少
- 补位保护:玩家被系统补位/重连后输局不扣分
消极惩罚:
- 挂机/恶意送头 → 大幅扣分 + 暂时禁止排位
- 举报核实 → 撤销该局段位分影响
平衡心法:段位系统最怕「赢了没感觉、输了很受伤」。保护机制的核心是降低单局损失的挫败感,而不是降低竞技难度。
5. 赛季周期管理
5.1 赛季节奏
赛季时长:通常 3 个月
赛季流程:预热 → 开启 → 冲刺 → 结算 → 休整 → 新赛季
| 阶段 | 运营动作 |
|---|---|
| 预热 | 预告新赛季主题、重置规则 |
| 开启 | 段位软重置(上赛季分部分继承) |
| 冲刺 | 结算前激励(双倍分、冲榜活动) |
| 结算 | 按最高段位/最终段位发奖 |
| 休整 | 排行榜归档、回顾赛季数据 |
5.2 段位重置策略
| 策略 | 做法 | 影响 |
|---|---|---|
| 硬重置 | 全部回到初始段 | 挫败感强,但公平 |
| 软重置 | 新分 = 旧分 × 系数 + 基准 | 保留成就感,快速归位 |
| 不重置 | 永续累积 | 无赛季动力 |
推荐:软重置为主——老玩家不用重新爬一遍,新玩家有机会赶上。系数通常 0.5-0.7。
6. 结算奖励与回访动力
| 奖励 | 形式 | 目标 |
|---|---|---|
| 段位徽章 | 称号/头像框/特效 | 身份炫耀 |
| 赛季货币 | 可换皮肤/道具 | 消费驱动 |
| 排行榜名次 | 冠军头像、专属称号 | 顶端激励 |
| 赛季报告 | 胜率/最强英雄/高光回放 | 情感回访 |
赛季报告 + 回放是最被低估的回访利器:结算时给玩家一份「本赛季高光回放」(衔接观战回放),点击率与回归率显著提升。
7. 接口与数据模型
| 模块 | 接口 | 描述 |
|---|---|---|
| Rating | POST /rank/result | 上报对局结果,更新隐藏分 |
| Tier | GET /rank/tier/{playerId} | 查询当前段位与进度 |
| Season | GET /season/current | 当前赛季信息 |
| Season | POST /season/settle | 赛季结算(内部定时触发) |
| Leaderboard | GET /rank/board?type=global/friend | 排行榜查询 |
| 表 | 字段 |
|---|---|
player_rating | player_id、rating、rd、tier、season_wins、season_losses |
season_def | id、name、start_at、end_at、reset_ratio、rewards |
season_settle | season_id、player_id、final_tier、peak_tier、reward_issued |
8. 里程碑与验收
M1 段位分引擎(1 周)
✅ Elo 正确收敛,K 值分阶段
M2 段位升降 + 保护(1 周)
✅ 晋级/降级/保护期/消极惩罚全链路
M3 赛季周期(1 周)
✅ 软重置、结算奖励、赛季报告
M4 排行榜(1 周)
✅ 全球/好友榜,实时更新
验收指标:段位分对局数 > 100 后评级准确率收敛;刷分检测准确率(误伤率 < 5%);赛季结算 24h 内完成且奖励不漏发。
9. 相关原型衔接
- 复用#3 匹配系统的队列 → 按隐藏分匹配
- 与#12 团队占点的 Elo/Glicko 排名互通
- 与#24 动态赛事系统联动:赛季末自动触发锦标赛
扩展篇定位:赛季段位是「长期留存」的引擎。它把单局胜负串成一条成长的线,再把这条线按赛季切成一段段可回访的记忆——与成就、回放合起来,构成完整的玩家成长叙事。
延伸阅读
- 「在线联机原型全集」目录(60 个原型全景) — 原型全景索引
- 成就与里程碑系统 — 成长叙事的另一半(扩展篇之二)
- 观战与回放系统 — 赛季报告的回放素材(扩展篇之一)
- AI 陪练机器人 — 排位前的练习场(扩展篇之三)
- [[products]] — 产品原型开发专题
- [[game]] — 游戏服务端实战
最后一扩展篇:跨平台互通与云存档。段位是「你的段位」,跨平台让「你的段位跟着你走」。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。