完整专题大纲
这是后续重写 docs/ 的完整地图。所有专题都按“源码事实 -> 调用链 -> 源码取舍 -> 验证重点 -> 本章边界”的结构展开。
第一组:基础架构
第二组:游戏状态模型
- 实体模型:Base / Cell / Client 三层语义
- EntityDef、属性、方法与协议生成
- 序列化与反序列化:BinaryStream、DataType、DataDescription
- AOI、Witness、Ghost 与带宽调度
- 空间划分、Cell 分区与负载均衡
- 实体迁移、Cell 退休与跨进程状态移动
- 实体生命周期状态机
第三组:运行时工程
- 登录、会话与 Proxy 接管
- 线程架构、后台任务与 Python GIL
- 时间系统、Timer、GameTime 与测试可控时间
- 脚本热更新、解释器切换与实体迁移
- 持久化、一致性与数据库线程模型
- 动态扩展、控制面与容量治理
- Reviver、machined 与故障恢复边界
第四组:工程质量与源码边界
已明确要覆盖的问题
网络模型
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 恢复和状态迁移边界。
每章固定输出
每章必须包含:
- 源码入口
- 关键调用链
- 线程/进程归属
- 数据结构或状态机
- 源码取舍
- 源码边界
- 验证重点
- 本章边界
如果某项在源码中不存在,文档必须明确写“不存在或未确认”,并解释可能原因,而不是等读者指出后再补。
