查看: 108|回复: 20

Ue4的开源是否会导致UE4的毁灭?

[复制链接]
发表于 2021-5-4 10:50 | 显示全部楼层 |阅读模式
Ue4开源了,Unity会一直抄袭Ue4,最终超越ue4。 然而,Unity不开源,所以Ue4不能参考Unity,最终被Unity实现全方位超越

评分

参与人数 1鲜花 +1 收起 理由
elcoteq984 + 1 淡定

查看全部评分

发表于 2021-5-4 11:00 | 显示全部楼层
一些人的回答确实给我带来了欢乐,感谢啊,哈哈~
这问题本身确实挺无聊的,但是我尽量给大家说一些正经的内容,而不是一来就开嘲讽。大家意见不同很正常,但至少让吃瓜群众看了之后,多少有点价值收获吧。
首先,我要旗帜鲜明的表明我的观点:我相信Unity绝不会抄袭UE4!
理由如下:
一,法律问题。大家可能身在国内这种宽松自由的环境习惯了,写代码也是不去管那么多条条框框。但是实际上在欧美国家,或者说是在正规的大公司里,抄袭代码是一件很严重的事情。我当年在微软的时候,一进去就被前辈告知,你写代码千万不能去网上搜代码来抄,抄开源代码也不行(也许MIT协议的行?我不是协议专家)。直接复制粘贴不行,看了代码后借鉴思路架构再自己手写出来也不行(类似洗稿)。保险起见,只能自己思考手写出来才行。国外的法律意识很强,所以但凡Unity或者别的公司,是个正经有法律操守有追求的公司,都不会直接去抄别人的代码。另外UE4的源码是开放的,你能看到,但不代表你拥有随意修改和使用的权利,所以不管是直接复制还是照着它借鉴显然都是违规的。
二,功能确实会重叠。现实二者确实有很多相像的,大家都是做引擎的,游戏引擎的功能集合大部分都是重叠的,所以我也能理解题主会有这种疑问。但是但是但是!就算Unity的一些功能:
Unity Shader Graph,明眼人一看就知道跟UE的材质编辑器很像。
Unity Visual Scripting,也明显是和UE4 BP一样的模式。
Unity的Render Streaming和UE4一年前左右的PixelStreaming的功能架构和限制也是一样的。


同样的,UE4的Marketplace也和Unity的AssetStore很像,但我觉得也不至于去抄。
所以就算我们这些外行人觉得这些功能是如此的相像,按我们自己的套路来做,就明显很可能是借鉴的。你觉得Unity在做这些功能的时候,有没有拿UE4的源码来参考借鉴?我们如果这么想,那就是明显以小人之心度君子之腹了。竞争归竞争,但大家也都有操守法律意识,两家都可以算是伟大的公司。所以我依然相信Unity绝对不会抄袭UE4的源码!
另外,我强烈支持这种互相借鉴一起提高给大家造福利的竞争方式!所以我看到Unity也出了这些功能,我更多感到的是高兴。这种让开发者受益的事,本就应该多多益善啊。Unity出的一些2D优化的功能,我看了也眼馋,也希望UE4能有,奈何他们沉迷于高大上炫酷中无法自拔,我也吐槽不动。摊手~
三,技术可行性问题。再来聊一下假如Unity真的要抄UE4(只是假如,假如!枪可以放下了~),从技术可行性来说,是否可以实现超车呢?我依然觉得不可行。原因是:
1.  人的智慧大体是均衡的。UE4的引擎部几百号人不乏精英,我相信Unity的人也是大体如此。引擎开发是个大工程,人员差不多,少数一两个天才左右不了大家都是凡人的事实。所以从工作时长和智慧平均水平来说,Unity至少做不到比UE4更天才
2. 抄袭的每个环节都得额外消耗时间。想要抄袭,首先你得看懂别人家写的代码,这个看懂可不是简单的瞅几眼,而是得真正的去理解各个地方这么做的用意。但是引擎的模块,不可避免的会互相耦合,这个理解的成本就高了。关于这点,在研究UE4源码的小伙伴们肯定都深有感触了。就算看UE4技术视频的人肯定也有感觉,你就是光学习这么使用的速度,都比不上UE4官方出视频的速度。所以理解需要时间,大量的时间,你看的还不如人家写的快!然后你还得转换成自己的思路,自己的语言,有时候还得调整一下架构,再一行行代码手敲出来,再调试,不行再反复迭代调试。一整个流程走下来,你发现还不如自己从头造轮子写的快。这也就是为什么有些游戏开发公司会依然造轮子去开发各种功能系统,因为自己写有时候真的比去学来的快!
我们都知道UE4.24现在是Preview,但Epic内部早已经在开发4.25,4.26,4.27了(不要问我有啥功能,问就是有大事要发生)。所以就算你花3个月时间研究透了4.24,吧唧,UE4.25正式发布了,又一堆功能,你抄吧。版本复版本,版本何其多!人生苦短,我用UE!


3. 架构耦合。那些说C#语言不同的,没说到点上。这种程度的抄袭,必须是抄核心的功能模块。外层用C#做的那些UI交互,都只是功能的外部延伸,核心还是在内部的功能疏通。这么说回来,Unity引擎核心也是用C++开发的,你猜它内部有没有和UE4一样的UObject架构?我不知道,我不瞎说。但这种引擎架构理念上的三观不合,才是不可协调的矛盾。强上抄袭,就像你跟一个三观不合的人结婚,你能忍得了一时,忍不了一直。当然,对方有钱除外,我可以的!
4.经验不可序列化,代码里不包含所有信息量。文档?笑话,哪个程序员爱写文档?一个功能的开发,有大量的开发人员思路想法,Bug修复的知识,游戏的优化经验,都没法全部在代码里表达出来。代码是能够运行没错,但不代表它是完成可读可理解的。所以就算Unity对着UE4源码抄,尽他的最大努力,他也没法还原出100%的原意来。连UE4自己的人估计都不行,哈哈~
5.有些经验是独一份的,你抄不来。Unity的论坛,有很多人在请愿让Unity官方也自己开发一款游戏看看,但他们的回复是因为已经跟很多游戏开发商有技术支持交流了,所以不需要。我相信这个观点是不足够有说服力的,在请愿的人不是傻子,依然有相当有一部分人可以看到里面的关系。我入职的公司叫做Epic Games,后面是Games,所以Epic依然是一家游戏公司。Epic除了有大家耳熟能详的堡垒之夜,内部依然有在开发别的游戏项目(不能说)。在我看来,一个游戏引擎公司,用自己引擎做自己的游戏,能吃到第一手的Dogfood,这份游戏开发的经验是没法生造意淫出来的。这里不针对Unity,Unity同样有很多平台运营,轻手游优化的经验是UE4没法学的。提这一点也是想说,当你想要实现超车的时候,最好也想想有哪些是对方有而自己没有的?
6.Trick是一时的机密,但不是主旋律。什么情况下抄袭可以超车成功?就是抄袭的产品,它的成功是建立在某种机密技巧上的,你知道了这种机密,它对于你的优势就不复存在了,然后你可以再叠加上自己的优势,实现超车成功。但游戏引擎里的Tricks真是太多了,几乎遍地都是各种优化,所以对于引擎来说,机密技巧从来不是重点,竞争的主旋律是架构。好的架构才能顺溜的承载各种优化。
7.现代的抄袭,早已不是抄实现,而是抄想法!成功的抄袭是哪怕你闭源,你经过试错反复验证迭代过的Idea,我觉得你这个想法不错,我就可以利用我的资源来更进!哪怕我的人力跟你差不多,甚至就算差一点也没关系,我节省了你中间琢磨考虑的各种成本,就能为我带来一些竞争优势。代价是什么?顶多被人骂一骂酸一酸,面子和里子,有些人就会选择更要里子,面子又不能吃。何况法律保护的是代码,又不保护想法!
看到这,有人可能就会说,你这说的不跟上面说的自相矛盾吗?其实不是,因为你要就事论事的分析,抄想法有时候能成功,有时候又不能。这取决于如果你抄想法抄的又快又好,青出于蓝而胜于蓝,抄多了自然就能成功。如果你抄的比较蹩脚,那就是搬石头砸自己的脚。
一是从表现上来说,目前据我个人主观观察,MaterialEditor,BP和PixelStreaming这些功能,Unity也并没有做的比UE4的好(如果有其他的我不知道的,欢迎告诉我),所以就算是抄想法的套路,也并不是成功的方式。不至于。
二是从情感上来说,我并不会一开始就有罪推定认为Unity在抄UE4想法。我更多是认为,这些功能,都是游戏引擎进化之路上,不得不需要的功能。引擎发展之路,决定了就必须要有材质的图形化编辑,编程必须会出现图形化的节点,粒子特效也必然会出现UE4的Niagara和Unity的VFX Graph的模块化组织方式。大家走在同一条路上,这些是避不开的,没法不做。我觉得换种方式来说会妥当一些,在游戏引擎发展的多条赛道上,有时候Unreal是先行者,Unity在后面追赶,当然赛道上还有别家;有时候大家又都各自开疆辟土,掌握了自己强过对方的看家本领。Unreal作为大哥(92年大概),有广阔的心胸说我把自己怎么做的开放出来给你们看,这是一份身为大哥的自信,也是一种对自己的勉励。
所以综合来说,我依然认为Unity绝不是抄袭UE4!
四,王者之道。UE4的开放源码,是否有因为受到Unity竞争的关系?凭良心说,我个人瞎猜测(我又不是Tim Sweeney,不知道他们当时怎么想的),我觉得当时他肯定也知道了Unity的License商业策略,但是开放一个耕耘了十来年的引擎的源码,这依然是一个艰难的决定!反正如果是换我,我肯定会非常纠结。但随着我加入Epic越来越久,也了解到了更多Epic的做事风格,也越来越深刻的感受到这种王者之道。
你看Tim Sweeney买了Quixel然后免费(傻瓜都能猜到花了很多钱),帕拉贡和无尽之剑的免费送出,1亿美金MegaGrants,EGS的12%分成。你就能大概感受到这个人的做事风格,这里面固然有商业战略的考量,但这每一个决定,都不容易。如果本身不是一个大格局的人,是没有足够气量做出这种决策的。
所以我感觉UE4的开放源码,确实某种程度来说就是:
    代码我开放出来,你尽管抄,反正没我写的好!代码我开放出来,你尽管抄,反正没我写的快!代码我开放出来,你尽管抄,反正我相信我们的引擎开放人员水平世界顶尖!代码我开放出来,你尽管抄,反正你最后会发现这真是太难了!代码我开放出来,你尽管抄,反正你最后会说UE4真香!
五。开源与否没法决定产品是否毁灭,但心态不开源却会毁灭你。人家Windows不开源,依然很滋润,因为人家有能力hold住整个项目。UE4的开源也跟它是否会毁灭没有关系。有人说因为UE4现在必须得用C++蓝图,所以必须开源才能用。这是把因果给弄反了。假如当初2014年决定不开源,到现在2019年了,自然而然引擎会开发暴露出各种API接口来让开发者使用。Unity现在核心闭源,你们不也用的美滋滋的。还是那句话,大家都是聪明人,你能做到的,我也能做到。只不过因为UE4决定开源了,所以有些东西就没必要开发了,所以引擎的功能集才是现在大家看到的这种配合源码的方式。
送给一些人一句话,尊重你的对手,也是尊重你自己。
在游戏引擎发展史里,Unity无疑是一个伟大引擎,我尊重它!但Unreal更伟大,我爱她!
六,开源不会导致UE4毁灭,相反会助力UE4发展,也助力了整个游戏行业技术发展!假如UE4不开源,你能看到学习的引擎源码的是哪个?我当年学习引擎开发的时候,都是私下里偷偷摸摸搞来各种引擎源码泄露版,或者搞来一些开源引擎学习。但他们都不入流!寒霜等各种InHouse引擎我这种小喽啰看不到,Unity我也看不到源码(我还真的特别想看看它写的怎么样),开源的引擎又基本都是小品实验性质的,没经过各种项目的洗礼。CE是后来开源的,但是也更多是他们自己能用好,编辑器又比较差。所以谈到综合素质第一,UE4开源出来,不知道帮助了多少人学习技术!你没法抄袭源码,但是你可以在里面学习技术啊!以前我想学习一个什么技术,我得去找各种文章,有时候还得翻各种论文,现在我都直接去UE4里看看它有没有。世界第一最能打的引擎里的实现版本一般不会差到哪里去!你没有用UE4做项目,没有给Epic交一分钱,但是你却在UE4里学习了技术,这些人对UE4都是抱着一份感激之情的啊。所以UE4社区也为UE4贡献了很多代码,这火只会越烧越旺!


七,助人者人恒助之。凑个七条,Epic的理念是“We succeed when you succeed.”,所以UE4的商业策略压根不是不管你成不成功,反正你就得给我交钱。而是希望尽可能的帮助你成功,然后分享利润。
成功毕竟是困难的,大部分开发者都是默默的在使用UE4,在成功边缘反复试探,然后你还每周按时领游戏,每月按时领素材~~哈哈。你还没有成长到能够反馈回报Epic的时候,我们欢迎你来这里学习成长。UE4的开源也是如此,帮助了更多的人,给了更多的人更多机会成功。一个愿意帮助别人的公司,如果毁灭了,不是它的错,而是我们这个世界的错。
让自己对别人有帮助,说的做的尽量对别人有价值,这也是我作为UE4社区经理的理念。这问题不是我们提的,但哪怕是这种容易引战的题目,我也希望给大家分享稍微有深度价值一些的思考所得观点。


嫌我啰嗦的可以太长不看,点个赞就好。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
发表于 2021-5-4 11:03 | 显示全部楼层
不是,你说的这引擎,他不开源能用吗?
所以你这问题应该问反了。
发表于 2021-5-4 11:08 | 显示全部楼层
看到这个问题,想到自己的一段糗事。
当年在CE3里“抄袭”了个UE3 Kismet(对标UE4 Blueprint的Ubergraph)……
然后UE4出了,还花点小钱就送代码了,后面还免费了……


好吧其实是抖机灵,认真说,在产品开发过程中应用抄袭策略,粗略想想,可能就有下面的问题:
A,抄完它这个版本,它下个版本出来了你怎么办?继续抄?
B,一般来说抄袭不会是全面的,而是要根据自己当前的系统来做适配,一般来说较大的系统有自己特定的设计哲学,同时也会有很多假设,这些哲学和假设,很可能会跟当前项目其它系统的目标和假设有所冲突。如果不能对被抄袭的系统有很好的理解,那么抄袭过程注定将会很痛苦——最终也注定会对整个项目带去痛苦。
个人感觉,除非是那种功能单一、接口简单的小模块,或者在开发中相对占次要地位、更新也不太频繁的模块或者框架,否则抄袭抄到一半,自己应该就会发现很多问题,导致不得不改变策略。
而更糟糕的是,这种一开始没想明白,后续过程中东修西补的开发状态,本身就是蛮忌讳的。
所以,对于复杂系统和框架,抄不抄,抄之前,至少应该对待抄袭系统和整个项目能做到相当程度的理解,否则很可能是自己给自己找罪受。
不过这又是另一个层面的悖论——都能理解那么深刻了,还有必要抄吗?




另外,前面说自己那次工作是“抄袭”,其实并不是。
一来,当年参与的UE3项目是没用到Kismet的,因此其实是没研究这块代码的。
二来,新项目是基于CE客户端、自研服务器框架的网络游戏,服务器与客户端是事件同步的、没有对等Actor的概念,同时运行时只跑C++,但编辑器是WPF的。所以就算想抄也没办法抄。
所以在做这套类Kismet系统的时候,是按照自己的思考和理解,从头到尾,从VM到Editor到Debugger都重新设计了。
有一个东西,说起来还是有点小自豪的,就是在做的时候设计了“把图转化为Cpp代码”这样的功能,这个UE3是不支持的(至少我们用的那几个版本不支持),但是当时就猜到虚幻后续肯定会这么做。(当然,话说回来,其实我想只要是推演过这套节点编辑系统的,肯定都能想到这个层次,倒也没啥特殊的。而且我用的方法挺笨的,远没有UE4这个地方处理的那么聪明。)
说这个是什么意思呢?如果当时真是纯照着Kismet抄袭,就算没有水土不服,顺利抄完了,那么可能也就不会想到去设计这个系统了。


做产品,私以为还是有一点前瞻性、系统性较好。
要不,要么“发布即落后”,要么“水土不服”,意义何在呢?
发表于 2021-5-4 11:16 | 显示全部楼层
泻药。
有可能的,像这种宇宙级神仙引擎,代码写的又那么通俗易懂,总有一些不法之徒,对说的就是Unity,没事就喜欢抄UE源码,不信你对比Github上HDRP的源码和UE的渲染源码是不是很像!没错!!一看就是抄的一点都没法洗!建议Epic马上闭源!必要时候拿起法律武器作斗争!
啥??你说HDRP和UE用的编程语言都不一样?抄代码还需要用的语言一样吗?有没有一点常识?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
发表于 2021-5-4 11:17 | 显示全部楼层
会导致华为自主开发国产分布式AI游戏引擎
发表于 2021-5-4 11:22 | 显示全部楼层
这问题我看得噗噗直乐…你当弄个Unity源码很难?有人真想抄还不是分分钟的事情 ?开不开源有毛线关系……
引擎这种庞大繁杂的东西有必要抄吗……看看源码学习下思路倒是正常的,真要说到抄,除非是两个引擎本来血缘就非常接近,要不怎么抄?
育碧很多游戏都是基于弯刀引擎分支出来的,这些项目之间互相移植feature有时候都要挠头,你让unity和Unreal之间抄?不怕排斥反应啊?
到这个级别上的项目,天生就是对这些下三滥的事情有抵抗力的。代码功能也是有其依赖的生态环境,你没法在东海捞一条带鱼放到太湖里养,
发表于 2021-5-4 11:26 | 显示全部楼层
不会,UE4的源码不是谁都能看得懂的,可以看懂UE4核心代码的人,是具备相当高的代码编程和数学底子素质的人才,这种人才已经是各个公司争抢的顶级人才,一般会在整个业界是具有影响力的,他去UE4做引擎开发的几率最大。
发表于 2021-5-4 11:34 | 显示全部楼层
Linux的开源是否会导致linux的毁灭?
Linux开源了,Windows会一直抄袭Linux,最终超越Linux。 然而,Windows不开源,所以Linux不能参考Windows,最终被Windows实现全方位超越
2019年了,这种问题适合在群里引战。能不能在知乎讨论点更好的东西。
发表于 2021-5-4 11:41 | 显示全部楼层
当然不会了,只有把游戏项目的所有引擎源码、逻辑源码、资源包、文档等全部开源并弄成方便换皮的框架才会让国内各大小厂家蜂拥而上,只开源个引擎又不能直接卖钱,真当我们是来学技术的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则