当前位置: 首页 > ops >正文

通用游戏前端架构设计思考

前言

        游戏开发做了几年,想谈谈游戏前端架构设计的思考。先说答案,没有完美的方案,只有相对权衡的方案。游戏开发比我们想象的要复杂,也比我们想象的要简单。

分层设计

        对于游戏开发来说,大体的能够分成几个层级,使这个层与层之间有天然的隔阂。

        底部:接口层、数据层、工具层。接口层可以为游戏实体规范行为,数据层为游戏实体提供数据基础,工具层为游戏实体提供各种工具。

        核心:实体层、管理层。实体层为游戏中存在的各种实体,例如子弹、怪物等。管理层用来管理实体,包括创建实体,封装一些实体对外的方法等,例如子弹管理器、怪物管理器。

        UI:UI层提供给用户交互的接口,接受用户的操作,给予用户反馈。

分模块设计与模块实例

        在根据需求划分出游戏的各个模块后,可以将各个游戏模块根据上面的分层设计,在模块内进行划分。比如角色模块可以划分成角色接口、角色数据、角色实体和角色管理器。再比如装备模块可以划分成装备接口、装备数据、装备实体和装备管理器。

实例

        工具:数学工具、V2、V3、V4、事件管理器、音频管理器、特效管理器、动画管理器、HttpClient、SocketClient、抛射物模块、Buff模块、技能模块、行为树模块、状态机工具、UI管理器等。

        核心:用户模块、角色模块、怪物模块、装备模块、自定义技能、自定义Buff、自定义抛射物、自定义行为、自定义状态、战斗管理器、游戏管理器。

        UI层:加载场景、主场景、战斗场景、签到页面、设置页面、暂停页面、战斗胜利、失败页面、对话窗、提示条等。

关系与通讯

        工具层是底层提供给核心层和UI层使用,核心层提供给UI层要显示的数据,UI层则依赖以上两层。

        模块之间的通讯首先要更加需求划分关联关系,模块与模块之间不可直接依赖实体,可以依赖于接口,同时根据需求划分出的关联关系,使用关联的模块实体。除此之外可以使用事件管理器来弥补通讯的纰漏。

http://www.xdnf.cn/news/15030.html

相关文章:

  • 20-C#构造函数--虚方法
  • 小程序软装: 组件库开发
  • 爬虫-正则表达式
  • 汽车功能安全-软件单元验证 (Software Unit Verification)【用例导出方法、输出物】8
  • skywalking-agent-docker镜像
  • C++11 std::move与std::move_backward深度解析
  • 数据分析框架和方法
  • 华为静态路由配置
  • mysql 可用性的保障机制:主讲主从复制机制
  • sqlplus表结构查询
  • CTFHub————Web前置技能[HTTP协议(302跳转、Cookie)]
  • 【数据分析】多数据集网络分析:探索健康与退休研究中的变量关系
  • IntelliJ IDEA 2025.1.3创建不了java8的项目
  • 洛谷 P1104 生日---排序
  • VS2022 C++ EasyX库 扫雷游戏项目开发:打造经典游戏的详细之旅
  • JavaScript基础篇——第五章 对象(最终篇)
  • whitt算法之特征向量的尺度
  • [数学基础] 矩阵的秩及其应用
  • K8S使用命令多集群管理配置
  • Java异步编程全解析:从基础到高阶实战
  • C#基础篇(09)结构体(struct)与类(class)的详细区别
  • 安卓设备信息查看器 - 源码编译
  • PiscTrace深蹲计数功能实现:基于 YOLO-Pose 和人体关键点分析
  • Unity Demo-3DFarm详解-其二
  • 【03】MFC入门到精通——MFC 添加控件 设置属性 按钮 文本框
  • EFK9.0.3 windows搭建
  • 供应链管理:定量分析中的无量纲化处理
  • jenkins+固定agent节点+maven+sonarqube+docker
  • Redis:分组与设备在 Redis 中缓存存储设计
  • 类与对象【下篇】-- 关于类的其它语法