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

前言

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

分层设计

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

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

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

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

分模块设计与模块实例

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

实例

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

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

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

关系与通讯

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

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

相关推荐
Ai财富密码8 小时前
AI赋能教育:低代码游戏化学习平台
人工智能·低代码·游戏
向宇it9 小时前
【unity小技巧】封装unity适合2D3D进行鼠标射线检测,获取鼠标位置信息检测工具类
游戏·3d·unity·游戏引擎
AA陈超15 小时前
虚幻引擎5 GAS开发俯视角RPG游戏 #06-11:游戏后效果执行
c++·游戏·ue5·游戏引擎·虚幻
EanoJiang16 小时前
第三人称——骑马系统以及交互动画
游戏
向宇it19 小时前
【unity小技巧】封装一套 Unity 的植物生长系统
游戏·unity·c#·游戏引擎
封奚泽优1 天前
使用Python制造扫雷游戏
开发语言·python·游戏·pygame·扫雷·random
星星火柴9361 天前
AscendantPath | 实现视觉小说的人物对话系统(二)
游戏·unity·游戏程序·版本为2022.3.57·配合github下载地址使用
死也不注释1 天前
【在Unity游戏开发中Dictionary、List介绍】
数据结构·游戏·unity·游戏引擎·list·游戏程序
你好!蒋韦杰-(烟雨平生)2 天前
扫雷游戏C++
c++·单片机·游戏
FreeBuf_2 天前
伪装成华硕游戏辅助软件的ArmouryLoader:突破系统安全防护的恶意代码注入器
安全·游戏·系统安全