所谓游戏框架

最近在追一部比较老的剧——【所谓婚姻】,为了凸显下我也是个文艺的小姑娘,就套用一下它的框架——【所谓游戏框架】。

游戏框架,顾名思义,设计游戏框架的时候就好像盖房子打地基,与此同时,我们还会想到很多特征要求,稳定、安全、简单、灵活易用等,如果想要设计出一个好的框架就需要具备这些条件。当然,是没有一套万能的、适用于所有游戏的框架的,游戏框架并不仅限于一种,有常见的GameFramework框架,MVC框架等,还有一些是技术比较高的人自己搭建的一套框架,其实万变不离其宗,每个框架的设计理念都是相同的,只要能满足实际开发的需求、适合自己的才是好框架。

游戏的基础框架

每一个游戏框架都应该含有UI框架、消息管理、网络层框架、表格管理、资源管理及其热更框架。

1. UI框架 :主要控制UI的逻辑,打开、关闭界面、层级及页面跳转,将外部切换等逻辑交给UIManager处理,基于unity3d和UGUI实现的简单的游戏框架,实现内容:显示与隐藏界面;所有界面显示的内容都可以在UI层中罗列出来;说到底,UI框架主要控制的就是UI逻辑。
编写UI框架的意义:
1)打开、关闭、层级、页面跳转等管理问题集中化,将外部切换等逻辑交给UIManager处理。
2)功能逻辑分散化,每个页面维护自身逻辑,依托于框架便于多人协同开发,不用关心跳转和显示关闭细节。
3)通用性框架能够做到简单的代码复用和“项目经验”沉淀。
基于Unity3D和UGUI实现的简单的UI框架,可以实现:
1)加载、显示、隐藏、关闭页面,根据标示获得相应界面实例;
2)提供界面显示隐藏动画接口;
3)单独界面层级,Collider,背景管理;
4)根据存储的导航信息完成界面导航;
5)界面通用对话框管理;
6)便于进行需求和功能扩展;
2. 消息管理 ,可以实现事件分发。
3. 网络层框架 ,通讯协议,前后端交互。除了单机游戏,限制绝大多数的网游都是以强联网的方式实现的,选用Socket通信可以实时地更新玩家状态。选定了联网方式后,还需要考虑网络协议定制的问题,Protobuf无疑是个比较好的选择,一方面是跨平台特性好,另一方面是数据量小可以节省通信成本。Socket通信:联网方式、联网步骤,数据收发以及协议数据格式。(加入线程池管理已经用一个队列来管理同时发起的请求,让Socket请求和接收异步执行,基本的思路就是引入多线程和异步等技术。)。
Protobuf网络框架主要用途是:数据存储(序列化和反序列化),功能类似xml和json等;制作网络通信协议。(Protobuf不仅可以进行excel表格数据的导出,还能直接用于网络通信协议的定制。)。Protobuf是由Google公司发布的一个开源的项目,是一款方便而又通用的数据传输协议。(在Unity中可借助Protobuf来进行数据存储和网络协议两方面的开发。)
4. 表格管理,数值表读取,数值逻辑处理,数值查询。在游戏开发中,有很多数据是不需要通过网络层从服务器拉取下来的,而是通过表格配置的格式存储在本地。
游戏中的一个道具,通常服务器只下发该道具的ID(唯一标识)和LV(等级),然后客户端从本地数据中检索到该道具的具体属性值。(通常使用Excel表格来配置数据,可以使用Protobuf、JSON、XML等序列化和反序列化特性对表格数据转化。)(每一个游戏框架中都会制作一个转表工具的)
5. 资源管理 ,资源打包,更新方案。AssetBundle是Unity引擎提供的一种资源压缩文件,文件扩展名通常为unity3d或assetbundle。
对于资源的管理,其实是为热更新提供可能,Unity制作游戏的资源管理方式就通过AssetBundle工具将资源打成多个ab包,通过网络下载新的ab包来替换本地旧的包,从而实现热更的目的。
AssetBundle是Unity编辑器在编辑环境创建的一系列的文件,这些文件可以被用在项目的运行环境中。(包括的资源文件有:模型文件(models)、材质(materials)、纹理(textures)和场景(scenes)等。)
6. 热更框架 ,逻辑热更新方案xlua轻量级,tolua较重(tolua与xlua热更新随后会详细介绍)
使用C#编写底层框架,使用lua编写业务逻辑,这是业内最常见的设计方式,还有非常成熟的热更新框架tolua以及xlua。
通常可热更新的有:图片资源、UI预制和lua脚本,而处于跨平台的考虑,C#脚本是不允许进行热更的。
每一个游戏框架中都包含这几个模块,如果你新进一家公司,就需要去了解他们的游戏框架,了解了游戏框架的这几个模块、整体架构,上手起来就会很容易啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值