重复造轮子 or not,这是一个问题:游戏开发灵魂拷问

在Unity游戏开发中,会有很多常用的功能需要开发,例如,输入系统,音效系统,行为树系统,对话树系统,本地化系统,寻路系统,Excel导入功能,等等。

 

行业中的常识是,不要重复造轮子。例如,输入系统的话,有Rewired插件,为什么不直接用呢?音效系统的话,有MasterAudio,为什么不直接用呢?本地化系统的话,有I2Localization,为什么不直接用呢?寻路系统的话,有A* Pathfinding,为什么不直接用呢?

 

常规的观点是这样的,一个这样的系统,开发一下要花几周时间,还不如直接用现有的,节省了时间。一些常用的系统合起来,可能有5万行代码,1人1年的开发成本,用现有的插件岂不是更快?

 

自己开发有如下好处:

1. 自己开发出来的系统往往更加简单,因为自己开发的系统只解决一个问题,而一个插件往往需要解决各种不同的需求。这个系统更加简单,就表示,使用起来也更加方便。

2. 自己开发的系统可以做更好的文档,有中文注释和Tooltip。

3. 自己开发的系统可以自己优化,可以提升效率。而别人的插件是不方便优化的。

4. 使用别人的插件,别人将来可能会放弃维护那个插件。而自己的代码就不用担心了。

5. 别人的插件往往代码量非常大,不易于理解。往往自己1千行能解决的问题别人要用1万行。这也是因为别人要照顾各种不同需求导致的。

 

复杂度的问题,例如:

1. Rewired插件,就是一个难懂的插件,其概念相当复杂,理解起来也非常困难。这样就导致开发的时候总是要重复的去读文档,导致开发效率降低。

2. AI插件Rain具有很高的复杂度,很多的东西,实际上都是不必要的。

 

效率的问题,例如:

1. MasterAudio需要在场景里面放一个MasterAudio预制体,编辑这个预制体的时候就有速度极慢的问题。

2. I2Localization取一个关键词的速度奇慢,自己做的简单的字典读取数据可以提升到5-10倍的速度。

3. AI插件Rain有运行效率极低的问题

4. 行为树插件BehaviourDesigner节点多了之后,编辑的时候非常卡

 

如果只是做三年游戏然后就转行,那么,使用插件是明智的选择。

如果要做游戏10年或者更久,那么,自己精心设计几个系统,在今后的游戏中都能够沿用。而自己设计的系统用在自己的项目中肯定是最优的,最合适的。时间久了之后,反而节省了开发时间,而不是浪费了开发时间。

这些仅限于大部分插件而言。但是,会有个别插件,实现的非常完美,而自己做的话会很麻烦,所以就直接用了,下面就是几个例子:

1. OdinInspector

2. TextMeshPro

 

接下来就是更大的一个问题,游戏引擎是自己造,还是用别人的。

不妨假设一个游戏公司有100个开发人员。假设一个自研引擎需要10人3年开发出来,成本大约为500万。

Unity引擎Pro版本的价格目前是¥1020每人每月,即12240每人每年,如果是100个人,则需要1224000元每年。如果使用unity引擎10年,需要付出1224万元。

Unreal是每个游戏收取5%的分成。这个公司有100个开发人员,一年成本至少1000万,那么,可以得到,每年从游戏中获得的利润至少1000万,其中要分5%给Unreal,就是50万。如果使用这个引擎10年,费用就是500万。

 

所以,从长期来讲,自研引擎有如下优势:

1. 长期来讲节省开发成本

2. 可以针对性的优化引擎

3. 可以做出更好的文档,特别是中文文档

4. 可以及时的修复BUG

 

可想而知,任何超过100人的游戏公司,都应该做好自研引擎的准备。即使目前只是10人的游戏公司,也应该为未来的发展做好打算。所以,自研引擎的计划是一定要准备好的。

 

 

 

关于重复造轮子

从短期来讲,3-5年,直接使用别人的技术是好的。但是从长期来讲10-20年,重复造轮子是好的。而公司的发展,看的就是谁笑到最后。

如果现在拿起Unity就用,10年之后,你还是拿着Unity。这样就没有竞争优势了。

10年之后,有个游戏公司创业,也可以直接拿个Unity,这样子他就跟你平起平坐了。

如果现在研发自己的引擎,没错,前几年要受苦受累,还可能倒闭。但是,如果能挺过10年。

10年之后,有个游戏公司创业,直接拿个Unity,可能就不能跟你自研的引擎比。

所以说,做什么事情都要有长期思维。这样才能笑到最后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值