第一章-第二题Unity3D游戏引擎相关--By林培文

1) 此类软件是什么时候开始出现的, 这些软件是怎么说服你(陌生人)成为他们的用户的?  他们的目标都是盈利么?  他们的目标都是赚取用户的现金么?还是别的?

  2004年,Unity3D诞生于丹麦哥本哈根,05年将总部设在了美国旧金山,并发布了Unity 1.0版本,支持MAC平台。随后几年,Unity3D陆续Windows、IOS及Android等平台,至2011构建完PS3和XBOX360,标志其全平台的构建完成。(参考《Unity诞生于发展》 link:http://www.leiphone.com/news/201406/0618-xiaotian-unity3d-introduction-2.html )

  Unity3D拥有着诸多优势,也是其吸引广大用户的根本所在。首先,Unity3D拥有强大的跨平台能力。众所周知,游戏开发时间周期较长,在跨平台游戏引擎出现之前,多平台上线意味着要编写多份代码,这将浪费巨大的人力和物力。而多平台上线是游戏行业在当下的主流趋势,Unity3D是当下游戏引擎中,支持平台数的最多的引擎之一,截止到Unity 5,其支持的平台数达到21。其次,Unity3D编程周期短。随着手游市场的崛起,大量的开发团队开始进入游戏的研发,加剧了游戏行业的竞争,游戏行业的频繁迭代及最初的C++游戏编程的难度,让许多小团队无法承受如此的开销。Unity3D拥有许多完善的游戏功能模块,在其官方商店中也提供很多现成的组件,可以大大缩短游戏的开发周期。

  Unity3D公司目标是盈利,收费标准分多个梯度,其低廉的费用对于游戏开发者来说几乎可以忽略。如图是Unity官网关于软件的收费信息。

       

  如此低廉的费用,可以让人认为其只是为了维护的公司运营费用。

 

2)你个人第一次用此类软件是什么时候,你当时多大,具体在什么学校读几年级,是什么状态,对软件有什么期望  软件是如何到你手里的,例如:邮购,下载,互相拷贝,从应用商店购买等等。 

  第一次使用Unity3D是就读于福州大学大三学年。那时自己对游戏开发过程中图形渲染及物体模块有着浓厚的兴趣。期望通过软件能够满足自己的好奇心,同时也对软件能否拥有友好的界面、丰富的使用文档、完善的功能组件及易懂的代码框架抱有期望。Unity3D收费分为几个梯度,有针学生有免费的版本,我通过下载官网个人免费版本。事实不负所望,Unity3D软件和自己所期望的基本相符。

 

3)我们知道有些软件是收费的,有些是“免费” 的, 那么,写这个软件的工程师们,他们的工资大约是多少,请给出尽量详细的分析,精确到年收入多少万元人民币。

  为了得到使用该软件程序员工资的平均水平,利用国内知名度较高的三个招聘网站,分别是51Job、智联招聘及拉勾网。搜索关键词Unity3D,统计最近2个月全国各公司发布的相关招聘,并将月工资区间分为2k以下、2K-5K、5K-10K、10K-15K、15K-25K、25K-50K、50K以上几个层次,统计结果如下(统计结果没有根据工作经验 、年龄及地区做区分,是以全国为样本。同时网站选取有一定主观性。只供参考):

工资区间

2K以下

2K-5K

5K-10K

10K-15K

15K-25K

25K-50K

50K以上

拉钩网

1

52

255

237

227

19

0

51Job

42

433

1568

948

676

15

5

智联招聘

54

149

1625

814

561

41

8

总数

97

634

3448

1999

1464

75

13

  如图,做出该统计对应的饼图,从表中可以清晰的看出Unity3D软件工程师的工资范围(月薪)集中于5K-10K,10K-15K,分别占比45%和26%。

 

   

 

4)你是如何学会用这软件的?它给你什么好处,坏处? 这些软件是如何处理 bug 的?  如何更新新版本的?  你估计软件团队更新一个主要版本花了多少 人月? 请写上人月的定义.

   利用Unity3D官网的用户文档及相关案例视频教程进行Unity3D的学习,经过一段时间后,逐渐对Unity3D的开发方式有了一定的了解。Unity3D拥有良好的交互界面、详细的用户文档及游戏引擎的各功能组件,使我能够独立的开发一款小游戏。但是,Unity3D也有着一定的不足,如多个软件版本不能共存,自带的代码编译器不够友好,程序调试不方便等。Unity3D在处理Bug是较为麻烦的,因为其执行环境和代码编辑器是分离的,要找到Bug,就必须同时启动代码编辑器。通过软件界面的帮助菜单下更新按钮可以更新Unity3D的最新版本,Unity3D的每个版本更新量不大,很少弃用旧的API,对于需用改动的API会提供另一个版本,但当使用新版本软件打开旧版本项目时,软件会自动将旧版本升级,升级完成后,大部分时间可以直接运行,有时候需要稍微改动下代码,更新代价较小。人月是工作量的计量单位,是项目所有参与者工作时长的累计。由于软件帮助菜单下可以自动更新,且可以自动更新代码,因此,更新一个版本话费的人月非常低,甚至为0.(可以下班后让电脑运行更新即可)。

 

5)同一类型的软件之间是如何竞争的?你现在还用它么,或者是同类软件的不同品牌,为何?

   和Unity3D同类型的软件有UE4等。它们主要依靠对用户的收费程度、开发效率及画面效果等进行竞争。目前还在使用Unity3D,其便捷且快速的开发优势始终吸引着我。

 

6)5年后,这种软件运行的硬件会有什么变化, 软件再过5年还会存在么,为什么?

   当前,限制游戏发展的硬件条件主要包括CPU、内存及显卡。按照吴军的专著《浪潮之巅》对硬件的分析,五年的时间,足够让这几类硬件在性能方面有着几个数量级的提升,这将会给予游戏开发团队更高的开发空间,从而提供更加精美的游戏。所以个人认为,五年后,该软件仍会存在并且占据更高的额市场份额。

 

7)列举你在使用上述软件的时候观察到的 “特殊”现象,它们和硬件有什么不同?  这些能说明软件的某些本质特性么?

   在使用Unity3D开发的过程中,逐步发现了Unity3D的代码框架似乎更多的采用了组合的形式,而不像其他类型的软件,涉及到底层框架,就是大量的继承、抽象及实现,新手很难上手。而Unity通过组合的方式,让我觉得其更加的符合人类思维,也更加适合游戏的开发。例如,一个游戏技能需要旋转和移动的功能,可以单独编写移动和旋转的功能,然后将其挂到游戏物体上,这就代表一个技能。如果此时另一个技能也需要旋转功能,直接将之前写好的旋转脚本赋予这个新物体,这样就大大提高了代码的复用性。

posted @ 2016-09-08 18:55  ghll_coder  阅读(273)  评论(0编辑  收藏  举报