第一章-第二题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通过组合的方式,让我觉得其更加的符合人类思维,也更加适合游戏的开发。例如,一个游戏技能需要旋转和移动的功能,可以单独编写移动和旋转的功能,然后将其挂到游戏物体上,这就代表一个技能。如果此时另一个技能也需要旋转功能,直接将之前写好的旋转脚本赋予这个新物体,这样就大大提高了代码的复用性。
第一章-第二题Unity3D游戏引擎相关--By林培文的更多相关文章
- [转载]Unity3D游戏引擎最详尽基础教程
原文地址:Unity3D游戏引擎最详尽基础教程作者:ShangShang 我一直向所有想做游戏的朋友推荐Unity3D,为什么呢?首先是因为专业,Unity3D非常强大,用它创建一个类似MiniGor ...
- Java程序设计(2021春)——第一章课后题(选择题+编程题)答案与详解
Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 第一章选择题 1.1 Java与面向对象程 ...
- 《学习OpenCV》练习题第五章第二题abc
代码: #include <stdio.h> #include <opencv/highgui.h> #include <opencv/cv.h> #include ...
- 《学习OpenCV》练习题第四章第二题
#include <highgui.h> #include <cv.h> #pragma comment (lib,"opencv_calib3d231d.lib&q ...
- ASP.NET自定义控件组件开发 第一章 第二篇 接着待续
原文:ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了 ...
- Linux第一章第二章学习笔记
第一章 Linux内核简介 1.1 Unix的历史 它是现存操作系统中最强大最优秀的系统. 设计简洁,在发布时提供原代码. 所有东西都被当做文件对待. Unix的内核和其他相关软件是用C语言编写而成的 ...
- Linux内核设计与实现 第一章 第二章
第一章 Linux内核简介 Unix特点: (1) Unix很简洁,仅仅提供几个几百个系统调用并且有一个非常明确的设计目的 (2) 在Unix中,所有的东西都被当作文件对待,通过一套相 ...
- CSS3秘笈复习:第一章&第二章&第三章
第一章: 1.<cite>标签不仅可以将网页设置为斜体,还能给标题做上标记,使它便于被搜索引擎搜索到. 第二章: 1.import指令链接样式表: CSS本身有一种添加外部样式的方法:@i ...
- Practical Vim 第一章 & 第二章
第一章:Vim 解决问题的方式 前言 本质上讲,我们的工作是重复性的.凡是可以简化重复性操作的方式,都会成倍地节省我们的时间. Vim 对重复性操作进行了优化.它之所以能高效地重复,是因为它会记录我们 ...
随机推荐
- 如何设置phpMyAdmin自动登录和取消自动登录
如何设置phpMyAdmin自动登录? 首先在根目录找到config.sample.inc.php复制一份文件名改为config.inc.php(如果已经存在 config.inc.php 文件,则直 ...
- 【Android学习】Windows下Android环境搭建
一. JDK下载配置 直接百度,很简单. 二.android JDK下载配置 1.进入下载官网(需要FQ):https://developer.android.com/studio/index.ht ...
- myBatis学习笔记
java.lang.NullPointerException at cn.itcast.mybatis.dao.UserDaoImpl.findUserById(UserDaoImpl.java:22 ...
- XHR——XMLHttpRquest对象
创建XMLHttpRequest对象 与之前众多DOM操作一样,创建XHR对象也具有兼容性问题:IE6及之前的版本使用ActiveXObject,IE7之后及其它浏览器使用XMLHttpRequest ...
- poj 1239
二次dp,还算好想. 先第一遍dp找出最后一个数字最小是几. dpf[i]=max{j}+1(dpf[j],dpf[j]+1,…,j位组成的数字小于j+1,j+2,…,i位组成的数字. 在第二遍dp, ...
- 多线程更新UITableView时容易导致的问题
我请求同一个接口两次, 第一次是那缓存, 第二次是那网络数据在请求成功回调的主线程异步的, 先赋值数据源, 然后调用uitableview reloaddata的方法, 这时候问题来了 reloadd ...
- java final 关键字
1.修饰类当用final修饰一个类时,表明这个类不能被继承.也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰.final类中的成员变量可以根据需要设为final,但是要注意fina ...
- iterator接口
Iterator用来做遍历,所有实现Collection接口的容器都有一个Iterator的方法以返回一个Iterator接口的对象
- Win10环境下安装Vmware+Ubuntu14 注意点
下载相关软件正常安装完成后可能会碰到以下两个问题,这里备注一下,备用 1.Ubuntu的root密码设置 2.Vmware网络连接设成桥接之后,Win10可以ping通Ubuntu,但Ubuntu无法 ...
- 【krpano】二维码自动生成插件(源码+介绍+预览)
简介 在krpano生成的全景支持HTML5在手机中展示,而在手机中打开全景网址时不方便,需要输入网址. 最近研究了如何让krpano全景根据自己当前的网址,自动生成二维码,并在电脑浏览时,可以展示出 ...