首页 > 其他分享 >Unity架构师必备的开源库,让你3天搭建商用游戏框架

Unity架构师必备的开源库,让你3天搭建商用游戏框架

时间:2023-11-08 14:37:53浏览次数:35  
标签:游戏 框架 开源 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/ 

 

 

HybirdCLR: focus creative games(代码哲学)开源: https://github.com/focus-creative-games

 

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

 

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

项目仍然来自于途游开源: https://github.com/tuyoogame/

 

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

 

接下来就是游戏数据配置表框架,这里的话给大家推荐的是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/luban

 

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

 

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

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

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

 

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

相关文章

  • Unity HybridCLR(wolong)/huatuo系列
    Lua,ILRuntime,HybridCLR(wolong),huatuo热更对比分析 这两年,各种Unity热更新方案如雨后春笋般出来了,今天来写篇文章来对比一下Unity各大热更新方案的优缺点。目前主流的Unity热更新的方案有:  Lua系解决方案:内置一个Lua虚拟机,做好UnityEngine与C#框架的Lua导出。典型的......
  • Unity性能调优技术集锦
    性能调优,一直是游戏上线之前的很重要的一个环节,游戏帧率过低,手机发烫,低端机上跑不起来等,这些都需要来做优化,今天我们来给大家分享Unity做性能调优的常用技术手段。 性能调优的指导思想 接触过很多刚做性能调优的小伙伴,他们做性能调优最大的问题就是缺乏一个做性能优化......
  • Unity 编辑器UI 杂记
     用 rootVisualElement方法绘制按钮和用 GUILayout.Button绘制按钮混用的案例usingSystem.Collections;usingSystem.Collections.Generic;usingNUnit.Framework;usingUnityEditor;usingUnityEngine;usingUnityEngine.UIElements;publicclassMyTestPanel:......
  • WPF 使用 CommunityToolkit.Mvvm
    参考文档: IntroductiontotheMVVMToolkit-CommunityToolkitsfor.NET|MicrosoftLearn它是一个现代化,快速和模块化的MVVM库,对应用程序的结构或编译规范没有严格的限制。NuGet安装包搜索:CommunityToolkit.Mvvm导入usingCommunityToolkit.Mvvm;使用ObservableObjectpubli......
  • C#截图 开源组件库ShareX
    ShareX支持以下几种截图方式,其中全屏功能是指自动截取主屏幕桌面区域的截图(可以配置是否隐藏ShareX窗口、隐藏屏幕虚拟区域等),窗口功能是指截取屏幕中的指定进程的窗口截图(ShareX程序通过调用Windows系统的EnumWindows函数枚举屏幕中的顶层窗口,并动态生成窗口菜单的子菜单)、显示器......
  • Unity游戏排行榜制作与性能优化
    游戏排行榜是一个很重要的功能,在弱联网的单机游戏与网络游戏中排行榜都是非常重要的,今天我们来详细的讲解游戏排行榜的制作方案,主要有4个点:(1) 游戏排行榜排序算法核心算法实现;(2) 游戏排行服务器如何制作;(3) Unity客户端如何对接与请求排行榜数据;(4) Unity如何优化......
  • ZYNQ核心板及其底板开源啦!
    Hello-FPGAZYNQ设计开源啦!开源ZYNQ核心板+底板硬件设计、软件设计,软件设计使用裸机演示,演示了如何使用AXIDMA等关键dma模块欢迎加QQ讨论947559581https://github.com/Hello-FPGA核心板结构硬件实物......
  • JAVA开发(JAVA架构师成长之路)
    从一个最基础的JAVA开发人员成为JAVA架构师,需要经历8层能力的进阶。第一阶段:熟悉JAVA基础语法,学会写各种ifelse和流程语句,熟练使用各种数据类型,集合。能依葫芦画瓢,模仿别人的代码结构,新增类,修改类的信息和逻辑。这个阶段大概是一年的经验。第二阶段:熟悉使用各种开源组件,比如知......
  • 华为云开源 | 线下meetup · 电子科技大学站圆满收官
    11月3日下午,成都,华为云开源团队将“开源文化”带进电子科技大学。各开源项目负责人、华为云技术专家以及优秀社区贡献者为高校学生带来了一场精彩深刻的开源主题系列演讲并得到学生的一致好评,其中议题涵盖“数据库、前端、微服务、边缘计算”等热门技术领域。议题1:生成式AI与开......
  • Databend 开源周报第 118 期
    Databend是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn。What'sOnInDatabend探索Databend本周新进展,遇到更贴近你心意的Databend。MERGEINTO现已支持分布式执行MERGEINTO语句会根据......