|
为什么有Unity引擎还要搭建一个游戏框架?
Unity是游戏引擎,面对的是任意类型的游戏使用和不同的开发团队。所以他提供的是机制,很少提供一些具体的策略,比如资源管理,提供addressable/asssetsBundle机制。
比如开发模式提供组件化开发的模式,比如编辑器扩展,提供编辑器扩展的机制。
Unity提供的场景编辑,光照烘培,粒子系统等工具为我们开发游戏提供了很多方便,解决了3D游戏中场景制作特效等问题。提供Prefab机制,可以将编辑的好的内容做成一个一个的预制体。提供渲染管线定制与Shader开发机制,方便我们做出高性能的渲染和特定的效果以及开发特殊的Shader。提供了这些机制后,至于每个团队,每家公司具体怎么用即使用策略交给团队与公司自己决定,Unity不去做过多的设计和干涉。
所以这就是为什么很多公司会基于Unity 做一套适合自己团队,适合自己游戏的开发框架, 来规定一些具体的策略,和开发协作中的一些规定。
每个公司开发的游戏类型和需求不一样,有一些专门领域的算法和工具需要公司来定制,自然unity就不会提供了,比如特定的地图编辑器等。
Unity游戏框架要解决哪些问题?
上面了解了我们为何有了Unity引擎还要搭建Unity框架,接下来我们来分析一下一个Unity游戏开发框架到底要解决哪些问题,确定哪些策略和机制。
首先要确定的就是组织代码和资源的方式。
我们做项目需要维护,需要多人协作,同时开发游戏,包含了美术,策划,程序等多个岗位的开发人员。如果通过制定一个策略把这些开发人员组织在一起,比如目录结构如何划分,美术做好的界面放哪里,美术做好的地图放哪里,美术做好的特效放哪里,策划做好的数值数据放哪里,程序如何使用资源,如何读取策划的数值表,数值表的格式是什么?程序的代码如何放,哪些属于其它项目可用的代码,哪些属于这个游戏业务逻辑代码。
其次要考虑的是游戏的核心玩法所需要的美术风格,渲染效果和游戏性能。
对于一个游戏而言最重要的现在就是玩法与效果,所以客户端的游戏效果是什么样子对于游戏来说很重要,所以很多大型的游戏公司里面做项目的第一件事情就是定制渲染管线编写Shader做好对应的美术风格。
同时手机游戏还要考虑不同的平台显示的效果的差异,需要通过修改代码来修正这些显示上的差异。还有些核心的玩法需要高度的依赖一些Shader,比如衣服布料等,同时多人战斗的核心玩法还需要定制和修改相关的组件来做到高性能,支撑核心战斗。
还有可能要针对游戏的玩法和类型开发一些特殊的工具,比如地图编辑器,比如关卡编辑器,比如路径点标记等等。这些就需要开发一些特殊的工具和脚本。
最后要做的就是上线发布时候必要的一些工具和功能,比如SDK对接,打空包,资源更新,代码热更新等。考虑这些,也是我们做游戏框架必须要解决的问题,而这些问题一般Unity引擎不会直接提供。
加入我的游戏开发交流群,
给你分享更多游戏源码及其他学习素材 |
|