我们平时都玩游戏,比如王者荣耀(王者荣耀团队年末的时候百人瓜分1亿年终奖),英雄联盟,绝地求生,彩虹系列等等,这些游戏都有一个共同点,那就是他们都是3D游戏。
对于3D游戏的开发,从语言的角度来说,一般有两种,一种是脚本语言,例如C#,JS,Boo等,另一种是非脚本开发,就是用C和C++来开发,两者各有优劣,不分好坏。
脚本开发
比如说如果采用脚本开发的话,单独的脚本语言无法开发游戏,需要结合u3D的游戏引擎或者是UE4(也称虚幻4)的游戏引擎(国内u3D的市场占有率远高于UE4),当然了,除了这两个引擎,还有很多非常棒的引擎,比如osg,寒霜,黑火,起源等等。
游戏引擎+脚本语言的方式,将游戏编程变为了可视化,就像是你使用VB开发程序一样,只需要添加对象,设置对象的参数,再用脚本来写代码就可以了,你不需要考虑内存的使用,因为游戏引擎会自动回收内存。
非脚本开发
而使用C或者C++来开发游戏,就完全不同,没有可视化的界面,游戏的窗口加载都需要用代码来实现,内存的开辟和回收需要用代码来控制,没有很高编程水准的人,根本开发不了。
随着社会的发展,科技进步,我们使用的电脑内存,CPU,GPU等硬件变得无比强大,已经进入了硬件过盛的时代,这个时候,我们编写游戏,无需刻意的去考虑游戏的内存占用大小(每个游戏对象都需要占用游戏资源),不用考虑CPU和GPU的频率支持(每一个游戏对象都需要来渲染)。
Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。其编写的程序可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。
优势
unity可以说是游戏开发领域最轻量级的游戏开发工具了,入门简单,界面简单(就好像VB一样),安装,调试,发布都非常的方便,语言采用c#或者JS作为脚本语言,学习成本低(.net开发人员可以很容易转行过来),官方的文档相当完善,并且给出了相对的demo。自己有自己的Asset Store,社区活跃且有相当多的资源可供下载。开发效率高。
劣势
一个硬币分两面,unity也有很多相当的缺点,最突出被大家吐槽的就是光影渲染效果差(相对于虚幻4引擎),材质复杂,而且内置的工具不完善,很多都需要第三方插件来完成。
作为一个游戏开发或者AR开发的入门者,untiy是一个非常非常不错的入门工具,初级游戏开发或者AR开发,Unity绰绰有余,但是开发高端领域的游戏,虚幻4或者是osg则是必须要学习掌握的。
如果要想长久在该领域发展,仅仅是一个Unity远远不够,虚幻4,osg等工具也是要学会使用的,模型工具例如3Dmax也是必须掌握的。