第一章-第二题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 对重复性操作进行了优化.它之所以能高效地重复,是因为它会记录我们 ...
随机推荐
- idea key
sublime 3 —– BEGIN LICENSE —– Fred Zirdung Single User License EA7E-844672 6089C0EC 22936E1A 1EADEBE ...
- JS正则表达式元字符
https://segmentfault.com/a/1190000002471140
- Python之模块,迭代器与生成器
本节涉及内容: 1. 迭代器和生成器 2. 递归 3. 字符串格式化 4. 模块 内置模块 自定义模块 第三方模块 5. 序列化的模块 json pickle (一). 迭代器和生成器: 迭代器: ...
- Servlet 生命周期与web容器的关系
servlet生命周期由web容器(如tomcat)管理,初始化一次,直到web容器关闭才会被销毁.1.servlet是单例多线程,每个请求过来容器都会启用一个新线程 2.servlet在容器中保持单 ...
- js生成带参的二维码
最近项目中有需求生成带参的二维码,考虑过用JAVA后台生成返回前端展示,后面了解到用jquery的qrcode.js插件可以很好现实 引入js: require.config({ baseUrl : ...
- Mybatis 学习笔记1 不整合Spring的方式使用mybatis
两种方式都包含了: package com.test.mybatis; import java.util.List; import org.apache.ibatis.io.Resources; im ...
- DELL灵越15R5521安装黑苹果
按照网上的流程安装即可:(懒人法) 首先分出两个硬盘分区,一个10G左右(用于做系统),一个30G左右(用于装系统)://注意生成时选择不要格式化 然后利用硬盘助手将镜像文件(.cdr文件)写入10G ...
- CodeForces 455D 分块
题目链接:http://codeforces.com/problemset/problem/455/D 题意:给定一个长度为n的序列a[]. m次操作.共有两种操作 1 l r:将序列的a[l].a[ ...
- Codeforces 717G Underfail(最小费用最大流 + AC自动机)
题目 Source http://codeforces.com/problemset/problem/717/G Description You have recently fallen throug ...
- vs发布的程序不依赖运行时库msvcp100.dll
[摘要:msvcr100.dll:MS Visual C Runtime 100 msvcp100.dll:MS Visual CPp 100 vs建立的工程,运转时库的范例有MD(MDd)战MT ...