第一章-第二题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 对重复性操作进行了优化.它之所以能高效地重复,是因为它会记录我们 ...
随机推荐
- PHP如何获取二个日期的相差天数?
我们经常需要获取二个日期之间相差的天数,方便客户知道距离某个时间段是相差了多少天数,这样的显示结果现在是越来越流行的了.不再像以前那样呆板的显示日期的了.我们这里就分享了二种方法可以获取到二个日期之间 ...
- MySQL 5.5开启慢查询功能
vim /etc/my.cnf [mysqld] slow-query-log = on # 开启慢查询功能 slow_query_log_file = /usr/local/mysql/data/s ...
- Linux mkdir 创建文件夹命令
介绍: 该命令创建指定的目录名,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录 语法: mkdir [-m] [-p] 目录名 选项介绍: -m: 对新建目录设置 ...
- shell--1.shell 相关及变量
1.shell脚本解释器 Bourme Shell (/usr/bin/sh 或 /bin/sh ) Bourme Again Shell ( /bin/bash ) C Shell ( /usr/b ...
- 设置TextView按下时变换文字颜色
在res中建立一个color文件夹,在其中新建一个xml(这里为text_color.xml): <selector xmlns:android="http://schemas.and ...
- single-table inheritance 单表继承
type 字段在 Rails 中默认使用来做 STI(single-table inheritance),当 type 作为普通字段来使用时,可以把SIT的列设置成别的列名(比如不存在的某个列). 文 ...
- python 小试题
有个同事要帮一个朋友做一个小试题,题目如图: 由于个人在学习python路上,所以想用python 写出来这道题,来练练手,苦思冥想,再加上受同事的一些启发,加以扩展,写出代码如下: #!/usr/b ...
- SVN上传文件提示磁盘空间不足的问题
SVN上传文件大于100M,提示:Commit failed (details follow):While preparing 'E:\AFCData\tjsc20db_table.sql' for ...
- Lex使用指南
Lex是由美国Bell实验室M.Lesk等人用C语言开发的一种词法分析器自动生成工具,它提供一种供开发者编写词法规则(正规式等)的语言(Lex语言)以及这种语言的翻译器(这种翻译器将Lex语言编写的规 ...
- [MongoDB]MongoDB的优缺点及与关系型数据库的比较
汇总: 1. [MongoDB]安装MongoDB2. [MongoDB]Mongo基本使用:3. [MongoDB]MongoDB的优缺点及与关系型数据库的比较4. [MongoDB]MongoDB ...