yexuning 发表于 2019-8-20 10:17

为什么业界游戏引擎还在使用落后的C#语言开发?

比如广大独立游戏爱好者喜爱的U3D技术,是基于C#语言开发的,往往跨平台容易造成系统不兼容问题,移植平台需要重写一份代码。使用java语言开发移植平台的时候就不需要重写代码了,这样移植后平台也不会造成优化变差的局面。为什么现在游戏界还不大力推行java语言呢?

竜破斬 发表于 2019-8-20 10:18

本帖最后由 竜破斬 于 2019-8-20 10:21 编辑

因为用了java之后从一开始优化就变差了而且游戏界用的多的是C++吧

物理毒狗 发表于 2019-8-20 10:22

yexuning 发表于 2019-8-20 10:22

竜破斬 发表于 2019-8-20 10:18
因为用了java之后从一开始优化就变差了

那么有没有一种语言可以解决跨平台和优化问题呢?

yamori 发表于 2019-8-20 10:23

提醒一下楼主,Java诞生于1995年,而C#诞生于2000年

qfqczr 发表于 2019-8-20 10:23

很久以前,拿JAVA开发点游戏引包都有点麻烦,轮子都没有更别提造车了,不知道现在咋样了。

王怡人 发表于 2019-8-20 10:25

书行 发表于 2019-8-20 10:28

C#跨平台有mono,谁跟你说要重写代码了?

Jai用机玩家 发表于 2019-8-20 10:30

王怡人 发表于 2019-8-20 10:25
我的世界不就java开发的么,卡得一逼

我觉得我的世界可能怪不了java,只能怪majong自己······
这边基岩版史诗光影鸽了,让英伟达RTX入场,majong技术真的8行。

すぴぱら 发表于 2019-8-20 10:32

本帖最后由 すぴぱら 于 2019-8-20 10:42 编辑

谁跟你说c#是落后语言移植平台需要重写的?我看你是看不起il2cpp编译器

java这种弟弟一个虚拟机占用2G内存的好意思当游戏脚本语言用吗


https://i.loli.net/2019/08/20/zaBcd7T1RbmJGFf.png
写得差怪编程语言不行,不知道是哪里的风气

resty 发表于 2019-8-20 10:33

C#不落后。Unity跨平台做得是偏好的那一档。。。

塔奇克马 发表于 2019-8-20 10:40

为啥不搞开发喜欢参合开发这事情?

厨具战士 发表于 2019-8-20 10:42

melvin95 发表于 2019-8-20 10:45

Lunamos 发表于 2019-8-20 10:45

LZ想问的是C++吧。C#主要就是Unity在用,一般inhouse引擎的底层肯定都是Cpp写的。
用C++一开始的原因就是高性能和方便优化,后来的原因就是路径依赖。一直有很多人在尝试让游戏开发远离C++,比如吹哥就很烦C++,自己开发了一套语言Jai。他直播了好几年在用他做的编译工具链写引擎

竜破斬 发表于 2019-8-20 10:47

本帖最后由 竜破斬 于 2019-8-20 10:48 编辑

yexuning 发表于 2019-8-20 10:22
那么有没有一种语言可以解决跨平台和优化问题呢?
跨平台一键移植的一般都跑在虚拟机里,没法针对硬件优化。而要提高运行效率做出最好的画面效果针对游戏主机的硬件进行优化是必须的。所以大部分3A游戏用的引擎像unreal,cry engine,寒霜等都是用C++写的。
unity就是属于一键移植的,你看官网列出来支持平台数量那是一个多,然而unity游戏的运行效率也不用我多说了吧。

top2000 发表于 2019-8-20 10:48

黑丝大野模 发表于 2019-8-20 10:48

java效率多低啊……在统一硬件平台下代码执行效率越高,内存用的越精致,画面表现就越好。而且9012年了都,跨平台概念不是早就破产了吗……

-- 来自 能手机投票的 Stage1官方 Android客户端

光荣的小学生 发表于 2019-8-20 10:49

zz_mps 发表于 2019-8-20 10:51

qfqczr 发表于 2019-8-20 10:23
很久以前,拿JAVA开发点游戏引包都有点麻烦,轮子都没有更别提造车了,不知道现在咋样了。 ...

拿idea开发java引包的体验还行,游戏开发就不太了解了,到处都是unity,PC上用java开发的游戏倒很少听到

不知道所谓的跨平台优秀是哪来的

HMHM 发表于 2019-8-20 10:51

运行效率低下,90%的锅在于你的实现,而不在于你用什么语言。

museqsou 发表于 2019-8-20 10:51

すぴぱら 发表于 2019-8-20 10:32
谁跟你说c#是落后语言移植平台需要重写的?我看你是看不起il2cpp编译器

java这种弟弟一个虚拟机占 ...

其实部分重写还是要的,手柄这块就逃不过,触摸屏这块也是。
游戏开发说说c艹艹落后java先进这能给我一早上的乐子

museqsou 发表于 2019-8-20 11:03

竜破斬 发表于 2019-8-20 10:47
跨平台一键移植的一般都跑在虚拟机里,没法针对硬件优化。而要提高运行效率做出最好的画面效果针对游戏主 ...

unity的底层照样是C++写的,C艹艹只是中间层。中间层这块用C艹艹或者C++的影响远没底层那么大,相反为了方便这年头中间层用C艹艹、JS、LUA的比比皆是。用开发不方便的C++反而是有多想不开。
谈到效率问题,unity和其他商业引擎比确实有差距,但也没那么夸张的地步。unity表现的效率不行更多是开发人员的问题,开发unity效率不行的,换其他引擎也是一个样,这块unity只是吃了易上手易用的亏。


lemore 发表于 2019-8-20 11:15

本帖最后由 lemore 于 2019-8-20 11:31 编辑

U3D不是C井写的,C井只是一个用于业务层的语言,用来调用U3D写好的接口,对所谓的性能以及移植影响不大。实际上为了开发敏捷这种做法在游戏界很常见,C或者C艹用来做业务开发非常不方便,通常就是C写好底层,然后用高级语言或者脚本语言去写业务。

性能低下大部分还是游戏开发人员自己的锅,业务层实现用了撒皮算法拉低效率那游戏引擎也阻止不了,算法垃圾用C写还是python写那都一个样,去leetcode上看看统计,一样的算法C和python耗时不会差太多,这种差距在业务层上是完全可以忽略的(然后python实现四五行,C写了十几行)。

竜破斬 发表于 2019-8-20 11:30

本帖最后由 竜破斬 于 2019-8-20 11:37 编辑

museqsou 发表于 2019-8-20 11:03
unity的底层照样是C++写的,C艹艹只是中间层。中间层这块用C艹艹或者C++的影响远没底层那么大,相反为了 ...
主机要优化好自然是要魔改底层来实现最好的效果啊。只在中间层开发天然在优化上落后魔改底层的一截。当然现在主机都x86了,估计魔改的必要性也没有以前那么大了。
确实。unity主要还是缺少3A游戏站台,几乎都是中小规模游戏。给人一种低成本游戏专用引擎的印象。

hourousha 发表于 2019-8-20 11:34

ChengChung 发表于 2019-8-20 11:39

槽点太多,我还是扔到其他地方让大家开心一些吧

ClamtheElder 发表于 2019-8-20 12:06

w30of 发表于 2019-8-20 12:11

RE引擎也用C#当脚本哦

合同工 发表于 2019-8-20 12:29

黑丝大野模 发表于 2019-8-20 10:48
java效率多低啊……在统一硬件平台下代码执行效率越高,内存用的越精致,画面表现就越好。而且9012年了都, ...

跨平台概念不是破产,只是已经成为新的语言标配了,所以没人提了

whzfjk 发表于 2019-8-20 12:39

lostyzd 发表于 2019-8-20 12:49

lemore 发表于 2019-8-20 11:15
U3D不是C井写的,C井只是一个用于业务层的语言,用来调用U3D写好的接口,对所谓的性能以及移植影响不大。实 ...

不 python实在是太慢了,相同的逻辑一般有10-100倍的差距

qratosone 发表于 2019-8-20 12:58

Austaras 发表于 2019-8-20 13:23

I is fishes
当代跨平台最大的问题在于你有那么多平台要跨吗?如果真到要跨平台的时候真的不能再投入时间写一份吗

天才援交少女 发表于 2019-8-20 13:51

lemore 发表于 2019-8-20 11:15
U3D不是C井写的,C井只是一个用于业务层的语言,用来调用U3D写好的接口,对所谓的性能以及移植影响不大。实 ...

别逗,py和java比都有数量级的差别,更别说c/c艹了

leetcode 3sum:

https://i.loli.net/2019/08/20/R7fXtSPEOoFeN9U.png

lemore 发表于 2019-8-20 14:37

天才援交少女 发表于 2019-8-20 13:51
别逗,py和java比都有数量级的差别,更别说c/c艹了

leetcode 3sum:

挑题目就没意思了啊,python这种脚本语言操作数组容器本身就天然劣势,写基于数组操作的算法当然吃大亏

如果主要容器是用hash-map,那差距就没那么大:

当然我的不是最优解,CPP时间最优解在40ms,py在100ms


如果不是写图形渲染,网络收发之类的底层,编程语言的这些性能差距基本不构成影响。我不是想说py在性能上能和cpp五五开,我的意思是大部分用现有引擎的游戏开发者,他们接触到的场景都是逻辑业务开发,在这个场景下编程语言造成的瓶颈很小,甩锅给语言不合适。



宅男的爱 发表于 2019-8-20 14:52

用C#是因为Unity这个通用引擎用啊,而且人家是Script啊

如果有用Java的通用引擎也行啊

BRRM 发表于 2019-8-20 17:16

天才援交少女 发表于 2019-8-20 13:51
别逗,py和java比都有数量级的差别,更别说c/c艹了

leetcode 3sum:

人家是说业务层而不是底层。

hzhh95963 发表于 2019-8-20 18:45

点进来之前我还以为是想说Rust

mimighost 发表于 2019-8-20 18:57

看泥潭这些精神程序员嘴炮,真有意思

c#作为语言挺好的,要跨平台,有需求就有方法,最多就是成本问题,虚拟机一起打包完事儿
页: [1] 2
查看完整版本: 为什么业界游戏引擎还在使用落后的C#语言开发?