posts

《移动游戏产品的架构·客户端与移动运行时》 · 全书目录与章节索引(45 篇)

卷一《客户端与移动运行时》45 篇索引:13 章覆盖双案例与移动约束、四层分层、引擎与壳、生命周期、配置、资源内存、UI、设备、帧率功耗、存档、区域化、可观测性与收口基线,附可运行的 mga-lab 实验工程与三篇附录,每章三节构成一条可复盘的判断链。

全书 45 篇 = 序、前言、目录 3 篇 + 13 章 39 节 + 附录 A/B/C 3 篇。
双案例:《潮汐消消》(休闲)为主案例,《潮汐方舟》(中重度)为对照;两者共用一个发行中台。
正文代码块带 // file: / // tier: / // verify: 头,可在实验工程 mga-lab 中逐字节还原并运行测试。

这本卷回答什么

移动游戏的客户端架构不是「把引擎 API 包一层」,而是在内存、电量、发热、网络、机型五条约束下,决定哪些能力共用、哪些实现隔离。卷一给出这套判断的可执行版本:四层依赖、Host 契约、生命周期状态机、配置契约、资源与内存预算、UI 与输入仲裁、帧预算、存档恢复与可观测性,最后收口到两款产品的客户端基线。

阅读前提

全卷概览

章主题节数核心产物
1架构问题与双案例3src/core/layers.ts, src/core/result.ts
2客户端分层与模块边界3src/core/layers.ts, src/domain/match3.ts
3引擎与原生壳的边界3src/platform/host-mock.ts, src/platform/host.ts
4应用生命周期与恢复3src/runtime/lifecycle.ts, src/runtime/resume.ts
5配置驱动的玩法数据3src/config/schema.ts, src/config/table.ts, src/config/version-migrate.ts
6资源管线与内存3src/resource/cache.ts, src/resource/graph.ts, src/resource/memory-budget.ts
7UI 架构与交互3src/ui/layout-model.ts, src/ui/popup-arbiter.ts, src/ui/screen-stack.ts
8设备与输入适配3src/input/device-tiers.ts, src/input/form-factors.ts, src/input/gesture.ts
9帧率、功耗与发热3src/runtime/frame-budget.ts, src/runtime/thermal.ts
10存档与云存档3src/save/merge.ts, src/save/migrate.ts, src/save/store.ts
11多语言、时区与区域化3src/i18n/catalog.ts, src/i18n/region.ts, src/i18n/timezone.ts
12客户端可观测性3src/obs/crash-model.ts, src/obs/event.ts, src/obs/sampling.ts
13卷一收口:双案例客户端基线3src/lab/module-matrix.ts, src/lab/review-gate.ts, src/resource/perf-baseline.ts

前置

第 1 章 架构问题与双案例

节文章代码产物
1.11.1 一个 IP 两款产品:为什么客户端架构不能按品类复制src/core/layers.ts
1.21.2 移动端约束清单:内存、电量、发热、网络、机型src/core/layers.ts
1.31.3 mga-lab 的分层骨架与验收口径src/core/result.ts

第 2 章 客户端分层与模块边界

节文章代码产物
2.12.1 表现、玩法、系统、平台四层与依赖方向src/core/layers.ts
2.22.2 纯逻辑内核:把玩法从引擎里拆出来src/domain/match3.ts
2.32.3 边界测试:依赖规则写成可执行断言src/core/layers.ts

第 3 章 引擎与原生壳的边界

节文章代码产物
3.13.1 引擎负责什么,原生壳负责什么src/platform/host.ts
3.23.2 桥接层设计:消息、线程与生命周期src/platform/host-mock.ts
3.33.3 双案例壳层差异:轻壳与重壳src/platform/host-mock.ts

第 4 章 应用生命周期与恢复

节文章代码产物
4.14.1 冷启动、热启动与后台挂起src/runtime/lifecycle.ts
4.24.2 状态保存与恢复:快照与操作日志src/runtime/resume.ts
4.34.3 杀进程与异常退出的兜底src/runtime/lifecycle.ts

第 5 章 配置驱动的玩法数据

节文章代码产物
5.15.1 配置 schema 与版本化src/config/schema.ts
5.25.2 校验、引用完整性与灰度src/config/table.ts
5.35.3 策划工作流:从表格到线上src/config/version-migrate.ts

第 6 章 资源管线与内存

节文章代码产物
6.16.1 资源句柄、引用计数与生命周期src/resource/graph.ts
6.26.2 内存水位与低端机降级src/resource/memory-budget.ts
6.36.3 资源泄漏定位与回归src/resource/cache.ts

第 7 章 UI 架构与交互

节文章代码产物
7.17.1 UI 栈、弹窗队列与返回键语义src/ui/screen-stack.ts
7.27.2 多分辨率、刘海屏与安全区src/ui/layout-model.ts
7.37.3 触控仲裁与误触防护src/ui/popup-arbiter.ts

第 8 章 设备与输入适配

节文章代码产物
8.18.1 触控、陀螺仪与传感器抽象src/input/gesture.ts
8.28.2 机型分档与画质策略配置化src/input/device-tiers.ts
8.38.3 平板、折叠屏与异形屏src/input/form-factors.ts

第 9 章 帧率、功耗与发热

节文章代码产物
9.19.1 帧率分级与动态分辨率src/runtime/frame-budget.ts
9.29.2 每帧预算与主线程任务切片src/runtime/frame-budget.ts
9.39.3 功耗与发热的验收方法src/runtime/thermal.ts

第 10 章 存档与云存档

节文章代码产物
10.110.1 存档格式与迁移src/save/store.ts
10.210.2 云存档冲突与合并src/save/merge.ts
10.310.3 防篡改与回滚src/save/migrate.ts

第 11 章 多语言、时区与区域化

节文章代码产物
11.111.1 文本、字体与排版src/i18n/catalog.ts
11.211.2 时区、服务器时间与本地时间src/i18n/timezone.ts
11.311.3 区域化配置与内容分级src/i18n/region.ts

第 12 章 客户端可观测性

节文章代码产物
12.112.1 崩溃、ANR 与卡顿的采集边界src/obs/crash-model.ts
12.212.2 日志分级、采样与隐私脱敏src/obs/sampling.ts
12.312.3 线上问题定位闭环src/obs/event.ts

第 13 章 卷一收口:双案例客户端基线

节文章代码产物
13.113.1 模块矩阵与依赖报告src/lab/module-matrix.ts
13.213.2 性能预算与机型分档基线src/resource/perf-baseline.ts
13.313.3 卷一评审与进入卷二src/lab/review-gate.ts

附录

篇内容
附录 A 术语与指标速查全书统一口径:帧预算、内存水位、包体、崩溃率、Jank 率
附录 B 双案例唯一事实表两款产品的 DAU、平台、机型、包体、帧率、联网与收入结构
附录 C 客户端架构评审清单分层、生命周期、资源、UI、性能、存档、可观测性七组检查项

进入下一卷

卷一给出客户端的静态结构与运行约束。卷二进入网络、资源与热更新:移动网络现实、协议契约、重连、离线队列、战斗同步的客户端责任、流量账、首包与分包、热更政策边界、差量灰度与 CDN 下载。

全部文章 Books game Java Indie golang 客户端开发 Minigame Saas rust Python
books

《移动游戏产品的架构·客户端与移动运行时》1.2 移动端约束清单:内存、电量、发热、网络、机型

方舟立项会上有人问「消消首包 120MB,方舟为什么不能也压到 120MB」。本节把内存、帧预算、包体、机型、联网与稳定性写成统一整数单位的可计算清单,给出双案例差异,说明电量与发热为什么只能用代理建模、不能在本机冒充设备测量,并把清单挂到四个固定检查点上。

9 分钟阅读
书稿 移动游戏 客户端架构
books

《移动游戏产品的架构·客户端与移动运行时》1.1 一个 IP 两款产品:为什么客户端架构不能按品类复制

拾光工作室把《潮汐消消》的客户端架构直接套到《潮汐方舟》,首帧、帧预算与联网假设同时失效。本节用六个运行驱动和一张共享/隔离表说明:品类只决定玩法内容,客户端架构必须按约束重新推导,并把判断写成可运行的层模型与测试,避免下一版被另一张架构图覆盖。

11 分钟阅读
书稿 移动游戏 客户端架构
books

《移动游戏产品的架构·客户端与移动运行时》前言:双案例、实验工程与阅读路径

卷一的使用说明:双案例的口径与各章分工、mga-lab 的目录结构与测试命令、每节固定的六段结构、代码块三行头与 L1/L2 可运行层级的区别,以及顺序读、带问题查、只读产物三类阅读路径和四条读完一卷的自检标准,附与站内其它书稿的分工边界。

6 分钟阅读
书稿 移动游戏 客户端架构
books

《移动游戏产品的架构·客户端与移动运行时》序:为什么移动游戏需要一本产品架构书

移动游戏客户端的问题很少出在「不会用引擎」,而是出在引擎之上没人拍板:分层、恢复、内存、帧预算、存档与可观测性。本序用一个 IP 两款产品的真实分歧说明这本书为什么存在、它明确拒绝写什么,以及四卷如何从客户端运行时一直排到商业化发行与平台化长线治理。

7 分钟阅读
书稿 移动游戏 客户端架构