Apollo 技术文档Apollo 技术文档
指南
  • 架构概述
  • BigWorld 架构深度解析
  • BigWorld 进程架构与玩家生命周期
  • AOI九宫格系统详解
  • AOI广播与消息去重
  • Base 模块
  • Core 模块
  • Runtime 模块
  • Data 模块
  • Network 模块
  • /modules/actor.html
  • Game 模块
  • BigWorld 模块
服务器应用
API 参考
QA
GitHub
指南
  • 架构概述
  • BigWorld 架构深度解析
  • BigWorld 进程架构与玩家生命周期
  • AOI九宫格系统详解
  • AOI广播与消息去重
  • Base 模块
  • Core 模块
  • Runtime 模块
  • Data 模块
  • Network 模块
  • /modules/actor.html
  • Game 模块
  • BigWorld 模块
服务器应用
API 参考
QA
GitHub
  • 架构设计

    • 架构概述
    • BigWorld 架构深度解析
    • BigWorld 进程架构与玩家生命周期
  • AOI 系统

    • AOI九宫格系统详解
    • AOI广播与消息去重

Apollo 架构概述

整体架构

Apollo 采用分层模块化架构,共分为 10 层:

┌─────────────────────────────────────────────────────────────────┐
│                        Applications (apps/)                      │
│  gateway-server | login-server | game-server | chat-server     │
└─────────────────────────────────────────────────────────────────┘
                                ↓
┌─────────────────────────────────────────────────────────────────┐
│                    Starters (modules/starter/)                  │
│  core | net | mysql | redis | game-server | ...                │
└─────────────────────────────────────────────────────────────────┘
                                ↓
┌─────────────────────────────────────────────────────────────────┐
│                    BigWorld Compatibility                       │
│                  modules/bigworld/                              │
│  Runtime | Entity | Timer | Callback                            │
└─────────────────────────────────────────────────────────────────┘
                                ↓
┌──────┬──────┬──────┬──────┬──────────┬──────────┬────────────┐
│  net │ data │ game │ actor│ framework│  runtime │   core     │
└──────┴──────┴──────┴──────┴──────────┴──────────┴────────────┘
                                ↓
┌─────────────────────────────────────────────────────────────────┐
│                        Base (modules/base/)                     │
│  Time | ThreadPool | IdPool | Memory | Terminal | String       │
└─────────────────────────────────────────────────────────────────┘

层级说明

Level 1: Base (modules/base/)

纯基础设施,无框架语义。

组件功能
Time时间工具、高精度计时
ThreadPool线程池、任务调度
IdPool唯一ID生成器
ObjectPool对象池、内存复用
String字符串处理工具
Memory内存池、Buffer管理
Terminal终端适配、ANSI彩色输出

Level 2: Core (modules/core/)

框架内核,公共运行语义。

组件功能
DI/IoC依赖注入容器
Config配置管理、热更新
Log日志系统、分级输出
Lifecycle应用生命周期管理
Module模块注册与加载
Event事件总线
Timer定时器调度
ServiceDiscovery服务发现

Level 3: Runtime (modules/runtime/)

宿主运行时,程序如何运行。

组件功能
ApplicationHost应用宿主
ServiceHost服务宿主
Console控制台输入监听
Signal信号处理 (SIGINT/SIGTERM)
ShutdownHook关闭钩子
HealthCheck健康检查

Level 4: Data (modules/data/)

数据访问层。

组件功能
core数据访问接口
ormORM映射、数据库操作
redisRedis客户端
cache缓存抽象

Level 5: Network (modules/net/)

网络能力层。

组件功能
core网络抽象接口
tcpTCP通信
httpHTTP服务
websocketWebSocket支持
rpcRPC框架

Level 6: Actor (modules/actor/)

Actor 并发模型。

组件功能
coreActor实体
timer定时器服务
messaging消息总线

Level 7: Game (modules/game/)

游戏领域层。

组件功能
coreEntity基类、组件接口
worldAOI、场景管理
battle战斗系统、ECS
attributes属性系统

Level 8: BigWorld (modules/bigworld/)

BigWorld API 兼容层。

Level 9: Starter (modules/starter/)

装配层,按需组装模块。

Level 10: Apps (apps/)

最终可执行程序。

依赖关系

base ← core ← runtime ← net/data/actor/game ← bigworld ← starter ← apps

硬约束:

  • base 不依赖任何 Apollo 模块
  • core 不依赖 game/net/data
  • game 不反向进入 core
  • bigworld 作为 game 的顶层兼容层
在 GitHub 上编辑此页
最后更新: 3/20/26, 6:06 AM
贡献者: cuihairu
Next
BigWorld 架构深度解析