unity动画怎么调帧率 如何选择适合自己的游戏制作引擎?

[更新]
·
·
分类:游戏
4566 阅读

unity动画怎么调帧率

如何选择适合自己的游戏制作引擎?

如何选择适合自己的游戏制作引擎?

一、引擎的介绍
随着游戏开发的不断进步,游戏开发越来越庞大复杂,因此游戏引擎已经成为游戏开发必不可少的工具。引擎对基本的功能封装,对工具链的提供等都可以大幅降低游戏引擎的开发难度,提高开发速度和质量。
对于目前市场,3D手游的引擎选择主要分四部分:
Unity:在移动端更有优势占据手游市场70%的占有率,各种品类游戏都有
Unreal:两款正版吃鸡手游都是使用Unreal引擎,但手游MMO目前国内还没有上线产品,国内端游MMO成功的也很少
自研引擎:例如楚留香的Messiah,太极熊猫的Flexi等,优点在于非常熟悉可以提供深度定制和优化
其他引擎:应用较少不进行考虑。
这里其实选择的余地比较小,对于大部分没有自研引擎的公司来说,还是选择Unity居多,但是随着硬件的不断发展以及Epic公司自己的不断优化和持续更新,Unreal在手机上也有越来越多的公司和项目选择使用了。
部分已知手游项目:
(一个重要的选择原因:如果一款引擎在同类型项目中有成功项目,则我们可以很大程度相信这款引擎。)
二、选择引擎的基本原则
按照软件工程的开发流程,我们首先应该明确需求。以下是一些常见的需求点:
游戏类型?
目标用户,目标平台,目标机型是什么?
项目周期,成本和团队实力?
更倾向画质品质还是适配性?
是否有特殊的技术需求?是否大世界?是否支持物理?是否写实风格
何种同步技术?
等等
然后我们需要考察引擎的特性是否和我们的需求相符。
1、必须满足的特性,如果不支持则不能选用该引擎:
是否有成功的同类型产品?
引擎是否支持想要发布的平台,兼容性如何?
引擎的性能如何?包括CPU,GPU,内存等等,例如早期的Unreal如果开发商不做优化无法在低配手机上流畅稳定的运行。
引擎的成本如何,和团队的技术栈是否契合,开发效率如何?
引擎是否支持想要的技术?
2、最好支持的特性,但如果不支持可以第三方库或自主开发解决:
如果是多人在线游戏,引擎是否已经封装了成熟的同步机制?
是否支持更多的DC和更完善的优化?
如果是开发大世界游戏,引擎是否支持成熟的大世界系统(包括地形,植被,LOD,遮挡,优化等等)?
如果需要高级AI,引擎是否能高效完善支持?
如果需要物理碰撞,引擎是否能高效完善支持?
负责逻辑是否支持脚本,是否支持脚本可视化编辑器?
是否支持热更?
引擎是否自带编辑器(动画,场景,特效,UI,粒子等),以及编辑器是否适合,是否支持扩展?
第三方插件和库的支持如何?
引擎是否有良好的文档,是否有开发商官方的技术支持?
引擎是否完善的开发工具?如性能分析,打包等等。
三、引擎的功能划分和对比
有一句话说的好:
美术资源决定了游戏世界的外观,脚本资源决定了游戏世界的内容,而引擎部分决定了游戏世界的规则。
一款引擎往往包含,图形模块,AI模块,物理模块,寻路模块,输入模块,网络模块,UI模块,渲染模块,声音模块,编辑器模块等等,如果要全面评估我们应该针对各个模块进行详细的评估和对比。
但说道引擎,往往大家的第一印象都是引擎的图形渲染能力,可见图形对于引擎来说是至关重要的,因此我们会分为两部分,图形模块和其他模块,然后进行详细的比较。
图形模块
图形是游戏引擎的重中之中,主要功能就是提供封装底层的渲染接口(D3D,OpenGL,Metal,Vulkan等),渲染管线的定制(前向渲染,延迟渲染,多线程等),适配(PC,IOS,Android),以及一些基本渲染功能的提供例如后处理(抗锯齿,景深,屏幕矫色,扭曲,描边,SSAO等等),阴影,地形,捏脸,动画,天气等等。
由此可见在高端渲染技术上Unreal更有优势有强大的官方支持,性能也极佳,但是相对的低端设备的兼容性会略差特别是Android版本。Unity也可以实现相同的效果但是很多工作都需要自己开发。
其他
经过对比可知Unity更容易上手前期开发更快速,更容易做出适配更广(内存和稳定性)的游戏,但一些次时代技术需要自己实现。而Unreal学习成本较高开发效率较低,但是更容易做出顶尖效果的游戏,更适合开放世界,大型项目。
四、总结
如果是项目周期和成本比较宽裕,希望开发超高画质超高品质,开放世界的游戏,同时图形向技术积累较弱推荐使用Unreal,特别是FPS射击类游戏如果希望开发周期更短,或者有着深厚技术积累和技术支持推荐使用Unity。此外引擎的选择也受美术和策划的影响,特别是美术同学,对编辑器和引擎的熟悉成度对进度,效果和性能也有着非常大的影响。
其实对于大部分的游戏,两款引擎都可以满足需求,主要的差异还是在品质,时间,成本的项目管理三角形的取舍上。适合自己的才是最好的。

开发一款游戏需要什么软件?

游戏开发指利用计算机编程语言,如C编程语言、C 、java等,编写计算机、手机或游戏机上的游戏。 目前流行的游戏开发语言为C 编程语言,目前流行的游戏开发接口为DirectX9.0,还有OpenGL、SDL(Simple DirectMedia Layer)等。现在手机上玩的游戏分为Android与IOS两种不同平台,分别是用eclipse/MyEclipse和xcode。现在也流行一些跨平台的编程引擎,例如cocos2d-x、unity 3D等。
接下来,再看看游戏开发的课程,游戏开发的课程除了理论知识还包括软件的操作。
C 程序基础:通过学习C 语言,奠定编程基础。使用编译工具,高效构建代码。
算法与数据结构:通过学习算法与数据结构的基本概念,了解常用的数据结构及相关的抽象数据定义,认识计算机求解的基本思路与方法。
Win32程序入门:通过API和MFC的学习,熟悉Windows环境下程序设计基本方法。通过使用DirectX绘制2D图形。
游戏数学和智能应用:游戏中的坐标系,矢量、矩阵,几何碰撞,物理模拟,人工智能与寻路算法。
2D游戏技术与应用:2D 游戏技术概论,游戏地图系统,GUI 系统,战斗系统设计,任务系统优秀的声音引擎 BASS,Cocos2D-X 引擎,Box2D 物理引擎。
游戏开发的常用软件有C 、DirectX、Box2D、Cocos2d-x、Unity,不能说哪款最好用,因为这是游戏开发过程中都要用到的软件,必须都精通。
C 是在C语言的基础上开发的一种通用编程语言,应用广泛。
DirectX,(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口。
Box2D是一个用于模拟2D刚体物体的C 引擎。zlib许可是一个自由软件授权协议,但并非copyleft。
Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C Cocos2d-iPhone项目的版本。
Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎