游戏框架(初探篇)

《游戏框架》

##《游戏框架》发布说明:

++++“游戏框架”还是“游戏架构”,立钻哥哥还是以“游戏框架”来命名这个主题吧。

++++“游戏框架”作为整个游戏的框架,具有核心的地位,一个游戏的层次和后期维护性就取决于游戏框架。

++++《游戏框架》当然也是一个探索篇,作为这个分类的第一篇博文,还是先探索一段时间,后期根据需要再推出一个精品博文。

====>立钻哥哥带您学游戏框架。


##《游戏框架》目录:

#第一篇:框架入门篇

#第二篇:框架夯实篇

扫描二维码关注公众号,回复: 1561627 查看本文章

#第三篇:框架实战篇

#第四篇:框架进阶篇

#第五篇:框架高级实战篇

#第六篇:立钻哥哥带您学框架



#第一篇:框架入门篇

++第一篇:框架入门篇

++++第一章:框架概述

++++第二章:UI框架



++第一章:框架概述

++++1.1Unity3D游戏客户端基础框架

++++1.2、立钻哥哥带您学游戏框架





###1.1Unity3D游戏客户端基础框架

++1.1Unity3D游戏客户端基础框架

++++一些通用的基础系统的框架搭建,其中包括:

--UI框架(UGUI+MVC

--消息管理(Message Manager

--网络层框架(Socket + Protobuf

--表格数据(Protobuf

--资源管理(Unity5.xAssetBundle方案)

--热更框架(tolua


++1.1.1UI框架

++++编写UI框架的意义:

--打开、关闭、层级、页面跳转等管理问题集中化,将外部切换等逻辑交给UIManager处理。

--功能逻辑分散化,每个页面维护自身逻辑,依托于框架便于多人协同开发,不用关心跳转和显示关闭细节。

--通用性框架能够做到简单的代码复用和“项目经验”沉淀。

++++基于Unity3DUGUI实现的简单的UI框架,实现内容:

--1、加载、显示、隐藏、关闭页面,根据标示获得相应界面实例;

--2、提供界面显示隐藏动画接口;

--3、单独界面层级,Collider,背景管理;

--4、根据存储的导航信息完成界面导航;

--5、界面通用对话框管理;

--6、便于进行需求和功能扩展;


++1.1.2、消息管理(Message Manager

++++一个消息系统的核心功能:

--一个通用的事件监听器;

--管理各个业务监听的事件类型(注册和解绑事件监听器);

--全局广播事件;

--广播事件所传参数数量和数据类型都是可变的(数量可以是0~3,数据类型是泛型)

++++消息管理设计思路:在消息系统初始化时将每个模块绑定的消息列表,根据消息类型分类(用一个string类型的数据类标识),即建立一个字典Dictionary<string, List<Model>>:每条消息触发时需要通知的模块列表:某条消息触发,遍历字典中绑定的模块列表。

++1.1.3、网络层框架(NetworkManager

++++除了单机游戏,限制绝大多数的网游都是以强联网的方式实现的,选用Socket通信可以实时地更新玩家状态。

++++选定了联网方式后,还需要考虑网络协议定制的问题,Protobuf无疑是个比较好的选择,一方面是跨平台特性好,另一方面是数据量小可以节省通信成本。

++++Socket通信:联网方式、联网步骤,数据收发以及协议数据格式。(加入线程池管理已经用一个队列来管理同时发起的请求,让Socket请求和接收异步执行,基本的思路就是引入多线程和异步等技术。)

++++Protobuf网络框架主要用途是:数据存储(序列化和反序列化),功能类似xmljson等;制作网络通信协议等。(Protobuf不仅可以进行excel表格数据的导出,还能直接用于网络通信协议的定制。)

++++Protobuf是由Google公司发布的一个开源的项目,是一款方便而又通用的数据传输协议。(在Unity中可借助Protobuf来进行数据存储和网络协议两方面的开发。)

++1.1.4、表格数据

++++在游戏开发中,有很多数据是不需要通过网络层从服务器拉取下来的,而是通过表格配置的格式存储在本地。

++++游戏中的一个道具,通常服务器只下发该道具的ID(唯一标识)和LV(等级),然后客户端从本地数据中检索到该道具的具体属性值。(通常使用Excel表格来配置数据,可以使用ProtobufJSONXML等序列化和反序列化特性对表格数据转化。)


++1.1.5、资源管理(AssetBundle

++++AssetBundleUnity引擎提供的一种资源压缩文件,文件扩展名通常为unity3dassetbundle

++++对于资源的管理,其实是为热更新提供可能,Unity制作游戏的资源管理方式就通过AssetBundle工具将资源打成多个ab包,通过网络下载新的ab包来替换本地旧的包,从而实现热更的目的。

++++AssetBundleUnity编辑器在编辑环境创建的一系列的文件,这些文件可以被用在项目的运行环境中。(包括的资源文件有:模型文件(models)、材质(materials)、纹理(textures)和场景(scenes)等。)

++++Editor打包AssetBundle

//立钻哥哥:Editor打包AssetBundle

[MenuItem(Assets/Build AssetBundles)]

static void BuildAllAssetBundles(){

    BuildPipeline.BuildAssetBundles(Application.dataPath + /AssetBundles, BuildAssetBundleOptions.None, BuildTarget.StandaloneOSXIntel);

}

++1.1.6、热更新框架(tolua

++++使用C#编写底层框架,使用lua编写业务逻辑,这是业内最常见的设计方式,还有一个非常成熟的热更新框架tolua

++++通常可热更新的有:图片资源、UI预制和lua脚本,而处于跨平台的考虑,C#脚本是不允许进行热更的。



##第二章:UI框架

++第二章:UI框架

++++2.1MVC

++++2.2UIBase

++++2.3UIManager

++++2.4ResourceManager

++++2.5Defines

++++2.6Singleton

++++2.7SingletonException

++++2.8DDOLSingleton

++++2.9GameController

++++2.10CoroutineController

++++2.11StartGame

++++2.12TestOne

++++2.13TestTwo

++++2.14BaseController

++++2.15BaseModel

++++2.16BaseModule

++++2.17ModuleManager

++++2.18Message

++++2.19MessageCenter

++++2.20MessageType

++++2.21EventTriggerListener

++++2.22MethodExtension

++++2.23

++++2.24

++++2.25

++++2.26

++++2.27

++++2.28

++++2.29

++++2.30

++++2.31

++++2.32


。。。。未完待续。。。=>立钻哥哥带您学游戏框架










++立钻哥哥推荐的拓展学习链接(Link_Url

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

++++游戏框架(初探篇)https://blog.csdn.net/VRunSoftYanlz/article/details/80630325

++++设计模式简单整理https://blog.csdn.net/vrunsoftyanlz/article/details/79839641

++++U3D小项目参考https://blog.csdn.net/vrunsoftyanlz/article/details/80141811

++++UML类图https://blog.csdn.net/vrunsoftyanlz/article/details/80289461

++++Unity知识点0001https://blog.csdn.net/vrunsoftyanlz/article/details/80302012

++++U3D_Shader编程(第一篇:快速入门篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80372071

++++U3D_Shader编程(第二篇:基础夯实篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80372628

++++Unity引擎基础https://blog.csdn.net/vrunsoftyanlz/article/details/78881685

++++Unity面向组件开发https://blog.csdn.net/vrunsoftyanlz/article/details/78881752

++++Unity物理系统https://blog.csdn.net/vrunsoftyanlz/article/details/78881879

++++Unity2D平台开发https://blog.csdn.net/vrunsoftyanlz/article/details/78882034

++++UGUI基础https://blog.csdn.net/vrunsoftyanlz/article/details/78884693

++++UGUI进阶https://blog.csdn.net/vrunsoftyanlz/article/details/78884882

++++UGUI综合https://blog.csdn.net/vrunsoftyanlz/article/details/78885013

++++Unity动画系统基础https://blog.csdn.net/vrunsoftyanlz/article/details/78886068

++++Unity动画系统进阶https://blog.csdn.net/vrunsoftyanlz/article/details/78886198

++++Navigation导航系统https://blog.csdn.net/vrunsoftyanlz/article/details/78886281

++++Unity特效渲染https://blog.csdn.net/vrunsoftyanlz/article/details/78886403

++++Unity数据存储https://blog.csdn.net/vrunsoftyanlz/article/details/79251273

++++Unity中Sqlite数据库https://blog.csdn.net/vrunsoftyanlz/article/details/79254162

++++WWW类和协程https://blog.csdn.net/vrunsoftyanlz/article/details/79254559

++++Unity网络https://blog.csdn.net/vrunsoftyanlz/article/details/79254902

++++C#事件https://blog.csdn.net/vrunsoftyanlz/article/details/78631267

++++C#委托https://blog.csdn.net/vrunsoftyanlz/article/details/78631183

++++C#集合https://blog.csdn.net/vrunsoftyanlz/article/details/78631175

++++C#泛型https://blog.csdn.net/vrunsoftyanlz/article/details/78631141

++++C#接口https://blog.csdn.net/vrunsoftyanlz/article/details/78631122

++++C#静态类https://blog.csdn.net/vrunsoftyanlz/article/details/78630979

++++C#中System.String类https://blog.csdn.net/vrunsoftyanlz/article/details/78630945

++++C#数据类型https://blog.csdn.net/vrunsoftyanlz/article/details/78630913

++++Unity3D默认的快捷键https://blog.csdn.net/vrunsoftyanlz/article/details/78630838

++++游戏相关缩写https://blog.csdn.net/vrunsoftyanlz/article/details/78630687

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

#立钻哥哥Unity学习空间:http://blog.csdn.net/VRunSoftYanlz/

--_--VRunSoft : lovezuanzuan--_--

猜你喜欢

转载自blog.csdn.net/VRunSoftYanlz/article/details/80630325