《移动游戏产品的架构·网络、资源与热更新》前言:卷二的双案例、实验工程与阅读路径

卷二沿用拾光工作室的双案例,把网络与资源拆成 13 章、39 节可运行的判断链。本前言交代案例数字的口径、mga-net-lab 的三档可运行标准、每节的三行代码头如何还原,以及三种不同的阅读路径,帮助读者把「看懂了」变成「能复核」,「感觉快」变成「有账本」。

这一卷的写法

卷二延续卷一的写法:每一节先给一个真实场景,再给一条可复核的规则,最后给一个能运行的产物。区别在于,卷二的产物大多与外部系统打交道——网络、商店、CDN、服务端。这些系统没法在本地完整复现,所以本书采用「可运行 + 可建模」的分层写法。

双案例与数字口径

两个案例属于同一 IP、同一工作室:

维度潮汐消消潮汐方舟
形态休闲,弱联网中重度,强联网
DAU80 万25 万
单局 / 单场90 秒8–12 分钟
首包 / 总资源120MB / 480MB350MB / 1.8GB
RTT P95310ms240ms
弱网会话占比22%14%
每会话流量3.2MB18MB
热更节奏双周 12MB每周 45MB

这些数字是案例设定值,用于演练判断口径,不是任何线上产品的实测数据。凡是需要真实测量的指标,本书会明确写出测量方法,而不是给出一个看似精确的数字。

完整的网络与资源事实表在附录 B。全卷所有数字只能来自那张表和卷一附录 B;正文不会出现第二套 DAU、包体或帧率。

三档可运行标准

卷二沿用卷一的分级,但把重点放在「能验证什么」:

档位含义卷二中的例子
L1纯函数或状态机,可直接 node --test退避计算、差量补丁、依赖图环检测
L2需要 mock 外部依赖,可在本地跑通下载器、灰度分组、热更状态机
L3只能建模,给出结构与判定规则商店审核政策、CDN 回源拓扑

每一节正文的代码块都带三行头:

// file: src/net/backoff.ts
// tier: L1
// verify: node --test test/net/backoff.test.ts
  • file 是产物在实验工程中的路径;
  • tier 是这一节的可运行档位;
  • verify 是验证这条产物的命令。

代码块内容与实验工程中的文件逐字节一致。这样做的目的不是让你复制粘贴,而是保证书里的每一段代码都真的跑过测试,而不是示意。

mga-net-lab 的结构

实验工程按主题分目录,每个文件自包含,只依赖 node: 内置模块:

mga-net-lab/
├─ src/net/          连接、协议、重连、离线队列、同步、战报、流量
├─ src/resource/     依赖图、分组、打包、首包、按需下载
├─ src/hotfix/       商店政策、内容边界、失败演练、差量、灰度、回滚
├─ src/cdn/          下载器、CDN 规划、失败降级
├─ src/delivery/     交付流水线
├─ src/lab/          指标矩阵、评审门禁
└─ test/             与 src 镜像

运行方式:

cd mga-net-lab
node --test test/net/*.test.ts
node --test test/resource/*.test.ts
node --test test/hotfix/*.test.ts

要求 Node 26 及以上。代码使用原生类型剥离,不需要编译步骤,也不依赖任何第三方包。

三种阅读路径

路径一:按章顺序。 第 1–3 章建立网络基础,第 4–6 章处理离线与同步,第 7 章算账,第 8–12 章讲资源与交付,第 13 章收口。适合第一次系统梳理这条链路的人。

路径二:按问题查。 线上正在掉线,直接读第 3 章;首包太大,读第 8–9 章;热更出事故,读第 10–11 章;下载失败率高,读第 12 章。每节末尾的「常见错误与边界」可以当作排查清单。

路径三:按产物读。 先看附录 B 的事实表,再挑感兴趣的产物文件,最后回到正文看它解决什么问题。适合已经有架构经验、只想找可复用实现的读者。

与相邻卷的边界

  • 服务端拓扑、战斗同步算法、分布式一致性属于服务端书稿的范围,卷二只写客户端责任与契约。
  • 小游戏平台的买量、版号与出海不在本书范围;卷二只讨论原生 Android/iOS 与渠道包。
  • 卷三讨论商业化与发行工程,卷二只在与支付、活动配置相关的地方提到接口边界。
  • 卷四讨论平台化与长线治理,卷二的流水线与门禁会在卷四被组织成平台能力。

一个约定:先记账,再优化

卷二反复使用一个方法:先记账,再优化。

  • 流量先按「一次会话由哪些消息构成」记账,再谈压缩。
  • 包体先按「首包、分包、按需」记账,再谈瘦身。
  • 热更先按「内容类型 × 平台政策」记账,再谈自动化。
  • 下载先按「分片 × 并发 × 失败率」记账,再谈 CDN 选型。

没有账本的优化,最后都会变成「感觉快了一点」。记账不保证优化成功,但能保证每次优化都可复核。

约定与反馈

文中的公司、产品、人物均为虚构;数字为案例设定;代码为教学用最小实现,直接用于生产前需要补齐错误处理、日志、安全校验与平台适配。

如果某一节的产物在你的环境里跑不通,先检查 Node 版本与文件路径,再对照三行头确认引用的是同一份文件。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「books」更多文章

  1. 《移动游戏产品的架构·商业化与发行工程》附录 C 商业化与发行评审清单
  2. 《移动游戏产品的架构·商业化与发行工程》附录 B 双案例商业化事实表
  3. 《移动游戏产品的架构·商业化与发行工程》附录 A 商业化与发行术语速查