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

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

前言

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

分层设计

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

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

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

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

分模块设计与模块实例

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

实例

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

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

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

关系与通讯

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

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

http://www.lryc.cn/news/583367.html

相关文章:

  • 自动化测试报告优化:jenkins+jmeter定制化HTML报告生成
  • skywalking-agent-docker镜像
  • 方差、协方差和协方差矩阵
  • Windows 10/11新系统跳过强制联网激活和注册微软账户
  • JavaScript数组键值去重方法
  • 【C++】容器适配器 + stack/queue/deque详解
  • EFK9.0.3 windows搭建
  • Ubuntu连接不上网络问题(Network is unreachable)
  • ubuntu环境下调试 RT-Thread
  • windows部署多实例filebeat监控相同路径下文件
  • 【Kafka】登录日志处理的三次阶梯式优化实践:从同步写入到Kafka多分区批处理
  • SAP-ABAP:SAP中DELECT语句用法详解实例总结
  • Go语言Gin框架实战:开发技巧
  • 2024 睿抗编程技能赛——省赛真题解析(含C++源码)
  • 【Python】遇到 “non-integer arg 1 for randrange() ” 问题的解决方法
  • 技术开发栈中 URL地址末尾加不加 “/“ 有什么区别?
  • 闲庭信步使用图像验证平台加速FPGA的开发:第六课——测试图案的FPGA实现
  • 解决IDEA缺少Add Framework Support选项的可行性方案
  • java中list.remove(item); // 直接移除会导致ConcurrentModificationException
  • 图像自动化处理初探:从拖拽上传到参数设置
  • 基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(5)失败用例截图与重试
  • 制作MikTex本地包可用于离线安装包
  • Synology Cloud Sync构建的企业级跨域数据中台
  • 前端性能优化:从之理论到实践的破局道
  • 【PTA数据结构 | C语言版】一元多项式求导
  • 使用 Docker 搭建 Rust Web 应用开发环境——AI教你学Docker
  • 图像处理中的凸包检测:原理与实现
  • 前端开发自动化设计详解
  • 两种方式清除已经保存的git账号密码
  • AI在垂直领域的深度应用:医疗、金融与自动驾驶的革新之路