跳转至

修仙成长线 · 异步对战与离线优先 v0.2#

本作是单机买断(08 商业化方案),但敌方盘面希望来自真实玩家, 且后续要开异步对战(斗法台,03 § 7)。 这两件事不冲突,但架构必须现在就定——离线优先是回不去的决定。 起草 2026-08-31 | v0.2(2026-09-04):§ 6.2「斗法台不能变成天梯」由红线降为范围决定。 原论证把"频繁削弱"(运营行为)与"有排名"(结构)当成了因果。 天梯第一版不做,之后可评估;新增「加天梯之后防作弊成本上升」与「四档成本」两节。 § 五的三层防线对幽灵池质量完全够用——它的前提正是没有排名。


一、结论#

采用「离线优先 + 幽灵快照包」架构。

玩家盘面 → 快照 → 服务器聚合 → 幽灵包随版本/补丁下发 → 本地库
                                                        ↓
                                        断网时照常从本地库匹配对手
敌方盘面来源 断网能否玩 服务器角色
A 纯本地 算法生成 能 无
B 离线优先(选定) 真实玩家快照,预置 + 增量下发 能,完整通关 仅同步,可失败
C 实时拉取(大巴扎) 每次匹配在线拉取 不能 强依赖

二、为什么 B 在本作特别成立#

2.1 战斗是确定性的#

大巴扎的战斗零操作、全自动,构筑和摆位决定一切 (xiuxian-doc/大巴扎拆解/UI/09-combat.md 原文:「战斗零操作,物品按冷却自动触发」)。

于是:

一份盘面快照 + 一个随机种子 = 一场可完整复现的战斗。

对手不需要在线,不需要实时同步,甚至不需要存在——他只是一组数据。

2.2 幽灵数据小到可以直接打进包体#

一份幽灵要存的全部东西:

字段 估算 说明
物品 × ≤10 卡 id 2B + 品阶 3bit + 附魔 4bit + 计数器 varint 全库 1503 张,11 bit 足够索引
功法 × ~5 同上,无附魔
玩家属性 生命上限 / 境界 / 层数 / 灵根 / 磨砺 ~10 B
元数据 境界、回合数、强度分桶、道号、面具 ID、含 DLC 内容 1 bit ~22 B

面具 ID 与 DLC 标志位必须现在就留(v0.2 新增)。本作全部资源随包体下发, 按授权解锁——所以未购买 DLC 的玩家照样渲染得出 DLC 的面具与卡面, 显示层不存在缺资源的问题。面具 ID 只要 1~2 字节,而格式是回不去的决定(§ 一): 现在不留,以后想让残影有面孔就得改格式、重刷池子。

「道号 + 面具」正是原著里匿名修士的标准形象(11 § 2.1): 地下拍卖会上人人戴面具、斗篷掩住本来面目;而道号本来就是化名—— 韩立长期借用旧友厉飞雨的名字,自称海外散修。

于是 § 6.2 那句"你击败了 XX 道友的残影"变得彻底自洽——你本来就不该知道那是谁。 道号字段无需做实名映射,它在世界观里就该是假的。

DLC 标志位同理——记录,但默认不用它过滤(理由见 11 § 十)。 它是一个零成本的开关,留着以备将来数据说话。

单份幽灵 ≈ 200 ~ 300 字节(二进制)
5 万份   ≈ 15 MB

15 MB 换「完全离线,且对手是真人构筑」。 首发包体里预置 5 万份, 按单局 ~50 场战斗算,玩家打一千局也刷不重。

对比 C 架构的代价:调研里 8% 的差评是"服务器 / QoL 缺失", 大巴扎连倍速都做不了,官方理由就是"服务器不支持"。 我们花 15 MB 包体,买下的是永远不会有这条差评。


三、幽灵的生命周期#

3.1 什么时候采样#

不让玩家选上传哪一个盘面——会被挑最强的传,池子迅速失真。

自动采样,固定时机:

时机 采什么
每个境界突破的那一刻 该境界的最终盘面(炼气/筑基/金丹各一份)
坐化时 死前盘面(这类幽灵尤其珍贵——它是"没走通的构筑")
结婴成功 终局盘面

一局最多产出 4 份。坐化盘面必须要:一个池子里若全是通关者的盘面, 新手在炼气期会撞上一堆完成度过高的对手。

3.2 上传与更新#

动作 时机 失败了怎么办
上传本地积攒的快照 启动时 / 退出时,批量,非阻塞 静默丢弃或留到下次,不提示玩家
拉取增量幽灵包 同上 用本地已有的,不提示玩家

两个动作都不能阻塞任何游戏流程。 玩家永远不该看到"正在连接服务器"。

3.3 分桶匹配#

幽灵入库时按三个维度分桶,本地匹配时按桶取:

境界(炼气/筑基/金丹) × 境界内进度(初/中/后/圆满) × 强度分档(普通/精英/首领)

强度由服务器侧离线算(盘面品阶总和、功法叠加次数、历史胜率),不由客户端上报。

03 § 7 的问道(主动选高一境界对手)就是跨桶取—— 取上一档境界的幽灵,这一条现成支持。


四、冷启动#

EA 上线时没有任何玩家盘面。三个来源,按优先级:

# 来源 数量目标 注意
1 开发期内部刷 3000+ 跑通完整流程,把盘面存下来,人工筛掉不像人打的
2 AI 生成打底 20000+ 见下
3 EA 玩家自然产出 滚动 上线后自动接管

AI 生成的幽灵必须"像人"#

全是最优解的盘面一眼假。 真人盘面的特征是:

  • 有一两件明显该卖掉却留着的东西(舍不得,或者没凑够钱换)
  • 属性不纯(灵根 +N% 只吃到一半)
  • 品阶参差(一件黄金配三件青铜)
  • 偶尔有完全不成立的构筑(新手局)

生成器要按这些特征加噪,而不是求最优。

这一条直接对应 04 样例局:朱重八四十年里的盘面是"两件木胎 + 一面铜镜"、 "全是青木之属却打不动"——那种盘面才是幽灵池的主体,不是终局的完美构筑。


五、防作弊#

单机客户端可以伪造盘面。三层防线,都在服务器侧:

层 做什么
规则校验 格数 ≤ 该等级上限、卡牌存在、品阶分布符合该境界的 shop_odds、附魔合法
统计剔除 入库后跟踪胜率,异常高或异常低的自动下架(前者是作弊,后者是垃圾数据)
采样限流 单账号单位时间内的上传上限

不做实时反作弊,不封号。 这是单机游戏——作弊者伤害的是幽灵池质量, 不是别人的排名(因为没有排名,见下)。剔除数据即可,不必上手段。


六、一条红线,一条范围决定#

6.1 断网必须能完整通关#

08 商业化方案的商店页第一屏要写"单机买断"。这个承诺一旦做出就收不回。

异步对战只能是加分项:

  • 断网 → 用本地幽灵库,全流程无提示、无降级说明
  • 联网 → 幽灵更新鲜、能上传自己的盘面、斗法台可用

验收标准:把网线拔掉,从新建存档打到结婴,全程不出现任何联网相关的 UI。

6.2 天梯:第一版不做,但不是红线#

v0.2 修订。 上一版把「斗法台做成天梯」列为红线,论证是 "一旦有可比较的跨局分数,22% 的平衡焦虑差评就原样请回来"。 那是把相关当成了因果。

那 22% 骂的是「频繁削弱」——一个运营行为,不是一个结构。 有天梯的游戏可以不乱砍,没天梯的游戏照样能靠乱砍把人气走。 08 § 五对「角色单卖」的论证更能说明问题:大巴扎"新角色强 → 卖 DLC → 砍废" 的循环是全部差评的发动机——那条链子里根本没有天梯。

真正该写死的是 08 § 五 现在的红线第一行:绝不砍老内容。

第一版不做天梯与排名(08 § 1.1 的范围决定),但这是范围,不是禁令, 且不写进商店页承诺——承诺是单向的,不写以后随时能加,写了再加就是背刺。

加天梯之后,真正上升的成本是防作弊#

§ 五现在的结论是「不做实时反作弊,不封号」,理由的原文是:

作弊者伤害的是幽灵池质量,不是别人的排名(因为没有排名)。剔除数据即可。

这条"省事"的结论,前提恰恰就是没有排名。 三层防线(规则校验 / 统计剔除 / 采样限流)全在服务器侧离线跑,对幽灵池质量完全够用; 但它们不是为名次公信力设计的。

现在 加天梯之后
服务器角色 仅同步,可失败(§ 一) 至少对排名数据必须可信
作弊 剔除数据即可 要真的防,它损害的是别人的名次
客户端 单机,盘面可伪造 伪造直接变成上分手段
运维 聚合与下发,量级很小 持续对抗,量级不封顶

天梯不推翻离线优先(可以离线照玩、联网才上榜), 但它推翻的是"服务器可以不可信"这个前提。

四档成本,差一个数量级#

形态 服务器 防作弊 风险
个人最佳 / 自我对比 不需要 不需要 零
好友榜 轻 轻(作弊只骗朋友) 低
全服永久榜 中 要做 中
赛季榜 + 赛季奖励 重 要做 高——"肝"的来源

真正危险的是最后一档。 调研里 9% 的「肝 / 时间压力」与 11% 的「更新换代太快」 都是赛季制造的,不是排名本身制造的。

所以真要加,建议加到第三档为止:全服永久榜,不做赛季与赛季奖励。 拿到排名的大部分价值,避开那 20% 的差评来源。 「赛季 / 赛季奖励」仍然是 08 § 五 的红线。


七、异步对战绝不做成 DLC#

付费墙会把幽灵池切成两半,两边都变差。

买了的人对手变少,没买的人干脆撞不到真人盘面。 而幽灵池的价值完全来自规模——这是典型的越多人用越好的东西, 任何切分都是负和的。

结论:异步对战走本体免费更新,不进 DLC 清单(08 § 4)。


八、与现有文档的接口#

接口 影响
03 § 7 越级四形态 问道跨桶取上一境界幽灵;斗法台为异步 PvP 本体,须遵守 § 6.2
08 § 5 红线 新增一条:异步对战不做 DLC、不做天梯
08 § 6 结构性优势 "没有天梯"这一条依赖 § 6.2 被遵守
01 § 三 修为来源 斗法台的修为收益需与问道(×3.5)拉开档次
工程本体 幽灵包格式、服务器聚合与校验属服务端,需在 xiuxian-server 立项

九、待办#

  • [ ] 幽灵记录的二进制格式定稿(字段、版本号、向后兼容策略)—— 补丁会改卡表,旧幽灵不能因为加了新卡就全部失效
  • [ ] 强度分桶算法:盘面品阶总和 + 功法叠加次数 + 历史胜率的权重
  • [ ] AI 幽灵生成器的"拟人噪声"参数(该留不留的件、属性纯度、品阶参差)
  • [ ] 内部刷 3000 份幽灵的自动化方案(AI 自动跑局 + 人工抽检)
  • [ ] 道号的 UGC 审核(幽灵带玩家自定义道号,需过滤)
  • [ ] 断网验收用例:拔网线从新建存档打到结婴,全程无联网 UI
  • [ ] 斗法台奖励表设计,且需通过 § 6.2 的红线检查
  • [ ] 服务器成本估算——只做聚合与下发,量级应当很小,需给出年度数字