游戏开发论坛

 找回密码
 立即注册
搜索
楼主: superxiaogong

C#会取代C++成为游戏开发的主流语言吗?

[复制链接]

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2007-9-14 18:24:00 | 显示全部楼层

Re:C#会取代C++成为游戏开发的主流语言吗?

这种问题很简单,语言的问题主要看能不能满足需求,在满足需求的情况下就看开发效率。

C#能不能开发游戏主要是看语言运行的效率,基本上来说C#最终都会翻译成本地代码,只要数一下汇编语句的多少就知道了,比如同样的工作,用C++写的代码翻译成汇编如果是10个指令,如果用C#翻译成汇编是15指令,那么在这个工作只作1遍的情况下,我觉得没什么,如果这个工作要做10000次,那么C#就会平白无故多处50000个指令。

当然这也不算什么,如果你搞个HP的什么服务器来跑,我觉得用户也不再户这多出来的50000个指令。

凡是觉得C#能用于商业游戏的开发的人,我觉得一般情况下他的经验之限于图片数量少于10000张,资源文件大小小于100M的情况,如果超出这个限制就我个人而言,C#也许能做出比较好的程序来,但肯定不如C++方便,也就是说到了这个程度C#的代码量绝对会大大超过C++。

这个跟编译器和使用的库有很大的关系,微软在其中作了很多手脚,大家可以试一试下面的代码
for ( i=0; i<0x1FFFFFFF; i++ )
{
        a = i;
}
如果是C++ Debug版本,那绝对慢的,比C#慢2-3倍,如果是C++ Release版本,这个循环几乎不花什么时间,跟C#简直不在一个数量级上。

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2007-9-14 18:50:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

0

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2007-9-14 22:27:00 | 显示全部楼层

Re: Re:C#会取代C++成为游戏开发的主流语言吗?

Jeminai: Re:C#会取代C++成为游戏开发的主流语言吗?

C#开发的东西离不开微软的,而C++开发的东西可以。


为什么一提c#就提m$
c#语言又不是m$创始的,而且可以离开.Net,移植到Mono,垮的平台也会更广


149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2007-9-14 22:30:00 | 显示全部楼层

Re:C#会取代C++成为游戏开发的主流语言吗?

如果没有不得不用C#的理由,我想一般不会从C++迁移到C#的……

0

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2007-9-14 22:51:00 | 显示全部楼层

Re: Re:C#会取代C++成为游戏开发的主流语言吗?

bigbook2000: Re:C#会取代C++成为游戏开发的主流语言吗?

这种问题很简单,语言的问题主要看能不能满足需求,在满足需求的情况下就看开发效率。

C#能不能开发游戏...

我试了一下,
都差不多
本机c++和c#接近,而c++ cli慢了200多毫秒

注:测试的时候发现编译器优化,会在c++ cli和 c++本机上产生,竟然会不编译那个for循环(难怪那么快)!后来return了一下循环结果a,才编进去,而从c#的反汇编结果中看,始终编译进去了for。

另外要是看虚拟机不爽可以用AOT编译(在Mono中的称谓,在.Net中是本机镜像),但事实表明不用虚拟机比用虚拟机慢。

0

主题

25

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2007-9-14 23:38:00 | 显示全部楼层

Re:C#会取代C++成为游戏开发的主流语言吗?

还有,c#写的程序既然可以在Linux,open SUSE,XWindows,Mac OS X等平台上运行(一次生成)
怎么还管它XNA,怎么没人提用GL

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2007-9-15 02:57:00 | 显示全部楼层

Re: C#会取代C++成为游戏开发的主流语言吗?

C#代码优化的好其实也不慢,关键看你怎么写。

当然,比起C++肯定是要慢一点,但也要看做什么程序
如果你像crytek那样在开发顶尖的游戏引擎,最求最新的技术,榨干硬件所有性能,C++肯定是最佳选择
但如果你只是在开发一个画面一般的休闲游戏,用C++写可以跑70帧,而C#的只能跑60帧,那么在用户看来是基本没有差别的
而就开发效率来说,C#是绝对要比C++快很多。

对图形渲染来说,如果把大量计算都移到了GPU端计算,那么不管你用C++还是C#,效率都是一样的

另外说一下,second life的服务器就是完全用C#写的
而在最新的《GPU Gem3》中,你也可以看到有用xna写的代码

感兴趣的话可以去看看这片文章,分析的还算全面,关于xna
http://www.code-magazine.com/article.aspx?quickid=0709041&page=1

贴张图,xna start kit里一个完整的赛车游戏

103

主题

1432

帖子

1458

积分

金牌会员

Rank: 6Rank: 6

积分
1458
QQ
发表于 2007-9-15 07:58:00 | 显示全部楼层

Re:C#会取代C++成为游戏开发的主流语言吗?

这不是一个快慢的问题,而是一个实践经验的问题,国内的环境还没强大到可以随时使用任何一个语言来实践效果的地步。
这就好像原始部落,总免不了一些迷信和偏执。


149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2007-9-15 14:29:00 | 显示全部楼层

Re:C#会取代C++成为游戏开发的主流语言吗?

我只想知道,在存在迁移成本的情况下,有什么不得不用C#的理由?

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
发表于 2007-9-15 16:29:00 | 显示全部楼层

Re: Re:C#会取代C++成为游戏开发的主流语言吗?

Jeminai: Re:C#会取代C++成为游戏开发的主流语言吗?

C#开发的东西离不开微软的,而C++开发的东西可以。

我很奇怪为什么大家没有人做C#在其它平台的编译器。

就算在微软的平台又怎么样?现在用微软的系统的人绝对占主流。都没见过几个市面上的游戏是在Linux,BSD上的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-21 14:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表