zoukankan      html  css  js  c++  java
  • 第一章-第二题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通过组合的方式,让我觉得其更加的符合人类思维,也更加适合游戏的开发。例如,一个游戏技能需要旋转和移动的功能,可以单独编写移动和旋转的功能,然后将其挂到游戏物体上,这就代表一个技能。如果此时另一个技能也需要旋转功能,直接将之前写好的旋转脚本赋予这个新物体,这样就大大提高了代码的复用性。

  • 相关阅读:
    hdu 1290 献给杭电五十周年校庆的礼物 (DP)
    hdu 3123 GCC (数学)
    hdu 1207 汉诺塔II (DP)
    hdu 1267 下沙的沙子有几粒? (DP)
    hdu 1249 三角形 (DP)
    hdu 2132 An easy problem (递推)
    hdu 2139 Calculate the formula (递推)
    hdu 1284 钱币兑换问题 (DP)
    hdu 4151 The Special Number (DP)
    hdu 1143 Tri Tiling (DP)
  • 原文地址:https://www.cnblogs.com/ghll/p/5854154.html
Copyright © 2011-2022 走看看