unity3d入门关于Unity3D游戏引擎的介绍
游戏引擎是什么?
引擎是“软件框架”(software framework)。游戏引擎就是专门为游戏开发⽽设计的软件框架,提供游戏开发所需要的基础功能。
软件框架(Software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
框架的功能类似于基础设施,与具体的软件应⽤⽆关,但是提供并实现最为基础的软件架构和体系。软件开发者通常依据特定的框架实现更为复杂的商业运⽤和业务逻辑。这样的软件应⽤可以在⽀持同⼀种框架的软件系统中运⾏。
简⽽⾔之,框架就是制定⼀套规范或者规则(思想),⼤家(程序员)在该规范或者规则(思想)下⼯作。或者说使⽤别⼈搭好的舞台来做编剧和表演。
简单来说,利⽤游戏引擎制作游戏省去了“重复造轮⼦”的⼯作,能够极⼤⽅便游戏开发者。⽽且,由于游戏引擎通常拥有较⼤的使⽤者体,所以相互交流很⽅便,相关的教学资源和素材资源也很丰富。
但是,使⽤游戏引擎势必会受到游戏引擎的⼀些限制,引擎不提供的功能就实现不了。好在现有的商业游戏引擎都具有⼀定的开放性,⽐如
Unity3D就允许⽤户制作功能插件,极⼤扩展了游戏引擎的应⽤范围。
在商业游戏引擎流⾏之前,游戏⼤⼚其实早就在使⽤其专⽤引擎来开发游戏了,这些专⽤引擎通常专门针对某种游戏类型甚⾄特定某个游戏的开发⽽设计制作,不具备⼴泛的应⽤性。当前的⼀些商业游戏引擎,其实就是这些专⽤引擎经过⼀些改造⽽来。
⽤通俗的话来讲,游戏引擎就像是现代⼯业⽣产中的⼯具和机器,提供了⼀些实⽤的功能给游戏制作者,否则,游戏制作者就需要⾃⼰“重新发明轮⼦”,要么徒⼿撸出⼀辆汽车,要么⽼⽼实实先撸出⼀堆起⼦扳⼿,再撸出机床,最后再开始造汽车。游戏引擎相当于给游戏制作者全套⼯具。只不过,有的引擎给的⼯具相对更傻⽠,有的引擎给的⼯具更基础化。越傻⽠的⼯具越好⽤,但可控性可调性越低,越基础的⼯具对使⽤者的要求越⾼,但⾃由性更⼤,也能产出更好的产品。所以,好的引擎⼀定在功能性和⾃由性上有很好的平衡。
当前⽐较流⾏的游戏引擎
当前⽐较流⾏的游戏引擎可以分成⼏个类型。
⾸先是“全科型”游戏引擎。这类引擎功能完善,可以⽤来制作各种类型、各种规模的游戏,从⼀两个⼈玩⼀玩的独⽴游戏,到千万级投资的AAA⼤作都能搞定。譬如Unity3D、UE(虚幻引擎)、Source(起源引擎)等等都属于”全科型“。
unity3d.jpg
unreal.png
source.png
frostbite.jpg
第⼆类是“专科型”游戏引擎。这类引擎通常针对某⼀类游戏的制作功能⾮常完善且强⼤,对对于其他类型的游戏制作就不太⽀持了。但“专科型”引擎在其擅长的领域还是很强⼤的。譬如Cocos(专门制作2D游戏)、RPG Maker(专门制作⽇式RPG游戏)都属于此列。
cocos2d.png
rpgmaker.png
第三类是“业余型”游戏引擎。这类引擎通常针对⾮游戏⾏业专业⼈员玩票使⽤,通常具备可视化编程功能以⽅便使⽤者。但这类引擎通常功能⽐较有限,有的甚⾄还⽐不上⼀些游戏提供的关卡设计器。这类引擎的优势是简单易学,⽤来做点⼩玩意或者⽤来⼊门也是不错的。
在这类游戏引擎中我要重点提⼀下Stencyl这款引擎,它和著名的幼⼉编程软件Scratch⼀样都采⽤了“积⽊搭建式”可视化编程作为脚本编写⼿段。
Scratch在幼⼉编程⼊门⽅⾯很出名,国内的“编程猫”之类都属于“类Scratch”产品。
同时,Stencyl⽐Scratch更进⼀步,将这种编程⽅式做到了近乎专业的程度,如果耐⼼⾜够的话,完全可以⽤Stencyl做出专业品质的2D游戏。
stencyl.png
最后⼀类当然就是“关卡编辑器”了,这类⼯具其实相当于该游戏开发所⽤引擎的超级简化版,缺点当然是不能脱离游戏本⾝来使⽤。著名的Dota 1就是使⽤魔兽3的关卡编辑器来开发的。
魔兽争霸3地图编辑器
如何选择并使⽤游戏引擎
从通⽤性上考虑,Unity3D是⽬前适⽤范围最⼴的引擎,学会Unity3D基本上可以应对所有类型的制作需求,其个⼈版免费的策略也很适合初学者上⼿。
在掌握Unity3D的基础上,针对具体项⽬,可以尝试选择针对性更强的游戏引擎。⽐如如果制作⽇式RPG就⽤RPG Maker,对游戏画⾯效果有很⼤追求就⽤虚幻引擎。
但要注意的是,不同引擎的使⽤⽅法差异还是蛮⼤的,尤其对于初学者来说,转换引擎的学习成本很⾼,因此不建议在初学阶段频繁转换引擎。较好的做法是在吃透⼀个引擎,或者通过⼀个引擎吃透游戏制作流程之后,再酌情尝试其他引擎。
⽬前⽹上有很多关于U3D和UE孰优孰劣的论战,⼤多是些初学者在那⾥打嘴仗,建议⼤家远离这类争论,安⼼学习。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。