游戏框架(Unity3D游戏客户端基础框架)
“游戏框架”作为整个游戏的框架,具有核心的地位,一个游戏的层次和后期维护性就取决于游戏框架。
1:3D引擎框架图
2:Unity3D游戏客户端基础框架
一些通用的基础系统的框架搭建,其中包括:
UI框架(UGUI+MVC)
消息管理(Message Manager)
网络层框架(Socket + Protobuf)
表格数据(Protobuf)
资源管理(Unity5.x的AssetBundle方案)
热更框架(tolua)
2.1:UI框架
编写UI框架的意义:
1:打开、关闭、层级、页面跳转等管理问题集中化,将外部切换等逻辑交给UIManager处理。
2:功能逻辑分散化,每个页面维护自身逻辑,依托于框架便于多人协同开发,不用关心跳转和显示关闭细节。
--通用性框架能够做到简单的代码复用和“项目经验”沉淀。
基于Unity3D和UGUI实现的简单的UI框架,实现内容:
- 加载、显示、隐藏、关闭页面,根据标示获得相应界面实例;
- 提供界面显示隐藏动画接口;
- 单独界面层级,Collider,背景管理;
- 根据存储的导航信息完成界面导航;
- 界面通用对话框管理;
- 便于进行需求和功能扩展;
2.2:消息管理(Message Manager)
- 一个消息系统的核心功能:
- 一个通用的事件监听器;
- 管理各个业务监听的事件类型(注册和解绑事件监听器);
- 全局广播事件;
- 广播事件所传参数数量和数据类型都是可变的(数量可以是0~3,数据类型是泛型)
消息管理设计思路:在消息系统初始化时将每个模块绑定的消息列表,根据消息类型分类(用一个string类型的数据类标识),即建立一个字典Dictionary<string, List<Model>>:每条消息触发时需要通知的模块列表:某条消息触发,遍历字典中绑定的模块列表。
2.3:网络层框架(NetworkManager)
- 除了单机游戏,限制绝大多数的网游都是以强联网的方式实现的,选用Socket通信可以实时地更新玩家状态。
- 选定了联网方式后,还需要考虑网络协议定制的问题,Protobuf无疑是个比较好的选择,一方面是跨平台特性好,另一方面是数据量小可以节省通信成本。
- Socket通信:联网方式、联网步骤,数据收发以及协议数据格式。(加入线程池管理已经用一个队列来管理同时发起的请求,让Socket请求和接收异步执行,基本的思路就是引入多线程和异步等技术。)
- Protobuf网络框架主要用途是:数据存储(序列化和反序列化),功能类似xml和json等;制作网络通信协议等。(Protobuf不仅可以进行excel表格数据的导出,还能直接用于网络通信协议的定制。)
- Protobuf是由Google公司发布的一个开源的项目,是一款方便而又通用的数据传输协议。(在Unity中可借助Protobuf来进行数据存储和网络协议两方面的开发。)
2.4:表格数据
- 在游戏开发中,有很多数据是不需要通过网络层从服务器拉取下来的,而是通过表格配置的格式存储在本地。
- 游戏中的一个道具,通常服务器只下发该道具的ID(唯一标识)和LV(等级),然后客户端从本地数据中检索到该道具的具体属性值。(通常使用Excel表格来配置数据,可以使用Protobuf、JSON、XML等序列化和反序列化特性对表格数据转化。)
2.5:资源管理(AssetBundle)
- AssetBundle是Unity引擎提供的一种资源压缩文件,文件扩展名通常为unity3d或assetbundle。
- 对于资源的管理,其实是为热更新提供可能,Unity制作游戏的资源管理方式就通过AssetBundle工具将资源打成多个ab包,通过网络下载新的ab包来替换本地旧的包,从而实现热更的目的。
- AssetBundle是Unity编辑器在编辑环境创建的一系列的文件,这些文件可以被用在项目的运行环境中。(包括的资源文件有:模型文件(models)、材质(materials)、纹理(textures)和场景(scenes)等。)
Editor打包AssetBundle:
//Editor打包AssetBundle
[MenuItem(“Assets/Build AssetBundles”)]
static void BuildAllAssetBundles(){BuildPipeline.BuildAssetBundles(Application.dataPath+“/AssetBundles”,BuildAssetBundleOptions.None, BuildTarget.StandaloneOSXIntel);
}
2.6、热更新框架(tolua)
- 使用C#编写底层框架,使用lua编写业务逻辑,这是业内最常见的设计方式,还有一个非常成熟的热更新框架tolua。
- 通常可热更新的有:图片资源、UI预制和lua脚本,而处于跨平台的考虑,C#脚本是不允许进行热更的。
游戏框架(Unity3D游戏客户端基础框架)相关推荐
- CLion之C++框架篇-安装工具,基础框架的搭建(一)
CLion之C++框架篇-安装工具,基础框架的搭建(一) 背景 日常学习C++,也就是看看书.在vim里写写代码.在日常项目开发中,也是边看书(一是系统性理解.二是找找有什么更好的代码编写方式)边写代 ...
- 《Unity 3D游戏客户端基础框架》protobuf 导excel表格数据
前言: 之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数 ...
- Qt 框架性开发实践——基础框架篇
基于 Qt 的组件合成框架https://blog.csdn.net/luansxx/article/details/120668676 基于 Qt 的消息总线https://blog.csdn.ne ...
- python开发工具和框架安装器_Python基础框架和工具
最近在学Python金融大数据分析,在安装Python进行大数据分析的环境时遇到很多问题,例如:在安装pandas包时候就要到各种错误,总是缺少很多安装包,最后发现利用Python的Anaconda进 ...
- Unity3D游戏作品大盘点
* 原文链接: http://www.unitymanual.com/404.html 经典重现<新仙剑OL> <新仙剑OL>采用跨平台Unity3D引擎,耗资数千万,历时三年 ...
- 腾讯 tars java_腾讯 Tars 基础框架手动搭建——填掉官方 Guide 的坑
背景 Tars 简介 腾讯 Tars 是腾讯内部使用的 TAF(Tencent Application Framework)的对外开源版,去掉了许多冗杂多余的部分.该框架集开发.运维.微服务.RPC ...
- 腾讯 Tars 基础框架手动搭建——填掉官方 Guide 的坑
背景 Tars 简介 腾讯 Tars 是腾讯内部使用的 TAF(Tencent Application Framework)的对外开源版,去掉了许多冗杂多余的部分.该框架集开发.运维.微服务.RPC ...
- 多人网络游戏服务器开发基础学习笔记 I:基本知识 | 游戏设计模式 | 网游服务器层次结构 | 游戏对象序列化 | 游戏 RPC 框架 | 帧同步和状态同步
今天继续开新坑,尽管过了很多 Unix 套接字编程的坑,但是实际还是有很多不同场景和性能的需求,以及最服务器架构的内容也就接触过 preforking 和 master 带 worker 而已. 所以 ...
- Unity3D游戏引擎之构建游戏框架与导出IOS项目(一)
Unity3D游戏引擎之构建游戏框架与导出IOS项目 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/a ...
- 视频教程-热更新框架设计之客户端热更框架(中部)视频课程-Unity3D
热更新框架设计之客户端热更框架(中部)视频课程 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过程.软件 ...
最新文章
- linux tomcat 开启apr,tomcat开启APR
- 利用MyBatis的动态SQL特性抽象统一SQL查询接口
- mysql8审计_审计对存储在MySQL 8.0中的分类数据的更改
- stm32f407网页服务器,STM32F407单片机通过USR-LTE-7S4模块和服务器进行4G通信
- 2x麦克劳林公式_极限求解-泰勒公式理解
- 创建.NET Core程序的Nuget Package
- JavaWeb:重定向(redirect)和转发(forward)的区别
- 高中数学竞赛书籍推荐
- 测试实践:华为测试流程总结
- dz搬家 win linux,Discuz论坛完美搬家 详细分享我的DZ搬家步骤
- python数列_Python斐波拉契数列
- 阿龙的学习笔记---CMake指定C++版本
- 沪漂程序媛妹子的一天...
- HTML5 canvas 实现小时钟
- 使用树莓派4b和OpenCV做机械臂夹取
- “道德”,究竟是保镖还是杀手?
- 趣图:这种贱贱的骚操作,你们试过么?
- 专科计算机专业能报考南方电网,想进南方电网工作?你必须得是这些专业的学生!...
- 【Linux】主机字节序和网络字节序
- 小白快速完成图片设计的3款在线编辑器工具
热门文章
- Setup Factory安装及程序安装包制作教程
- Setup Factory 9 Trial使用
- 将小度WiFi改造为无线网卡(小度WiFi能够接收WiFi信号)
- java正则表达式大全(常用)
- 各种数值积分方法总结(从梯形积分、辛普森积分到龙贝格积分、自适应积分、高斯积分等)
- xmpp java_XMPP: Android基于Xmpp的即时通讯
- 无线通信——GSM系统组成
- 精密电阻阻值表丝印大全
- 苹果系统自带的计算机怎么恢复出厂设置,苹果电脑恢复出厂化设置的教程_苹果电脑怎样恢复出厂系统-win7之家...
- 计算机系统修复命令提示符,老司机帮您w10蓝屏后用命令提示符修复系统的方法...