第 33 卷 第 5 期 2012 年 9 月 闽 江 学 院 学 报 JOURNALOFMINJIANGUNIVERSITY Vol.33No.5 Sep.2012 三 维 引 擎 软 件 体 系 结 构 模 型 吴 拥 民 ( 闽 江 学 院 计 算 机 科 学 系, 福 建 福 州 350121) 摘 要 : 根 据 非 形 式 化 方 法, 构 造 了 三 维 引 擎 的 软 件 体 系 结 构 模 型 3D 引 擎 模 型 由 物 理 视 图 进 程 视 图 开 发 视 图 和 逻 辑 视 图 组 成, 重 点 描 述 了 逻 辑 视 图 中 的 3 个 层 次 : 引 擎 层 系 统 层 与 游 戏 层, 最 后 对 模 型 的 应 用 作 了 阐 述 关 键 词 : 大 规 模 多 人 在 线 游 戏 ; 三 维 引 擎 ; 软 件 体 系 结 构 ; 非 形 式 化 构 造 ; 4+1 视 图 模 型 中 图 分 类 号 :TP311 文 献 标 识 码 :A 文 章 编 号 :1009-7821(2012)05-0100-06 3Denginesoftwarearchitecturemodel WUYong min (DepartmentofComputerScience,MinjiangUniversity,Fuzhou,Fujian350121,China) Abstract:Basedonnon formalmodeling3d enginesoftwarearchitecturemodel.3d enginemodelis composedofphysicalview,procesview,developmentviewandlogicalview.focusondescribinglogical view,whichincludeenginelayer,systemlayer,gameplaylayer.finaly,theapplicationofmodelisde scribed. Keywords:MMOG;3Dengine;softwarearchitecture;non formalmodeling; 4+1 viewmodel 三 维 引 擎 ( 又 称 3D 引 擎 ), 广 泛 地 被 应 用 于 虚 拟 实 现 ( 包 括 智 能 三 维 虚 拟 市 政 大 厅 系 统 ) 及 网 络 游 戏 中 其 核 心 技 术 随 着 游 戏 引 擎 的 发 展 而 不 断 提 高 游 戏 引 擎 是 指 一 些 已 编 写 好 的 可 编 辑 电 脑 游 戏 系 统 或 者 一 些 交 互 式 实 时 图 像 应 用 程 序 的 核 心 组 件 这 些 系 统 为 游 戏 设 计 者 提 供 各 种 编 写 游 戏 所 需 的 各 种 工 具, 其 目 的 在 于 让 游 戏 设 计 者 能 容 易 和 快 速 地 做 出 游 戏 程 式 而 不 用 由 零 开 始 [1] 游 戏 引 擎 是 游 戏 中 核 心 软 件, 包 括 3D 图 形 渲 染 系 统 碰 撞 检 测 系 统 或 声 音 系 统 [2] 根 据 游 戏 画 面 展 示 的 维 度, 可 分 为 2D 游 戏 引 擎 2.5D 游 戏 引 擎 和 3D 游 戏 引 擎,3 类 游 戏 引 擎 的 系 统 构 成 既 有 一 定 的 继 承 性, 又 有 很 大 的 差 异 性 2D 游 戏 中 的 所 有 元 素 都 是 以 2D 图 片 的 方 式 展 现,2D 游 戏 引 擎 的 实 现 技 术 较 为 简 单, 鲜 有 高 质 量 的 文 献 涉 及 文 献 [3] 简 要 的 描 述 2D 游 戏 引 擎 的 系 统 构 成, 文 献 [4] 简 要 的 描 述 2D 游 戏 引 擎 的 不 完 善 实 现 Cocos2d 是 2D 游 戏 引 擎 的 典 型 代 表 Cocos2d 是 一 个 开 源 框 架, 可 用 于 构 建 2D 游 戏 演 示 程 序 和 其 他 图 形 界 面 的 交 互 应 用 [5] 2.5D 游 戏 又 称 为 假 3D 游 戏, 是 电 子 游 戏 立 体 技 术 尚 未 成 熟 的 年 代 中 经 常 出 现 的 一 种 游 戏 类 型 文 献 [6] 描 述 一 种 2.5D 游 戏 引 擎 设 计 2.5D 游 戏 实 现 技 术 的 大 致 分 3 类 : 第 一 类 以 古 老 的 名 作 德 军 总 部 3D 为 代 表, 在 游 戏 中 的 所 有 元 素 看 起 来 像 3D, 但 看 似 立 体 的 画 面 全 由 演 算 法 构 成, 和 多 边 形 技 术 没 有 任 何 关 系 ; 第 二 类 以 FinalFantasy 七 代 的 立 体 背 景 为 代 表, 仅 在 动 静 画 面 的 绘 制 过 程 中 采 用 多 边 形 技 术, 又 称 为 Pre rendering 先 在 3D 建 模 软 件 中, 建 立 了 一 个 多 边 形 模 型, 接 着 录 制 该 3D 模 型 的 各 种 连 续 动 作 的 关 键 帧 图 并 保 存, 最 后 程 序 员 运 用 2D 游 戏 中 的 动 画 帧 技 术 连 续 播 放 关 键 帧 图, 达 到 控 制 动 作 假 象 ; 第 三 类 以 Drag onquest 七 代 游 戏 为 代 表, 在 画 面 呈 现 时 仅 部 分 采 用 多 边 形 技 术 对 于 这 种 游 戏 来 说, 所 有 画 面 上 看 得 到 的 东 西 都 只 是 在 几 个 固 定 的 角 度 间 转 动, 而 无 法 更 自 由 地 旋 转 这 种 做 法 虽 然 比 Pre rendering 更 接 近 真 正 的 3D, 但 在 硬 体 机 能 条 件 相 同 的 前 提 下, 画 面 华 丽 与 精 致 度 上 却 大 为 不 及 C3(Conquer3) 是 2.5D 游 戏 引 擎 的 典 型 代 表, 兴 起 于 一 款 叫 征 服 游 戏, 成 名 于 魔 域 游 戏, 引 擎 与 游 戏 均 由 网 龙 公 司 自 主 研 发 收 稿 日 期 :2012-06-14 基 金 项 目 : 福 建 省 教 育 厅 科 技 项 目 (JK2009033) 作 者 简 介 : 吴 拥 民 (1968-), 男, 福 建 闽 侯 人, 闽 江 学 院 计 算 机 科 学 系 副 教 授.
第 5 期 吴 拥 民 : 三 维 引 擎 软 件 体 系 结 构 模 型 101 3D 引 擎 分 为 实 时 3D 引 擎 和 离 线 3D 引 擎 实 时 3D 引 擎 能 用 PC 机 及 游 戏 机 即 时 计 算 出 实 时 3D 画 面, 用 多 边 形 表 示 3D 模 型, 任 何 多 边 形 都 可 以 被 最 终 分 解 为 容 易 计 算 和 表 示 的 三 角 形 ; 离 线 3D 引 擎 一 般 用 于 制 作 电 影 中 的 以 假 乱 真 的 3D 画 面, 用 NURBS 曲 线 表 示 3D 模 型,NURBS 曲 线 能 够 实 现 多 边 形 很 难 表 现 出 的 细 节 和 灵 活 性 3D 游 戏 引 擎 是 实 时 的 且 随 着 计 算 机 硬 件 技 术 的 发 展, 不 断 的 向 离 线 3D 引 擎 靠 近 Unreal3 和 CryEngine 是 3D 游 戏 引 擎 中 佼 佼 者, 网 龙 公 司 自 主 研 发 的 S3(ScalpelEngine3) 游 戏 引 擎, 吸 取 了 业 界 各 类 优 秀 的 游 戏 引 擎 技 术, 专 门 针 对 MMO 游 戏 打 造 一 款 全 3D 网 络 游 戏 引 擎, 并 成 功 的 应 用 于 地 下 城 守 护 者 on line 的 开 发 中 3D 游 戏 引 擎 是 游 戏 界 的 热 点, 但 是 国 内 完 整 的 有 价 值 的 描 述 3D 引 擎 体 系 结 构 的 文 献 屈 指 可 数 文 献 [7-10] 分 别 从 引 擎 构 成 数 据 存 储 与 加 载 图 形 渲 染 脚 本 系 统 等 方 面, 不 完 全 的 描 述 了 3D 游 戏 引 擎 的 一 个 局 部 试 图 基 于 一 款 商 业 引 擎 S3, 以 文 献 [11,12] 提 出 的 非 形 式 化 构 造 方 法, 全 面 描 述 一 个 3D 游 戏 引 擎 的 软 件 体 系 结 构 1 游 戏 引 擎 的 模 型 1.1 非 形 式 构 造 非 形 式 化 构 造 方 法 是 一 种 基 于 Kruchten 4+1 模 型 理 论, 以 Medvidovic 的 ADL 框 架 形 式 化 描 述, 以 UML 表 示 配 置 结 构 中 拓 扑 约 束 构 件 间 的 交 互, 从 整 体 描 述 软 件 体 系 结 构 的 方 法 Kruchten 4+1 模 型 由 逻 辑 视 图 开 发 视 图 进 程 视 图 和 物 理 视 图 组 成, 并 通 过 场 景 将 这 4 个 视 图 有 机 地 结 合 起 来, 比 较 细 致 地 描 述 了 需 求 和 软 件 体 系 结 构 之 间 的 关 系 每 一 个 视 图 只 关 心 系 统 的 一 个 侧 面, 所 有 视 图 结 合 在 一 起 才 能 够 反 映 系 统 的 软 件 体 系 结 构 的 全 部 内 容 [13] Medvidovic 的 ADL 框 架 为 :Softwarearchitecture={Components,Connectors,Configuration,Toolsupport}. 构 件 (component) 可 以 是 一 个 计 算 或 数 据 存 储 的 单 元, 可 能 有 自 己 的 数 据 或 存 储 空 间 连 接 器 (connec tor) 表 示 构 件 之 间 的 相 互 作 用 和 管 理 相 互 作 用 的 规 则 配 置 结 构 (configuration) 是 以 构 件 和 连 接 器 为 元 素 描 述 软 件 体 系 结 构 的 连 接 图 [14] 针 对 不 同 类 型 的 3D 游 戏,3D 游 戏 引 擎 的 体 系 结 构 也 会 有 较 大 的 差 异, 以 下 描 述 了 一 种 可 以 商 业 应 用 的 适 用 于 MMO 类 型 3D 游 戏 引 擎 的 软 件 体 系 结 构 模 型 1.2 物 理 视 图 该 视 图 将 软 件 映 射 到 硬 件 上 3D 游 戏 引 擎 一 般 是 软 件 开 发 包, 描 述 其 物 理 视 图 毫 无 意 义 1.3 进 程 视 图 该 视 图 进 行 进 程 分 解, 表 达 了 并 行 性 和 分 布 性 问 题 在 3D 游 戏 开 发 过 程 中, 游 戏 与 游 戏 工 具 都 依 赖 于 相 同 引 擎 SDK, 被 设 计 成 2 个 独 立 的 进 程 为 了 能 够 实 现, 在 游 戏 工 具 中 修 改 资 源 马 上 就 能 在 游 戏 中 看 到 效 果 的 所 见 即 所 得 需 求, 游 戏 与 游 戏 工 具 通 过 引 擎 SDK 引 用 共 同 的 游 戏 资 源 用 Medvidovic 的 ADL 框 架 描 述 如 下 : 构 件 :Game,GameTools,GameEngine; 连 接 器 :EngineSDK 是 GameEngine 的 接 口 集,Game 或 GameTools 应 用 该 链 接 器 完 成 特 定 的 功 能 ; 配 置 : 图 1 用 UML 的 构 件 图 表 示 了 进 程 结 构 图 1 3D 游 戏 引 擎 的 进 程 视 图 Fig.1 3Dgameengineprocesview 1.4 开 发 视 图 该 视 图 进 行 子 系 统 分 解, 子 系 统 被 组 织 成 一 个 层 级, 每 一 层 提 供 一 个 充 分 而 定 义 完 整 的 接 口 给 上 一 层 [8] 采 用 了 层 次 系 统 风 格 描 述 3D 游 戏 引 擎 的 软 件 体 系 结 构, 整 个 软 件 体 系 被 分 为 3 层 : 引 擎 层 (Engine 包 ) 系 统 层 (System 包 ) 和 游 戏 层 (GamePlay 包 ) 用 Medvidovic 的 ADL 框 架 描 述 如 下 : 构 件 : 引 擎 包, 系 统 包, 游 戏 包 ; 连 接 器 :IEngine,ISystem,IGamePlay 分 别 是 引 擎 包, 系 统 包, 游 戏 包 的 接 口 集, 系 统 包 依 赖 IEngine 连 接 器 完 成 特 定 的 功 能, 游 戏 包 依 赖 ISystem 连 接 器 完 成 特 定 的 功 能, 特 定 游 戏 依 赖 IGamePlay 连 接 器 完 成 特 定 的 功 能 ; 配 置 : 图 2 用 模 块 图 与 UML 的 包 图 表 示 了 开 发 结 构 1.5 逻 辑 视 图 该 视 图 进 行 面 向 对 象 的 分 解, 系 统 被 分 解 为 一 个 关 键 抽 象 集, 以 对 象 或 类 简 化 了 问 题 域 逻 辑 视 图 是 对 开 发 视 图 的 各 层 次 进 行 了 进 一 步 的 细 化, 描 述 一 个 特 定 细 化 模 型 可 以 采 用 UML 的 类 图 对 象 图 时 序 图 协
102 闽 江 学 院 学 报 第 33 卷 图 2 3D 游 戏 引 擎 的 开 发 视 图 ( 左 图 为 子 系 统 分 解, 右 图 为 层 次 系 统 ) Fig.2 3Dgameenginedevelopmentview(leftissubsystem,rightislayersystem) 作 图 状 态 图 和 活 动 图 等, 但 清 晰 的 表 达 并 不 需 要 以 上 全 部 的 UML 图 根 据 需 要 选 择 了 不 同 的 UML 图, 表 [15](22) 示 3D 游 戏 引 擎 软 件 体 系 结 构 的 逻 辑 结 构, 并 采 用 了 面 向 对 象 风 格 描 述 引 擎 层 完 整 的 商 业 化 的 3D 游 戏 引 擎 基 础 设 施 应 包 含 : 图 形 引 擎 动 画 引 擎 物 理 引 擎 与 音 频 引 擎, 参 见 图 2 中 的 Engine 层 虚 拟 世 界 中 4 个 引 擎 的 作 用 分 别 是 : 图 形 引 擎 令 三 维 透 视 具 有 高 度 真 实 感 的 画 面 效 果, 动 画 引 擎 令 角 色 运 动 符 合 真 实 世 界 的 生 理 特 征, 物 理 引 擎 令 物 体 运 动 符 合 真 实 世 界 的 物 理 定 律, 音 频 引 擎 令 音 频 效 果 符 合 真 实 世 界 的 声 学 规 律, 共 同 目 标 是 使 游 戏 更 加 富 有 真 实 感 根 据 经 验, 不 同 类 型 的 网 络 游 戏 4 部 分 引 擎 的 重 要 性 占 比 是 有 很 大 差 异 的 强 调 物 理 模 拟 的 游 戏, 需 要 非 常 强 大 的 整 数 和 浮 点 计 算 能 力, 且 具 有 高 度 的 并 行 性, 需 要 多 线 程 计 算, 计 算 非 常 复 杂, 需 要 消 耗 很 多 资 源, 这 样 物 理 引 擎 的 重 要 性 占 比 就 会 提 升 ; 同 样 强 调 3D 音 频 效 果 的 游 戏, 也 会 导 致 音 频 引 擎 的 重 要 性 占 比 提 升 现 阶 段 网 络 游 戏 更 加 注 重 画 面 效 果, 图 形 引 擎 的 重 要 性 占 据 的 很 大 的 比 重, 一 种 典 型 MMO-RPG 类 型 游 戏 4 部 分 引 擎 的 重 要 性 占 比 大 致 为 60:25:10:5 这 里 的 重 要 性 与 消 耗 CPU 内 存 资 源 多 少 成 正 比 的, 以 下 描 述 假 设 相 同 由 于 大 部 分 的 商 业 化 3D 游 戏 引 擎 都 会 集 成 业 界 标 准 物 理 引 擎 (PhysX Havok 和 Bulet) 与 音 频 引 擎 (Fmod), 其 体 系 结 构 模 型 涉 及 商 业 知 识 产 权, 以 下 只 描 述 图 形 引 擎 动 画 引 擎 的 结 构 模 型 在 图 形 引 擎 中, 主 要 进 行 图 形 的 渲 染 计 算, 输 出 屏 幕 的 像 素 点 颜 色 图 3 中 渲 染 器 (Render) 就 是 渲 染 计 算 的 一 个 抽 象 表 示, 渲 染 器 的 输 入 数 据 称 为 渲 染 资 源 (RenderResource), 是 资 源 (Resource) 的 子 集 ( 参 见 图 10 资 源 系 统 ) 渲 染 器 通 过 特 定 的 步 骤 调 用 图 形 库 (DirectX 或 OpenGL) 的 API, 各 类 渲 染 资 源, 例 如 : 顶 点 (Ver tex) 材 质 (Material) Texture( 纹 理 ) 与 可 编 程 渲 染 程 序 (Shader), 通 过 特 定 的 API 被 告 知 图 形 处 理 器 (GPU), 当 所 有 的 渲 染 资 源 准 备 好 后, 通 知 GPU 完 成 一 次 渲 染, 又 称 为 渲 染 1 帧 要 实 现 流 畅 的 动 画 效 果, 渲 染 器 需 要 高 速 计 算, 达 到 每 秒 渲 染 30 帧 的 基 本 要 求, 或 每 帧 渲 染 计 算 必 须 在 33.3ms 内 完 成 由 于 GPU 渲 染 计 算 是 需 要 用 到 GPU 寄 存 器, 因 此 33.3ms 内 能 渲 染 计 算 的 数 据 是 有 限 的 另 一 方 面, 渲 染 器 在 渲 染 资 源 前 需 要 对 各 类 资 源 进 行 预 处 理, 经 过 处 理 后 的 资 源 被 排 队 到 相 应 的 渲 染 队 列 (RenderQueue) 中, 能 够 进 入 渲 染 队 列 的 资 源 是 通 过 照 相 机 (Camera) 透 视 的 原 理 进 行 裁 减 的, 裁 减 过 程 会 调 用 场 景 管 理 ( 参 见 图 9 场 景 系 统 ) 的 场 景 树 算 法 每 个 照 相 机 透 视 裁 减 并 渲 染 的 结 果 最 终 会 呈 现 在 显 示 屏 称 视 窗 (ViewPort) 的 一 个 区 域, 因 此 一 般 每 个 视 窗 只 有 一 个 照 相 机 透 视 裁 减 排 队 的 工 作 是 在 中 央 处 理 器 (CPU) 计 算 完 成 的, 因 此,CPU 与 GPU 能 够 以 不 间 断 流 水 线 的 方 式 工 作, 是 保 证 图 形 引 擎 效 果 出 色 与 动 画 流 畅 的 基 本 条 件 用 Medvidovic 的 ADL 框 架 描 述 如 下 : 构 件 :Render,RenderQueue,Camera,ViewPort; 连 接 器 :RenderQueue 与 Render 通 过 聚 合 关 系 相 互 作 用,RenderQueue 与 BatchEntity 通 过 组 合 关 系 相 互 作 用,Camera 与 ViewPort 通 过 关 联 关 系 相 互 作 用, 其 他 类 似 ; 配 置 : 如 图 3 用 UML 的 类 图 表 示 了 图 形 引 擎 的 设 计 结 构 在 动 画 引 擎 中, 主 要 进 行 骨 骼 的 动 画 计 算, 输 出 骨 骼 的 运 算 矩 阵 图 4 中 Pose 就 是 运 算 矩 阵 的 一 个 抽 象 表 示, 输 出 的 骨 骼 运 算 矩 阵 可 以 通 过 PoseModifier 进 行 IK 修 正, 例 如 LookAtIK FootIK 等 每 一 帧 的 运 算 骨
第 5 期 吴 拥 民 : 三 维 引 擎 软 件 体 系 结 构 模 型 103 骼 (AnimateSkeleton) 是 由 原 始 骨 骼 (Skeleton) 与 子 部 件 (SubEntity) 实 时 计 算 得 出 的, 由 运 算 骨 骼 输 出 运 算 矩 阵 (Pose) 通 过 PlaybackControl 可 以 控 制 输 出 具 体 某 一 帧 的 运 算 骨 骼 (AnimateSkeleton) 用 Med vidovic 的 ADL 框 架 描 述 如 下 : 构 件 :Animation,Pose,PoseModifier,Ani mateskeleton; 连 接 器 :Animation 与 AnimateSkeleton 通 过 聚 合 关 系 相 互 作 用,Animation 与 Pose 通 过 组 合 关 系 相 互 作 用,PoseModifier 与 LookAtModifier 通 过 继 承 关 系 相 互 作 用, 其 他 类 似 ; 配 置 : 如 图 4 用 UML 的 类 图 表 示 了 动 画 引 擎 的 设 计 结 构 图 3 3D 游 戏 引 擎 的 图 形 引 擎 系 统 层 Fig.3 3Dgamegraphicengine 该 层 是 由 网 络 游 戏 的 公 共 特 性 抽 象 出 来 的 多 个 子 系 统 构 成 一 般 都 包 含 : 地 形 系 统 物 件 系 统 角 色 系 统 特 效 系 统 植 被 森 林 系 统 用 户 界 面 系 统 等 6 个 系 统, 参 见 图 2 中 的 System 层 每 个 子 系 统 相 对 独 立, 都 共 同 与 Engine 层 资 源 系 统 建 立 UML 语 义 上 关 联 关 系 [16], 同 时 又 与 GamePlay 层 的 场 景 管 理 建 立 UML 语 义 上 依 赖 关 系 [16] 在 网 络 游 戏 中 根 据 经 验, 按 照 上 述 排 列 的 顺 序 6 个 公 共 系 统 的 重 要 性 占 比 大 致 为 30:15:20:20:5:10 以 下 只 描 述 重 要 性 占 比 大 于 10% 的 系 统 结 构 模 型 在 地 形 系 统 中, 提 供 基 于 高 度 图 地 形 系 图 4 3D 游 戏 引 擎 的 动 画 引 擎 统, 存 储 的 是 构 成 地 形 抽 样 点 的 高 度 数 据 Fig.4 3Dgameanimationengine 一 个 地 形 (Terian) 通 过 组 合 关 系 与 若 干 个 抽 象 的 资 源 (Resource) 关 联 ; 一 个 完 整 的 地 形 (Terian) 通 过 聚 合 关 系 与 地 表 (Surface) 植 被 (Gras) 树 木 (Plant) 关 联 用 Medvidovic 的 ADL 框 架 描 述 如 下 : 构 件 :Terain,Resource,Surface,Gras,Plant; 连 接 器 :Terain 与 Resource 通 过 组 合 关 系 相 互 作 用,Terain 与 Surface,Gras,Plant 通 过 聚 合 关 系 相 互 作 用 ; 配 置 : 如 图 5 用 UML 的 类 图 表 示 了 地 形 系 统 的 设 计 结 构 在 物 件 系 统 中, 提 供 了 2 种 类 型 的 物 件 : 固 体 (Model) 与 柔 体 (Flexible) 柔 体 可 分 为 布 料 绳 索 鞭 子 等 一 个 固 体 由 若 干 个 LODModel 组 合, 每 一 级 别 的 Model 又 若 干 个 Submesh 组 合, 并 通 过 组 合 关 系 与 若 干 个 抽 象 的 资 源 (Re source) 关 联 物 件 也 可 包 含 骨 骼 资 源 且 被 动 画 引 擎 驱 动, 通 过 骨 骼 控 制 物 件 动 画 用 Medvidovic 的 ADL 框 架 描 述 图 5 3D 游 戏 引 擎 的 地 形 系 统 如 下 : Fig.5 3Dgameengineterainsystem 构 件 :Entity,Resource,Substance; 连 接 器 : 组 合 关 系, 继 承 关 系 ; 配 置 : 如 图 6 用 UML 的 类 图 表 示 了 物 件 系 统 的 设 计 结 构 在 角 色 系 统 中, 提 供 了 2 种 类 型 的 角 色 : 简 单 角 色 (SimpleRole) 与 复 杂 角 色 (ComplexRole) 简 单 角 色 一 般 用 于 表 示 NPC, 复 杂 角 色 一 般 用 于 表 示 玩 家 扮 演 的 角 色 PC 等 一 个 复 杂 角 色 由 若 干 个 LODRole 组 合, 每 一 级 别 的 Role 又 若 干 个 Submesh 组 合, 并 通 过 组 合 关 系 与 若 干 个 抽 象 的 资 源 (Resource) 关 联 角 色 一 般 包
104 闽 江 学 院 学 报 第 33 卷 含 骨 骼 资 源 且 被 动 画 引 擎 驱 动 用 Medvidovic 的 ADL 框 架 描 述 如 下 : 构 件 :Role,SimpleRole,ComplexRole,LODRole Submesh Resource; 连 接 器 :Role 与 SimpleRole ComplexRole 通 过 继 承 关 系 相 互 作 用,ComplexRole 与 LODRole 通 过 组 合 关 系 相 互 作 用, 其 他 类 似 ; 配 置 : 如 图 7 用 UML 的 类 图 表 示 了 角 色 系 统 的 设 计 结 构 在 特 效 系 统 中, 提 供 了 多 种 类 型 的 特 效, 根 据 需 要 可 以 定 制 增 加 虽 然 特 效 的 种 类 繁 多, 但 仍 然 可 以 简 单 分 为 光 效 音 效 与 特 殊 效 果 等 典 型 的 光 效 有 2 种 : 动 画 光 效 (AnimatedBlaze) 与 粒 子 光 效 (Particle), 音 效 以 3D 音 效 (3DSound) 最 具 技 术 含 量, 依 据 游 戏 中 的 应 用 可 分 为 : 界 面 音 效 NPC 音 效 技 能 音 效 与 环 境 音 效 在 游 戏 中, 水 (Water) 雾 (Fog) 与 泛 光 (Floodlight) 一 般 按 照 特 效 来 制 作 用 Medvidovic 的 ADL 框 架 描 述 如 下 : 构 件 :Efect,Resource; 连 接 器 :Efect 与 Resource 组 合 关 系 相 互 作 用 ; 配 置 : 如 图 8 用 UML 的 类 图 表 示 了 特 效 系 统 的 设 计 结 构 游 戏 层 该 层 主 要 实 现 场 景 系 统 与 资 源 系 统 2 个 子 系 统, 并 根 据 网 络 游 戏 的 特 点 提 供 统 一 的 抽 象 的 接 图 6 3D 游 戏 引 擎 的 物 件 系 统 Fig.6 3Dgameenginesubstancesystem 图 7 3D 游 戏 引 擎 的 角 色 系 统 Fig.7 3Dgameenginerolesystem 口 IPlatform, 对 外 表 现 为 游 戏 引 擎 的 开 发 包 Engine SDK, 游 戏 基 于 SDK 进 行 逻 辑 开 发 以 下 分 别 描 述 2 个 子 系 统 的 结 构 模 型 在 场 景 系 统 中, 一 个 场 景 管 理 器 (ScenceMgr) 通 过 组 合 关 系 管 理 者 若 干 个 抽 象 的 场 景 节 点 (Node), 照 相 机 (Camera) 灯 光 (Light) 地 形 (Ter rain) 特 效 (Efect) 实 体 (Entity) 线 (Line) 等 都 图 8 3D 游 戏 引 擎 的 特 效 系 统 是 由 节 点 (Node) 继 承, 其 中 角 色 (Role) 物 件 Fig.8 3Dgameengineefectsystem (Substance) 特 效 (Efect) 分 别 在 上 文 系 统 层 的 角 色 系 统 物 件 系 统 特 效 系 统 详 细 描 述 了 用 Med vidovic 的 ADL 框 架 描 述 如 下 : 构 件 :ScenceMgr,Node; 连 接 器 :Node 与 ScenceMgr 通 过 组 合 关 系 相 互 作 用 ; 配 置 : 如 图 9 用 UML 的 类 图 表 示 了 场 景 管 理 的 设 计 结 构 在 资 源 系 统 中, 一 个 资 源 管 理 器 (ScenceMgr) 通 过 组 合 关 系 管 理 者 若 干 个 抽 象 的 资 源 (Resource), 骨 骼 (Skeleton) 材 质 (Material) 纹 理 (Texture) 网 格 (Mesh) 音 频 (PCM) 等 都 是 由 资 源 (Resource) 继 承, 其 中 资 源 (Resource) 会 由 地 形 系 统 角 色 系 统 物 件 系 统 特 效 系 统 通 过 组 合 关 系 关 联 用 Medvidovic 的 ADL 框 架 描 述 如 下 : 构 件 :ScenceMgr,Resource; 连 接 器 :Resource 与 ScenceMgr 通 过 组 合 关 系 相 互 作 用 ; 配 置 : 如 图 10 用 UML 的 类 图 表 示 了 资 源 管 理 管 理 的 设 计 结 构 2 3D 游 戏 引 擎 模 型 的 应 用 该 3D 游 戏 引 擎 模 型 描 述 了 商 业 化 的 S3 游 戏 引 擎 (ScalpelEngine3) 的 核 心 体 系 结 构, 应 用 该 引 擎 开 发 的 第 一 款 商 业 游 戏 是 RPG 类 型 的 地 下 城 守 护 者 OL [17], 第 二 款 是 即 将 公 测 的 RPG+TPS 类 型 的 变 形 金
第 5 期 吴 拥 民 : 三 维 引 擎 软 件 体 系 结 构 模 型 105 刚 OL [18], 正 在 开 发 的 2 款 游 戏 分 别 是 RTS 类 型 的 英 魂 之 刃 ARPG 类 型 的 最 武 侠 两 款 运 营 的 及 两 款 正 在 开 发 的 商 业 游 戏, 充 分 说 明 该 3D 游 戏 引 模 型 的 可 行 性 该 模 型 能 够 适 用 RPG ARPG RTS TPS 等 不 同 类 型 的 网 络 游 戏, 表 明 了 模 型 通 用 性 与 可 移 植 性 在 没 有 地 形 与 角 色 LOD 的 前 提 下, 地 下 城 守 护 者 OL 游 戏, 达 到 同 屏 (1024 768 分 辨 率 )50 个 以 下 角 色 ( 同 时 计 算 50 套 角 色 动 作 )30FPS 的 帧 率 在 没 有 地 形 LOD 有 角 色 与 特 效 LOD 的 前 提 下, 变 形 金 刚 OL 游 戏 计 划 实 现 同 屏 (1024 768 分 辨 率 )30 个 以 下 角 色 ( 同 时 计 算 30 套 角 色 动 作 )60FPS 的 帧 率 在 有 地 形 角 色 与 特 效 LOD 场 景 及 物 件 实 现 离 线 烘 焙 的 前 提 下, 英 魂 之 刃 游 戏 计 划 实 现 在 同 屏 (1024 768 分 辨 率 )20 个 角 色 ( 只 计 算 20 套 角 色 动 作 ) 以 上 70FPS 的 帧 率 ; 最 武 侠 游 戏 计 划 实 现 在 同 屏 (1024 768 分 辨 率 )100 个 角 色 ( 只 计 算 5 套 角 色 动 作 ) 以 上 30FPS 的 帧 率 图 9 3D 游 戏 引 擎 的 场 景 系 统 Fig.9 3Dgameenginescencesystem 图 10 3D 游 戏 引 擎 的 资 源 系 统 Fig.10 3Dgameengineresourcesystem 参 考 文 献 : [1] 维 基 百 科. 游 戏 引 擎 [Z/OL].(2012-01-10)[2012-03-23].htp://zh.wikipedia.org/wiki/%E6%B8%B8%E6%88% 8F%E5%BC%95%E6%93%8E. [2]JasonGregory.Gameenginearchitecture[M].[s.1.]:AKPetersLtd,2009. [3] 肖 周 芳, 赵 大 伟. 基 于 2D 游 戏 引 擎 的 设 计 [J]. 科 技 信 息,2008,30:75-76. [4] 钟 鼎 一. 用 VC 开 发 游 戏 的 引 擎 架 构 设 计 技 术 [J]. 微 型 电 脑 应 用,2006,22(8):35-37. [5] 百 度 公 司.Cocos2d[Z/OL].(20120-01-24)[2012-03-23].htp://baike.baidu.con/view/3800461.htm. [6] 陈 松. 基 于 斜 视 角 可 变 的 游 戏 引 擎 设 计 [J]. 计 算 机 科 学,2006,33(11):240-242. [7] 樊 翠, 王 丽 芳. 基 于 D3D 的 三 维 游 戏 引 擎 的 设 计 与 实 现 [J]. 科 学 技 术 与 工 程,2006,6(10):1431-1450. [8] 吴 楷, 万 旺 根, 楼 顺 天. 树 型 结 构 预 处 理 算 法 及 在 游 戏 引 擎 的 实 现 [J]. 计 算 机 研 究,2006,26(2):510-511. [9] 刘 玮, 张 引, 叶 修 梓.3D 游 戏 引 擎 渲 染 内 核 架 构 及 其 技 术 [J]. 计 算 机 应 用 研 究,2006,8:45-51. [10] 魏 江 平.LUA 脚 本 语 言 在 游 戏 引 擎 中 的 应 用 分 析 [J]. 微 型 电 脑 应 用,2008,24(4):22-23. [11] 吴 拥 民.MMORPG 软 件 体 系 结 构 研 究 非 形 式 化 构 造 [J]. 计 算 机 工 程 与 应 用,2006,42(32):31-32. [12] 吴 拥 民, 陈 宏 展.MMORPG 软 件 体 系 结 构 研 究 构 造 模 型 的 演 化 [J]. 昆 明 理 工 大 学 学 报,2008,12(6):35-43. [13]PhilippeKruchten.The 4+1 viewmodelofsoftwarearchitecture[j].ieeesoftware,1995,12(6):42-50. [14]MedvidovicN,RichardNT.Aclasificationandcomparisonframeworkforsoftwarearchitecturedescriptionlanguages[J].IEEE TransactionsonSoftwareEngineering,2000,26(1):70-93. [15]ShawM,GarlanD.Softwarearchitecture:perspectivesonanemergingdiscipline[M].NewJersey:PrenticeHal,1996. [16] 百 度 公 司.UML 关 系 图 [Z/OL].(2012-01-11)[2012-03-15].htp://wenku.baidu.com/view/7c6d0ae9551810a6f52 48663.html. [17] 网 龙 公 司. 地 下 城 守 护 者 [Z/OL].(2012-02-10)[2012-05-03].htp://dk.91.com. [18] 网 龙 公 司. 变 形 金 刚 [Z/OL].(2012-01-03)[2012-05-03].htp://dk.91.com. ( 责 任 编 辑 : 金 盨 )