首页 > 其他分享 >Unity架构师必备开源框架:3天打造大厂商用框架

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

时间:2023-10-24 15:15:30浏览次数:32  
标签:游戏 框架 开源 Unity 开发 HybirdCLR 架构师

现在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如何基于状态机来组织驱动游戏逻辑”。

标签:游戏,框架,开源,Unity,开发,HybirdCLR,架构师
From: https://www.cnblogs.com/bycw/p/17784821.html

相关文章

  • Unity打造Timer定时器框架
    1:为什么我们要自己造轮子来做定时器系统传统的Unity做定时器的方式有三种,总结如下:对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。(1)在组件类里面定义一个变量,每次Update的时候,累积时间,当时间......
  • Unity基于状态机的架构与设计
    我们做游戏的时候经常会有流程控制,流程控制的方法有很多,行为决策树,状态机等。本质差别都不大,就是把每一段执行逻辑做成一个一个的节点,根据条件执行某个节点,切换到某个节点。今天给大家分享一下基于状态机来做游戏流程的控制。 1一个简单的状态机案例 我们先来拆解一个使用......
  • unity shader入门精要第六章原理总结
    前言开发中常常有一些画面表现上的需求,但苦于不会写Shader,没办法实现,现在特地来学习相关原理知识。UnityShader入门精要的第六章前的内容已经很详尽了,在此不做记录。但第六章中的基础光照模型比较常见,这部分内容在GAMES101中也有讲解,可见其重要性,在此记录一下。标准光照模型(Bli......
  • JAVA架构师具备的技术和能力
    JAVA架构师是一种高级职位,需要具备深厚的技术实力和广泛的能力。以下是JAVA架构师常见的技术和能力要求:1、扎实的编程基础:JAVA架构师需要具备良好的编程能力和深入理解JAVA语言特性和编程范式,熟悉面向对象编程和设计模式。2、深入理解框架和技术栈:JAVA架构师需要熟练掌握常用的JAVA......
  • 分布式定时任务-利用分布式定时任务框架xxl-job实现任务动态发布
     1.场景:项目前期使用k8s部署的单节点,后期生产需要将单节点的服务扩展多个节点,每个节点的定时任务使用的quartz实现,如果不加限制且定时任务有对数据库的写操作,在不同节点上执行的定时任务容易造成数据库产生脏数据,所以需要分布式任务框架对任务进行控制,这里我们使用xxl-job实现。......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(1)
    在我们的SqlSugar的开发框架中,整合了Winform端、Vue3+ElementPlus的前端、以及基于UniApp+Vue+ThorUI的移动前端几个前端处理,基本上覆盖了我们日常的应用模式了,本篇随笔进一步介绍前端应用的领域,研究集成WPF的应用端,循序渐进介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应用......
  • 【不限框架】超好用的3d开源图片预览插件推荐
    今天给大家推荐一款超好用的图片预览插件-image-preview简单说明image-preview是一款主要面向移动端web应用,同时兼容pc,基于原生js,不限框架,react,vue,angular都可以使用,使用webgl作为渲染界面,提供高性能,优质体验的图片预览插件。图片浏览大图时提供了细腻的交互体验,针对移动端......
  • 架构师必备的37项技能清单
    几年前,我被问到“你是如何变成一名架构师的?”。基于这个话题,我们讨论了很多,比如必要的技术、经验以及所需要的知识储备等。这一次讨论促使我开始思考要成为一名架构师应该具备和学习的东西有哪些,成为一个优秀的架构师应该具备哪些能力和做哪些事情。为此我查阅资料,走访各位大佬,......
  • Unity中国、Cocos为OpenHarmony游戏生态插上腾飞的翅膀
    Unity中国、Cocos为OpenHarmony游戏生态插上腾飞的翅膀2023年是OpenHarmony游戏生态百花齐放的一年!为了扩展OpenHarmony游戏生态,OpenHarmony在基金会成立了游戏SIG小组,游戏SIG小组联合cocos,从cocos2dx入手一周内快速适配了cocos2.2.6的MVP版本,随后又分别适配了cocos2dx 3.x、4.x版......
  • Unity3D学习记录04——利用射线实现角色类似LOL的移动
    首先新建一个空白的GameObject,挂在一个MouseManager的脚本实现思路:通过获取鼠标点击的位置,获得该位置的信息,然后使角色移动到该位置MouseManager脚本的代码如下:1usingSystem.Collections;2usingSystem.Collections.Generic;3usingUnityEngine;4usingUnityEngi......