Unity架构师必备开源框架:3天打造大厂商用框架

发布时间 2023-10-24 15:03:56作者: 游戏开发阿博

现在Unity的相关技术已经都非常常熟了,如果你的技术能力与阅历够,搭建一个商用的游戏框架,你只需要3天的时间。今天给大家分享一个Unity老鸟3天能搭建一个自己的商用框架的几个必备的开源库,方便大家学习与使用,同时学习这些有前途的开源库也能让你在公司里面游刃有余。

 对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。

1: 搭建商用Unity框架必须要考虑的几个点

 

首先我们做商用的Unity游戏开发框架要考虑一些点,做一些取舍,来做好技术选型,主要考虑以下几个方面:

1:采用什么样的技术来做热更新,目前主流的热更新方案有: Lua解决方案, ILRuntime解决方法,TypeScript的puerts解决方案, IL2CPP的解决方案, 目前强烈推荐大家使用IL2CPP的解决方案huatuo/HybirdCLR。因为这个方案是性能最好的,不会改变任何Unity开发方式的最好的一种热更方案,也将会是Unity方案的主流。

2:选择一个好的资源管理技术方案,资源管理技术方案是游戏开发中最重要代码量最多的方案之一。资源管理主要是要考虑开发,发布,打空包,资源热更新,打包增量与更新, 多平台多渠道多版本管理等需求。

3: 其它一些小模块与游戏制作相关的工具,比如配置表,UI框架,时间管理,定时器,IO,Debug模块等。

4: 采用什么样的开发模式来组织业务逻辑代码, Unity是基于组件化开发模式的,很多游戏框架也会做一些小的改动来定义项目中的开发模式,比如有些框架用状态机作为流程切换与管理的主线,有些用传统的方式来做流程与管理的主线,具体可以根据自己要做的游戏类型, 开发习惯,与团队成员的技术能力等来分析与选择。

 

搞清楚了主要的这些点以后,我们就开始针对这些来列举一些开源的框架,方便大家来学习与使用,让你快速的搭建一个自己的框架出来,做框架不再是一个很高级的事情,按照自己的想法来定义一个开发模式,让自己后期开发游戏舒服快乐即可。我不主张直接用一个商用的整体框架, 比如GameFramework等, 除非他们和你的项目管理与组织方式非常贴近,否则要根据自己的项目实际来定制一个适合自己的开发模式与工作流。但是不可否认,GameFramework, MotionFramework,ET等游戏开发框架里面还是有很多值得学习的设计理念与习惯,所以作为开发者我们也要学习相关的一些架构设计与原则方式。

 

2: 商业框架必备: 当前流行的开源模块

 

我们不给大家推荐整体的框架,因为这个和你的游戏类型与管理方式,技术储备等相关。我给搭建推荐几个主要的模块框架,这些模块能很好的处理游戏开发中的特定问题,同时这些框架模块也是在商业项目中经过验证的。

首先是热更新,现在只要是新项目,我都推荐大家使用基于IL2CPP vm的热更方式huatuo/HybirdCLR, huatuo现在是途游开源的,HybirdCLR团队之前在途游,后来做了一个类似的框架HybirdCLR, 所以他们应该是同文同种,都可以用,具体用哪个,可以自己判断,

我把两个项目的github地址都放出来:

Huatuo: 途游开源,

https://github.com/tuyoogame/1.png

HybirdCLR: focus creative games(代码哲学)开源:

https://github.com/focus-creative-games2.png

热更新基于huatuo/HybirdCLR来进行项目组织与构建。选择huatuo/HybirdCLR最大的好处几乎不会影响到正常的Unity开发,你正常的使用Unity开发就可以了,热更新偷偷的就可以给你处理了。

 

选好了热更新模块以后,接下来就是资源管理模块,我推荐大家使用途游开源的YooAsset框架, YooAsset框架目前在很多项目中在用,因为也是途游经过了商业验证后开源出来的,能帮我们节省很多的开发时间,同时用起来也非常的方便,他有Edtior模拟器运行模式,单机运行模式,联机运行模式。

项目仍然来自于途游开源:

https://github.com/tuyoogame/3.png

热更框架与资源管理框架一确定,你的游戏开发框架基本上都不会太差,能达到商用级别。而且这两个都来自于途游的大厂开源,可以放心的使用。

 

接下来就是游戏数据配置表框架,这里的话给大家推荐的是luban与FlashExcel。luban更完善与强大,能处理好{excel(csv,xls,xlsx)、json、bson、xml、yaml、lua、unity ScriptableObject} => {binary、json、bson、xml、lua、yaml、erlang、 custom format}等格式,FlashExcel专门处理配置表格。分别给到大家他们的项目地址:

FlashExcel:

https://github.com/nizhenchao/FlashExcel

luban来自与focus creative games(代码哲学)开源:

https://github.com/focus-creative-games/luban4.png

3 如何能定制好自己的游戏框架

 

前面我们讲过游戏框架的核心就是定义一种针对某种类型项目的开发的协作与管理的方式。作为架构师如何能够定制好自己的游戏框架,我觉得重要的有几点:

(1) 掌握基本的原理原则与处理方式。虽然很多东西不用我们写,但是基本的原理原则和使用方式我们要知道,比如打空包,技术原理是如何做的,比如增量更新技术原理是如何做的,比如热更新的技术原理如何等,这些能够帮助我们更好的使用与阅读维护别人写的底层的库。为什么很多小伙伴自己用库,怎么都用不好,看不懂,其实就是知识的储备量不够,如果你能了解主流的解决方案与思路,再去看别人写的源码,你会发现开源库的好处就是别人花了大量的时间做了你要做的工作,而且还不用自己亲自动手,前提是你有和作者接近的知识储备,所以我们要注重我们的基础知识与基本原理原则的学习与积累。

(2) 搭建商用游戏框架还有重要的一个点就是先学习别人搭建的游戏开发框架是如何组织管理项目的,它们的设计的优点与缺点是什么?适合哪些游戏,哪些项目。很多人可能在公司用GameFramework/MotionFramework等,虽然我不建议大家在没有搞懂自己的游戏类型与开发管理方式是否与这类框架本身的理念符合时就盲目的使用开源的游戏框架,而不是自己定制,但是我还是推荐大家学习一些游戏开发框架的组织方式与设计理念,为定制你自己的开发流做好一些设计准备。

 

今天的分享就到这里了,关注我,下一节分享”Unity如何基于状态机来组织驱动游戏逻辑”。