Skip to content

战令与赛季轨 ​

Category ​

system / 玩法系统(赛季运营件)。节点定位:战令把「一个赛季内的活跃」变成「可展示、可付费、可结算的双轨进度」——赛季窗口、经验等级、双轨奖励、赛季切换四件事。进度事件源与任务系统同管道,赛季重置与体力与次数门控同窗口口径,领取与付费走结算凭证。

Definition ​

战令(Battle Pass/Season Pass)是赛季限定的进度奖励轨:玩家在赛季窗口内靠行为攒经验、逐级解锁奖励,奖励分免费轨与付费轨两列。它与签到的差别:签到按日打卡、奖励固定;战令按行为累计、奖励逐级。它与成就的差别:成就永久只增;战令赛季清零重来。付费轨是一次性 IAP 解锁的「额外一列奖励」,不是抽卡、不参与概率。

Problem ​

战令的坑按出现顺序:

  • 进度事件双计:同一个「完成一局」事件,任务、成就、战令各自订阅,一处幂等没做对就出现进度虚高或三处不一致。
  • 赛季切换清零争议:进度、未领奖励、付费状态三样东西在切换时刻怎么处理没有预案,切换日全是客诉。
  • 买等级与进度并发:玩家一边刷经验一边买等级,两路写同一进度,并发下少加或多加。
  • 付费轨发放失误:解锁付费轨后补发整列历史奖励,漏发、重发都出过事故。
  • 赛季末冲刺负载:截止前最后几小时集中完成赛季任务,事件洪峰冲垮进度管道。

Algorithm ​

结构:赛季定义 + 玩家进度 ​

text
pass_def:                          # 赛季静态配置,运营维护
  season:        s2026q4
  start:         2026-10-01
  end:           2026-12-31
  exp_per_level: 1000              # 线性:每级固定经验
  levels:        60
  free_rewards:  { 1: [item:a], 2: [currency:g100], ... }
  prem_rewards:  { 1: [skin:x], 5: [item:b], ... }

pass_progress:                     # 每玩家每赛季一条
  player:   u1001
  season:   s2026q4
  exp:      4300
  level:    4
  premium:  false
  claimed:  {free: [1,2], prem: []}
  • 等级曲线用线性(每级固定经验):战令的奖励预期要可心算,曲线复杂会让「还差多少到下一级」失去感知锚点
  • claimed 按轨道分开记,领取幂等键 (player, season, track, level)
  • 买等级 = 直接加经验(exp += n * exp_per_level),与打怪攒的经验走同一条入口,等级是经验的纯函数——并发问题退化为单入口幂等

进度:订阅统一事件源,与任务成就同管道 ​

  • 战令不造新事件:订阅与任务、成就同一份 {player, type, key, n, tags} 事件流,各系统各自独立计数——双计的解法不是共享计数器,而是每个系统自己的幂等各自做对
  • 赛季任务(「本周完成 10 局排位」)是任务的窗口重置形态,不是战令内部再造一套任务
  • 事件洪峰:赛季末冲刺靠入口侧限流与批量结算,进度聚合可以延迟(最终一致),不逐事件实时刷等级

领取:两轨两列,凭证入账 ​

轨道解锁条件领取形态
免费轨无达级即领或手动领
付费轨一次性 IAP 解锁 premium达级后领,逐级凭证
  • 解锁付费轨不自动补发历史已过等级的付费奖励——口径做成「解锁后可补领」(玩家自己领,逐级幂等),避免服务端批量补发的漏发重发事故
  • IAP 回调幂等按订单号(与交易、支付与经济系统同口径),解锁写 premium 标记后再谈领取
  • 领取走结算凭证:(player, season, track, level) 去重,重复领取直接跳过

赛季切换:快照、补发、清零 ​

text
赛季结束时(或玩家首次进入新赛季时惰性执行):
  1. 快照旧赛季进度(等级、已领、未领)
  2. 未领奖励 → 生成限时邮件(过期回收,见运营发奖节点)
  3. 新赛季 pass_progress 新建,exp=0, level=0
  4. premium 不继承(行业通行);续购激励用折扣券,不用状态继承
  • 切换的触发用惰性(玩家首次上线时结算)而非定时全量扫:与签到、体力门控同一哲学
  • 未领奖励补发的时效要明显短于一个赛季,避免「上赛季的邮件」堆积到下赛季
  • 排行榜与赛季结算奖励的联动口径见排行榜:赛季榜随赛季重置,战令经验榜(若有)同样

Used By ​

  • Fortnite(商业大逃杀,Epic Games 公开资料):赛季制 Battle Pass 的成型形态——赛季窗口、逐级解锁、付费轨、赛季专属外观限时回收,是本页结构层的直接参照。
  • 炉石传说(商业卡牌,暴雪公开资料):2020 年奖励路线改版把付费轨弱化、免费轨拉长,是「免费轨为主」变体的参照。
  • 原神(商业手游):纪行(付费轨 + 等级购买上限 + 任务驱动经验)是「付费轨 + 任务经验源」的手游变体参照。
  • 王者荣耀 / 和平精英(商业手游腾讯):赛季制战令与赛季段位结算联动,是「战令与赛季结算奖励并行」的参照。
  • 通用开源服务端(Nakama、TrinityCore 等):无内置战令件;Nakama 的 tournaments/leagues 提供赛季化竞赛原语,战令的业务口径属自建——本页为口径归纳。

可参考分析:Fortnite 赛季结构=可参考(赛季窗口/双轨/限时回收直接落本页结构层);炉石免费轨变体=可借鉴(免费轨拉长的差异化,落点 design 树商业化设计);原神纪行=可参考(等级购买与任务经验源落买等级与进度一节);王者赛季联动=可借鉴(与赛季榜联动,落点排行榜页);Nakama 竞赛原语=可借鉴(赛季化承载,落点 server 树 services,本页不展开)。

关系链:赛季结构 → 进度事件 → 双轨领取 → 赛季切换。逐段回答「为什么需要下一个」:

  • 赛季结构定了才谈攒经验——窗口与等级表是进度的容器。
  • 容器有了才接事件——战令不造事件源,订阅统一事件流,各系统幂等各自做对。
  • 进度准了才敢发两列——免费/付费两轨的领取凭证按 (player, season, track, level) 幂等。
  • 领取闭环了才谈切换——快照、补发、清零三步走惰性结算,切换日才不出事故。

上游:任务系统(赛季任务与事件源)、结算(领取与 IAP 凭证)、交易、支付与经济系统(付费解锁订单口径);下游:排行榜(赛季榜联动)、掉落与概率设计(战令奖励的数值侧)、体力与次数门控(赛季窗口与服务器日)。

Reference ​

  • 本页为机制归纳;各商业案例的战令规则(等级数、经验曲线、价格)以各自官方公开信息为准,本页只引结构口径。
  • 术语对照:Battle Pass(战令)、Season(赛季)、Track(轨道)、Premium(付费轨)、Tier/Level(等级)、Season Reset(赛季重置)。

游戏知识体系