|
Unity引擎本省就是一个框架,我们基于Unity再做一个游戏开发框架,本质就是建立一种组织自己项目的方式和方法,让程序+美术+策划一起协同工作,同时能开发出满足项目需求的游戏产品。所以游戏框架的架构与设计与项目管理本身有很密切的关系,今天从另外一个维度来说说基于游戏引擎来如何来做游戏app游戏开发框架。
对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。
1: Unity引擎给我们开发游戏提供的是机制

开发机制:
Unity给我们提供了两种开发机制,一种是组件化的开发机制,一种是ECS的开发机制。我们在做框架的时候,首先要想清楚我们是基于哪种开发模式,ECS现在比较火,性能高。组件化模式简单,符合大多数人的开发习惯。我们都采用引擎提供的开发机制来开发对应的游戏逻辑。

跨平台机制:
Unity帮我们解决了跨平台游戏发布的问题,这样不用每个平台都写一次代码。一次开发,发布到多个平台,但是我们发布游戏的时候可能要集成SDK,所以他提供原生的开发机制出来,让我们直接基于Unity 生成 对应平台的项目,然后再用对应平台的工具去对接SDK,比如Unity通过IL2cpp生成xcode的项目,如果要对接iOS的SDK,直接基于xcode使用苹果应用开发的规则来对接就好了,引擎提供SDK的机制,但是具体对接什么SDK,一次对接多少SDK,使用SDK的哪些功能,它不管。

提供性能参数分析相关机制与工具:
Unity 提供profiler工具对游戏开发中的性能剖析是非常重要的,因为有些性能数据只有Unity引擎内部才有,Unity内部有很多重要的与性能相关的数据,都可以供开发者访问到,但是它提供的性能分析工具只展示了通用重要的数据,于是有一些性能分析工具根据不同的项目性能需求,显示出更细致的性能数据的插件,其实都是读取了Unity提供的性能数据。
还有其它的一些机制,我这边就不一一列举了,对于Unity引擎给开发者提供的是一些游戏开发中的常用的机制,而接下来我们要做的是用这些机制,结合我们的项目和团队定制出最适合我们开发游戏项目的策略,所以本质上来说我们做游戏框架其实是基于Unity机制来定制定制适合我们的一种开发策略。
Unity游戏框架需要定制哪些策略
根据游戏定制渲染管线+Shader策略:
这个是大型游戏项目中很重要的一个环节,它首先会涉及到游戏的渲染效果,涉及到游戏运行的性能。比如我们要做一个卡通风格的游戏《火影忍者》里面所有的角色都是卡通风格,那么我们做框架的第一件事情就是要实现卡通渲染着色Shader。

如果游戏不需要支持任意数目的光源,最多只有4个光源,但又需要实时光照计算,而不能用静态光照,又需要极致性能在手机上跑,我们可能就会定制渲染管线或换渲染管线,用定制渲染管线或URP轻量级渲染管线来代替传统的向前渲染管线。所以框架要做的第一件事情就是根据项目选着或开发适合项目的渲染管线与Shader。然后做项目技术验证,看看当前的渲染效果与性能能否满足要求,多平台手机端的差异是否被解决等。

选择合适团队与项目的开发规则
开发模式选好了后,就来制定开发中团队协作的一些规则,通过规则来限定不同的研发角色的一些工作方式,让大家统一,高效的协同作战。比如版本管理工具用git。所有的角色,特效,UI,地图场景都做成预制体,预制体不挂任何的逻辑代码。根据美术来分好项目资源目录结构,场景美术, UI美术, 特效美术, 角色美术与动作特效等, 这样就可以独立的工作最大限度的减少版本冲突等。这些策略确定好了都是为了多人更好的协同开发,减少冲突。


定制好基于版本管理与增量更新的资源管理策略:
资源管理对于游戏开发而言是非常重要的,在开发中控制游戏的内中占用涉及到资源的加载与释放,每次更新新的功能与游戏打空包都涉及到资源的增量下载与更新,Unity提供了3中机制来做资源加载Resources, AssetsBundle, Addressable, 由于要涉及打空包和资源更新一般资源管理都抛弃掉了Resources,大部分的项目都基于AssetsBundle或Addressable来做好资源管理,资源的版本管理,和基于版本的增量更新与断点续传。这些都是框架自己根据项目来定制策略。

定制好多平台自动化打包发布的策略:
当我们开发完游戏或者游戏在测试的时候经常需要做版本发布。做好自动化的打包与发布非常的重要,比如某个版本要做内测了,用git拉取一个分支出来,然后运行自动化打包脚本,生成对应平台的安装包提交内测。内测的时候测试报告如何写,需要测试哪些功能等都要做好规定,定制好对应的策略,稳定的项目都是通过优秀的管理与测试测出来的。
定制好特定项目的特定工具

这个小组里有一些的Unity游戏主程框架进阶的一些课程,值得大家学习和交流。 |
|