Skip to content

完整专题大纲

这是后续重写 docs/ 的完整地图。所有专题都按“源码事实 -> 调用链 -> 源码取舍 -> 验证重点 -> 本章边界”的结构展开。

第一组:基础架构

  1. 研究方法与证据分级
  2. 进程拓扑与职责切分
  3. 主循环、Tick 与事件分发
  4. 网络 I/O 模型选择
  5. Mercury 协议与可靠 UDP
  6. 通信抽象、接口定义与组件间 RPC
  7. 收发路径、背压与故障注入

第二组:游戏状态模型

  1. 实体模型:Base / Cell / Client 三层语义
  2. EntityDef、属性、方法与协议生成
  3. 序列化与反序列化:BinaryStream、DataType、DataDescription
  4. AOI、Witness、Ghost 与带宽调度
  5. 空间划分、Cell 分区与负载均衡
  6. 实体迁移、Cell 退休与跨进程状态移动
  7. 实体生命周期状态机

第三组:运行时工程

  1. 登录、会话与 Proxy 接管
  2. 线程架构、后台任务与 Python GIL
  3. 时间系统、Timer、GameTime 与测试可控时间
  4. 脚本热更新、解释器切换与实体迁移
  5. 持久化、一致性与数据库线程模型
  6. 动态扩展、控制面与容量治理
  7. Reviver、machined 与故障恢复边界

第四组:工程质量与源码边界

  1. 测试体系、故障注入与覆盖边界
  2. 安全、限流、加密与攻击面
  3. Watcher、Profiler、日志与可观测性
  4. 内存、对象生命周期与资源管理
  5. 构建、平台与依赖治理
  6. MMO 架构边界对比

已明确要覆盖的问题

网络模型

select、poll、LT epoll、ET epoll、io_uring、recvmmsg/sendmmsg、SO_REUSEPORT、AF_XDP/DPDK。

线程模型

单 Reactor 主线程、后台任务、BaseApp WorkerThread、Python GIL、actor-like mailbox 与实体调度边界。

热更新

新解释器加载、旧解释器迁移、EntityType/UDO/Mailbox/实体迁移、生产环境边界。

测试与时间

unit_test、网络故障注入、Timer 驱动、GameTime、虚拟时钟缺口和可重复测试边界。

登录与会话

LoginApp、DBApp、BaseAppMgr、BaseApp、Proxy、SessionKey、PendingLogins 和 NAT/firewall 处理。

实体生命周期

Base-only、pending cell、real、ghost、offload、onload、destroy、restore 和 zombie ghost 状态。

通信与序列化

Mercury Interface、Bundle、BinaryStream、DataType、EntityDescription、协议兼容与 EntityDef 契约。

动态扩展

Manager 接纳新 App、Cell 负载均衡、实体迁移、Reviver 恢复和状态迁移边界。

每章固定输出

每章必须包含:

  • 源码入口
  • 关键调用链
  • 线程/进程归属
  • 数据结构或状态机
  • 源码取舍
  • 源码边界
  • 验证重点
  • 本章边界

如果某项在源码中不存在,文档必须明确写“不存在或未确认”,并解释可能原因,而不是等读者指出后再补。

按源码证据链、源码取舍和验证边界组织,而不是按目录机械罗列。