Unity 游戏框架之GameFramework和ET对比

Unity 专栏收录该内容
190 篇文章 16 订阅

前言

Unity 的游戏框架有很多。这里列举几个我用过的吧。

ET:https://github.com/egametang/ET

GameFramework:https://github.com/EllanJiang/UnityGameFramework

XluaFramework:https://github.com/passiony/xlua-framework


一.GameFramework框架(简称GF)

1.框架简介

GF框架是一套比较成熟的,完整的“游戏框架”,使用于任何游戏引擎。GF作者还提供了UnityGameFramework(简称UGF)框架封装,我们可以在Unity中直接使用,框架提供了我们在Unity开发游戏可以用到的几乎所有模块,UGF框架的结构非常完整,甚至到了庞大的地步,模块很多,结构也很清晰,耦合度很低,但是框架完整就代表着,有一定的学习成本,以为它太完整了,就像引擎自带的API一样,很多东西你需要适应吧,看你自己的能里决定你的适应时长。

2.功能介绍

UGF中,最具有代表性的模块,也是最值得我们学习的模块,有一下这几个:
GameFramework框架详解之(一)框架总览
GameFramework框架详解之(二)框架启动
GameFramework框架详解之(三)资源管理器
GameFramework框架详解之(四)对象池模块
GameFramework框架详解之(五)Download下载器
GameFramwork框架详解之(六)UI框架
GameFramwork框架详解之(七)资源打包和加密
GameFramwork框架详解之(八)DataNode数据节点模块
GameFramwork框架详解之(九) DataTable配置表模块
GameFramwork框架详解之(十)Network网络框架

3.适合团队

准确的说,适合所有团队,原有有二:
1.如果你们团队没有能力自己开发框架,那么就只能用别人现成的框架,那肯定要找个靠谱的,UGF就是这样一个框架,而且适合大小团队,新手团队。因为它的模块清晰,适合约束新手不乱写代码。
2.如果你们团队又能里开发自己的框架,那么UGF绝对是一个很好的可参考框架,很多敌方值得我们去学习,学习它的结构,学习它的思想,很多内置的插件也很好用,可以直接拿来使UGF不太适合在里面修改它的框架,因为它的结构环环相扣,GF又是一个独立的工程,改动一个模块,会牵扯很多别的模块。

4.适合游戏

除非你的游戏使用的是ECS这种特殊的结构,否则我觉的基本所有的游戏都可以使用,哪怕你是帧同步游戏,因为框架提供了很好用的procedure流程体系,资源打包加载体系,配置表体系,数据节点体系,下载体系等等,我们直接使用这些封装好的东西就行了,自己的逻辑该怎么写就怎么写,

5.网络框架

UGF提供了完整的TCP网络框架。但是没有提供后端程序代码,当然,我觉得也不需要提供后端代码,一般也没有人同时负责前后两端,后端就应该交给专门的后端人员来开发,更何况,后端代码就应该用C++,go,java等 语言去开发,没必要非搞个C#的后端去使用,

6.热更新

框架本身不支持热更新,可以自己接入ILRuntime或者xlua框架。

二.ET框架

1.框架简介

ET框架是一套双端框架,Unity前后端开发全包了,不过个人觉得更倾向于后端,前端的框架并不是很完整,且不够精细,游戏资源管理,UI框架,基本就是一个建议的demo。根本无法做商业项目。更不能和GF框架相提并论了。只能说有些特色功能?比如ET版本的ECS。异步模块。双端网络模块。
ET的网络框架,前后端代码可以共享,如果前后端都使用ET的话,可以提高了双端的开发效率。但是也限制了后端只能用C#开发语言。
ET框架接入了一套异步框架,可以使用C#7.0的新语法特性,而且可以使用unity协程语法,如果使用C#开发的化,这个特性很棒。
ET的ECS,怎么说呢,不是Unity的ECS,只是接用了ECS的特征,作者在框架中使用的一种结构吧,这个其实和PureMVC有点相似,和GF的也有点相似,其实都是一个套路,就是框架管理类的一种管理方式吧。其实我个人更倾向于单例凡是,简单粗暴。

2.功能介绍

ET框架简介
ET框架-ECS
ET框架-组件模式
ET框架-ILRuntime热更新
ET框架-异步框架

3.适合团队

ET框架虽然有自己的框架体系,但是里面的模块封装的并不是很完整,有些模块并没有做的很精细,准确的说根本无法商业使用,如果你们想使用ET,团队中一定要有个可以写框架的主城,帮你们先把ET给扩充了,然后再使用。
我曾经使用ET开发过1年左右,完整的扩展过ET,并成功上线一款 盈利项目。我就不王婆卖瓜了,这是我的扩展ET框架,供你们参考吧:https://github.com/passiony/ETFramework
总的来说,ET适合有经验的小团队,更适合个人游戏开发者,前后端都是C#。

4.适合游戏

ET框架本身没有适合什么游戏这一说,你只要有能力,开发什么都行,但是还是前面的观点。ET不是一个特别完整的框架,如果开发大型的游戏,你就要能扩展框架里面的模块。
游戏框架自带的ILRuntime热更框架,ILRuntime本身的性能问题,导致ET不适合开发大型的,太吃硬件的游戏。因为你没有那个能力和精力去优化。
所以,个人觉的ET适合一些小型的,不会产生性能问题的小型游戏。当然我也听说,ET作者就使用ET开发过MMORPG的游戏,我觉的可能作者确实牛,知道怎么优化ILRuntime的代码,但是一般人真不行。

5.网络框架

ET的网络框架搞的比较完整,毕竟ET就是靠前后双端网络起家的。这里就不多介绍,如果你需要一个比较好的前后网络框架的化,可以参考ET。但是完整归完整,有些不太模块化。可能作者想把demo描述的更完整,写了很多无用的代码。后来我自己整理除了一个纯粹的模块化的网络框架,并优化了kcp相关代码。可以商业化的:https://github.com/passiony/kcp-unity

6.热更新

ET自带了ILRuntime热更新框架,全程C#开发,可以使用C#的新语法特性,这点很棒。但是根据我1年以上的ILRuntime使用经历来说,ILRuntime是有性能瓶颈的(当然也有可能我能力不够,无法继续优化ILRuntime的代码了,后来改使用xlua)大家参考:
最新 XLua 与 ILRuntime 性能对比

  • 5
    点赞
  • 0
    评论
  • 6
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页

打赏

PassionY

你的赞同是对我的鼓励

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值