C#/.NET作为新标准游戏开发平台的可行性? 长期以来,C++一直是游戏发展的主导语言。许多AAA质量的3D引擎可满足任何预算

C#/.NET作为新标准游戏开发平台的可行性? 长期以来,C++一直是游戏发展的主导语言。许多AAA质量的3D引擎可满足任何预算,c#,mono,xna,C#,Mono,Xna,我的问题是,随着XNA的崛起,C#和.NET框架的定位是否足够好,可以取代它成为新的标准游戏开发平台?显然,XNA框架(Windows、Xbox、Zune)固有的跨平台特性有其好处,但这些好处是否足以吸引大型游戏开发工作室进行转换 就我个人而言,我在为一个新项目使用C#/XNA和通过jMonkeyEngine使用Java之间左右为难。我非常希望我的游戏能够移植到多个平台上,我所熟悉的语言只有C#和Java。我很想看到一个由OpenGL支持并在Mono上运行的XNA代码库的实现,但我认为这只是一厢

我的问题是,随着XNA的崛起,C#和.NET框架的定位是否足够好,可以取代它成为新的标准游戏开发平台?显然,XNA框架(Windows、Xbox、Zune)固有的跨平台特性有其好处,但这些好处是否足以吸引大型游戏开发工作室进行转换

就我个人而言,我在为一个新项目使用C#/XNA和通过jMonkeyEngine使用Java之间左右为难。我非常希望我的游戏能够移植到多个平台上,我所熟悉的语言只有C#和Java。我很想看到一个由OpenGL支持并在Mono上运行的XNA代码库的实现,但我认为这只是一厢情愿的想法


我很想知道别人在3D游戏中除了C++之外所经历的事情。

< P>,我认为C.X/XNA是基于图书馆支持的一个明确的赢家,而且是微软在DirectX中的经验。也就是说,我不认为C·X/NA取代C++作为严肃3D游戏编程的语言弗兰卡(即大开发屋),如果有史以来的话。

< P>大型游戏工作室很快可能不会采用XNA。一些印度人正在使用它,但肯定有潜力最终成功,并留下C++。 XNA提供了许多可以在游戏开发中使用的类,但许多其他类通常选择使用成熟的游戏引擎。虽然XNA对于初学者来说是相当好的,如果你是编程新手的话

C#是一种很好的游戏开发语言。游戏开发产生的应用程序需要声音、高级图形、AI、物理等。所有这些都需要强大且相当快速的语言环境。虽然大多数顶级PC机和控制台游戏都是用C++编写的,C语言有一个可能会留下C++的路线图。C++0x的变化无疑会使C++稍加恢复,但C++看起来会超过它。 如果你真的想成为游戏开发者,我会敦促你至少学习C++并编写你自己的游戏引擎。使用预先制作的游戏引擎很容易,你可以编写一些“没问题”的东西,但你会遇到许多无法编写的限制。您将有效地受限于游戏引擎的功能(除非您可以访问源代码,然后可以根据自己的喜好修改源代码)

学习C++,最好是OpenGL: 一旦你了解了OpenGL,你就可以很容易地学习DirectX了


<> P> C是一块蛋糕,一旦你知道C++。

< P>这不仅仅是电影工作室考虑的,它是观众。有可能的是,只要索尼和任天堂还在,他们就不太可能移动a C#/XNA平台。至少对任天堂来说,当你拥有他们目前所拥有的大众市场吸引力时,他们将继续主导他们的开发平台


我喜欢XNA,因为我现在可以为Zune编写应用程序,但是C++对于一个广泛的游戏开发平台将持续很长时间。可能会有大量新的独立开发者涌入微软设备,但我们离看到XNA被全面使用还有很长的路要走。

不久前XNA Professional发布时,微软现在似乎专注于快速版(尽管它在名称中失去了“Express”),这似乎是针对业余爱好者市场,而不是商业市场。除其他外,这在很大程度上有利于XBox 360社区,因为他们现在允许业余开发者为Windows和XBox 360开发游戏,然后在XBox网络上销售游戏,这是一件好事

我真的很想看到XNA在专业领域获得发展势头,但除非其他主要游戏平台(PS3和Wii)也能使用XNA,否则这一切都不会发生。问题不仅在于XNA框架/API,还在于语言/框架要求,因此您甚至不能用C#编写游戏,然后在Microsoft平台上使用XNA,在其他平台上使用OpenGL

XNA的性能简介也针对爱好者市场,而不是商业市场,尽管性能似乎相当好,并且在野外有令人印象深刻的演示

编辑:


如果你的问题是“我现在是否应该在预算远低于一百万的项目中使用XNA”,我的答案肯定是肯定的。去试试吧,它是免费的。而且它很强大。

90年代末,我在一个叫Newfire的地方工作。在资金枯竭之前,我们有一个引擎,可以呈现一个10000平方公里、分辨率为10厘米的沉浸式世界。你可以一次让大量的玩家进入,并持续地使地形变形。这个引擎在P200上以帧速率运行,带有伏都教2卡

大多数发动机都是经过精心调整的C++编写的。所有游戏代码都是用C或C++或java编写的。我也有原型代码,可以使用下推自动机定义对象行为,这可以做非常好的人工智能。它几乎不需要CPU时间。游戏逻辑的执行与渲染相比相形见绌

有一次,我用我们的软件渲染器演示了Conway在Java中运行的生命游戏。这些细胞是在一个平面上排列的立方体,随着年龄的增长,这些立方体会出现或消失并改变颜色。当游戏以每秒4代的固定生成速率运行时,3D显示以20+FPS的速度运行,同样是在P200上,使用软件渲染器

所以答案不是肯定的C++。与任何问题域一样,答案是在该域中工作得最好的语言。C++在绘制EngI领域中发挥了良好的作用