Skip to content
On this page

游戏模块化核心(引擎无关)

面向各类实时游戏(侧视/俯视角 2D、第三人称或第一人称 3D 等):把重复逻辑抽成可组合能力全局子系统,业务层只拼装参数与关卡规则。下文不绑定具体引擎 API,仅以职责与数据流描述;维度差异主要体现在运动与探测的数据结构(平面向量 vs 空间向量、形状 cast 的维数),模块边界相同

为何拆分与依赖方向

  • 复用:玩家、NPC、敌人共享同一套运动、生命、受击反馈,避免复制粘贴。
  • 可测:子系统边界清晰,便于单测与替换实现(例如换存档格式不改玩法代码)。
  • 依赖建议:玩法业务 → 角色基础能力 → 全局子系统 → 数学与工具。禁止工具层反向依赖具体关卡类名。

状态机(横切):常见两层——全局游戏状态(主菜单、暂停、过场)与实体行为状态(待机、移动、攻击、硬直)。状态机负责「合法转移与当前意图」,具体运动数值、动画片段、碰撞开关交给下层模块执行,避免状态类膨胀。


一、角色层(与状态机配套)

1. 运动能力模块

职责:位移与速度积分、重力或自定义加速度、跳跃/升空/贴地等支撑判定、速度插值、空中阻尼等「每帧积分」的单一出口。3D 下补充地面法线、斜坡滑动、角色控制器与动画根运动(若使用)的协调点。

输入:意图(轴/向量输入、动作键)、物理或运动学查询结果(是否着地、法线)、全局时间缩放。

输出:本帧位移或速度、着地/离地事件(用于动画与音效)。

玩家、NPC、敌人共用同一套运动参数表(加速度、最大速度、跳跃/推力曲线),差异用数据驱动而非复制逻辑。

2. 动画驱动模块

职责:把「当前状态 + 运动语义」映射为播放片段;朝向/面向(2D 翻转或 3D 根旋转/瞄准骨);事件帧回调(出刀帧、脚步音效);播放锁与防打断优先级。

输入:状态机或上层给出的动画请求(含优先级)。

输出:对渲染/骨骼层的播放指令。

状态机只发「意图」,由动画模块解决冲突与混合(blend),二者解耦。

3. 生命体组件

职责:生命、护盾、无敌时间窗、受伤闪烁、死亡流程(播死亡动画、触发掉落、延迟销毁)。

输入:伤害事件(数值、类型、击退向量、来源阵营)。

输出:死亡/击晕等高层事件供关卡与 UI 订阅。

做成可挂载的能力单元,任意可受伤实体复用。

4. 战斗能力模块

职责:攻击冷却、前摇后摇窗口、攻击体(形状与时序)、伤害结算、连招槽位、攻击优先级、友军/阵营过滤。

输入:攻击指令、目标查询接口。

输出:命中列表、是否被格挡/无敌吞掉。

与生命体通过事件或消息总线交互,避免循环引用。

5. 探测与碰撞语义

职责:支撑物检测、头顶/体前遮挡、斜坡法线(2D/3D 各自用线段/射线/形状 cast);身体碰撞、攻击体、交互触发体分层与标签

输出:布尔标志与法线/距离/命中体引用,供运动与战斗消费。

同一逻辑体多形状时,用语义标签区分用途,避免魔法数字层号散落。


二、全局系统层(单例或服务定位器)

1. 输入门面

统一读取硬件/虚拟摇杆;按键重映射表;输入上下文栈(UI 打开时吞掉移动键);全局禁用输入(过场、对话)。

换平台时只改这一层,玩法代码只依赖抽象「行动」枚举或轴向量。

2. 资源与缓存

预加载关卡所需贴图、模型、音频、预制数据;引用计数或弱缓存;场景切换时的卸载策略;异步加载与失败重试。

防止同资源多路径重复加载造成卡顿与内存峰值。

3. 音频总线

背景音乐与音效分轨;主音量与分类音量;同类音效并发上限与短间隔节流,防止爆音;全局静音与持久化音量设置。

4. 场景流

关卡切换、淡入淡出、异步加载与进度回调、重开当前关、回主菜单;加载期间的输入与渲染策略(冻结或显示占位)。

5. 存档系统

版本化 schema(字段增删兼容);玩家进度、货币、解锁标记;自动档与手动档槽位;可选轻量混淆或校验和防篡改(按项目威胁模型)。

6. 时间与调度

全局时间缩放、暂停(区分「冻结模拟」与「仅冻结 AI」);一次性延时、周期 Tick、帧延迟任务集中注册,避免在业务里散落计时器句柄。


三、UI 层

1. 界面栈管理

打开/关闭弹窗、模态层级、焦点与导航(手柄/键盘);全屏遮罩与过渡动画统一入口。

2. 飘字与浮动提示

伤害数字、拾取提示:统一预制数据(字体、抛物线、生命周期),对象池生成,避免频繁分配。

3. 计量条组件

生命、耐力、技能冷却:数据绑定约定(当前值/最大值/预测值),皮肤与布局可换皮,逻辑只写一次。


四、工具层

1. 数学库

向量插值、角度差规范化、随机区间、平滑阻尼(smooth damp)、夹紧与曲线采样(运动、相机)。

2. 场景图 / 对象树辅助

安全查找子树、按组件类型收集、延迟销毁队列、实例化与初始化顺序约定(避免在构造期访问未就绪依赖)。

3. 相机装置

跟随目标、死区与 lookahead、平滑插值、震动(屏幕后处理或镜头偏移)、世界边界与视距/缩放策略;必要时与关卡体积或遮挡体数据联动。

4. 粒子与特效池

特效生成、回收、池容量上限;与「资源管理器」协同加载贴图与材质。


五、物理与玩法规则

1. 掉落物管线

生成位置与初速度、短暂物理弹跳、磁铁吸附范围、拾取判定、超时消失与池回收。

2. 可交互协议

宝箱、对话点、机关统一暴露「可交互」接口:进入范围、按下交互键、条件检查(钥匙/任务标记)、成功/失败反馈。

3. AI 行为基类

巡逻、追逐、逃离、待机、警戒半径等参数化策略;感知(视锥/距离/听觉)与寻路或转向结果作为输入;与实体状态机协作:AI 输出「意图」,状态机裁决是否允许进入追击等状态。


六、分层总览

  1. 工具层:数学、场景图辅助、时间、随机。
  2. 全局系统层:输入、资源、音频、场景流、存档、特效池。
  3. 角色基础层:状态机 + 运动 + 动画 + 生命 + 战斗 + 探测语义。
  4. AI 层:通用感知与行为策略基类。
  5. UI 层:界面栈、飘字、计量条。
  6. 业务层:具体玩家技能、关卡脚本、任务与叙事——只拼装参数与规则,不实现底层循环。

坚持单向依赖后,换引擎时优先替换「渲染与物理适配层」,核心模块可整体迁移思路。

技术文库