Windows 8中XNA的未来是什么?如何在Windows 8中开发托管游戏?[关闭]


83

我知道这可能是这个问题的重复,但是最后的答案是18个月前,此后发生了很多事情。

Windows 8中的XNA似乎存在一些不确定性。具体地说,Windows 8默认情况下使用Metro接口,XNA不支持该接口。同样,Windows 8应用商店将不提供非都市应用程序的库存,因此它将不提供XNA应用程序的库存。

我们应该坚持使用XNA,还是Microsoft希望我们转向Windows 8中托管游戏开发的不同框架?

编辑:如评论之一指出,Windows 8将能够以向后兼容模式运行XNA游戏。但这有过时的味道。


2
Windows 8开箱即用,具有向后兼容模式,那么为什么会出现问题?
ashes999 2012年

6
如果要为Metro UI开发ac#游戏,应该使用什么框架?
2012年

5
您应该使用SharpDX。
乔纳森·迪金森

约翰娜(Johnathan)+1。SharpDX现在支持DirectX 11.1以实现Metro兼容性。
克里斯C 2012年

4
@Deza:它不仅没有Metro支持,而且XNA也不会用于Windows Phone 8。最重要的是,如果未更新XNA,它将永远不支持DX11,并且不适用于即将推出的Xbox控制台。如果XNA不进行更新,则有很多原因使开发人员回避XNA。
Nic Foster 2012年

Answers:


61

编辑:这是官方的,微软已经杀死XNA了。我为此感到难过,但这并不出乎意料,这是我预料会发生的事情,但希望我做错了。低于此点的所有内容都是我2012年初以来的原始帖子。

需要考虑的其他事情是,Microsoft可能会在2013年中后期发布一个新的控制台。他们是否会继续尝试在其控制台上使用类似XNA的功能?如果他们希望个人在新的Xbox上进行游戏,他们将需要一些东西,而放弃XNA并从其他东西重新开始会很浪费。此外,Windows 8将在装有ARM处理器的平板电脑上运行,我们都知道手机和平板电脑应用程序的市场有多大,这对于Microsoft拥有一个在这些设备上创建应用程序的API来说是一个巨大的机会,但这将成为XNA。或仅.NET?

我看到一些潜在的途径:

  1. XNA在当前的Xbox上并不是非常成功,这主要是因为出现了很少的XNA游戏,以及商店在Xbox Live上安装XNA游戏的情况很差。因此,微软可能会决定完全拔掉插头,让我们留下与DX10兼容的XNA 4.0,并且它将在以后的几年中成为人们制作简单PC游戏的一个不错的平台。

  2. 微软可能会看到自制应用程序的巨大潜力,例如苹果公司的App Store就是赚钱的大本营,如果微软能够更轻松地制作游戏并将其安装到Xbox Live和Windows 8平板电脑上,那么他们就有机会扩大规模在控制台应用程序市场中。如果微软走这条路,我会看到新的XNA支持DX11.1及其下一个版本,并至少继续支持XNA 5年。

要考虑的一些事情:

  • 当前使用XNA,如果您想为Xbox 360开发游戏,则必须支付100美元,这是100美元,只是为了试验一下是否可以赚钱,即使如此,MS也可以从游戏中获得很大一部分利润。如果微软拿出100美元的费用并仅获得利润的一部分,他们实际上可能最终会看到更多的游戏并从中赚更多的钱。

  • XNA游戏在Xbox 360上存在性能问题。Microsoft并不希望XNA游戏在其他人的Xbox上运行时会构成安全风险,因此它们基本上在沙箱中运行XNA游戏,但对CPU,GPU和内存的访问受到限制。除了有限的访问权限外,在完整Xbox Xbox SDK上编程的游戏不是用C#编写的,不需要垃圾收集之类的东西,但是XNA在Microsoft自己的C#上运行,因此Microsoft必须编写一个包装程序才能使XNA在Windows XP上运行。 Xbox,并且该包装器使事情放慢了很多。像浮点性能这样的事情可能要比通过完整SDK编写的Xbox游戏慢10倍。这些性能问题意味着通过XNA开发的Xbox游戏无法真正发挥Xbox的全部潜力,这只会损害Microsoft从社区获得的游戏质量。如果他们继续使用XNA,Microsoft会考虑这一点,以便他们的下一个控制台允许XNA开发人员充分利用该系统。

  • 据我所知,XNA将不支持Windows 8的Metro风格,因此开发人员将无法编写游戏来利用它。XNA也不会在ARM处理器上运行,因此您不能使用XNA来为即将推出的Windows 8平板电脑编写应用程序。这是否表明将来可能不支持XNA?

  • 微软目前在游戏中使用XNA,但只需做一些工作,它也可以用于制作一些有趣的应用程序。如果Microsoft将XNA推向游戏开发人员以外的社区,则它可能会得到更多使用,并且有更多理由让Microsoft继续支持它。

  • XNA论坛已经干dried了,人们需要更多的时间来获得答案,而且我几乎没有看到XNA团队中的任何成员,除了Shawn Hargreaves,所以他们此时可能只是支持者。

  • 我为XNA 创建并支持一个开源游戏引擎,在过去的两年中,尽管该引擎比以前要好得多,但其下载量已降至开始时的一半左右。这向我表明,使用XNA的人比以前少了很多。这是我在网站上获得的点击数的图表,您可以看到对XNA的兴趣在2007年末至2008年中达到顶峰。 QuickStart Engine页面浏览量

这是一个很长的讨论,其中包括XNA团队的一些成员。当然,他们不愿对此发表过多评论,因为微软在宣布这些消息之前并没有谈论太多事情:

http://xboxforums.create.msdn.com/forums/t/91616.aspx

像这样的引号也很有趣:

利用DirectX的功能创建沉浸式游戏更好地集成了新的Windows 8图形堆栈,使Direct2D,Direct3D和DirectCompute组件更易于一起使用,并且比以前需要更少的重复资源。以前仅在XNA中可用的功能(例如DirectXMath,XAudio2和XInput)现已可用。为了获得游戏和视频的终极体验,请使用DirectX 11.1将立体3D带入您的应用程序。

http://download.microsoft.com/download/1/E/4/1E455D53-C382-4A39-BA73-55413F183333/Windows_Developer_Preview-Windows8_guide.pdf

我目前支持XNA的开源游戏引擎,所以我希望将来会支持它,但是,即使XNA 4.0是最后一个XNA,它仍然是一个可以轻松快捷地创建Windows游戏的不错的平台,并且对于那些想学习如何制作视频游戏的人来说,这是一个很棒的API。

我的诚实观点是XNA 4.0将是最后一个,但我确实希望我对此表示错误。


微软的代表显然已经在告诉人们使用MonoGame for Windows 8支持,尽管3D支持仍在开发中。可能值得一看,如果您可以移植引擎:)
David C. Bishop

1
是的,我可能会考虑。我主要将引擎项目作为爱好,以学习更多我不熟悉的游戏开发领域。有了像Unity这样可以免费使用的引擎,我的引擎就很少使用了(据我所知)。我不确定要使用多少引擎,以便使引擎更易于访问,我有多认真。我可能会继续进一步扩展引擎,以便继续从总体上继续练习游戏引擎技术。
Nic Foster

1
我目前正在将Monogame用于3D XNA游戏,该游戏目前正在WP7,Windows和W8上运行。我希望在那里仍然缺少许多关键要素,但是一些关键的有关方面正在大力开发这些要素。
RobCurr

47

MonoGame(XNA的一个开源,OpenGL实现)v2.5今天发布,支持跨iOS,Android,MacOS和Linux的自定义着色器。我们的团队已开始着手添加PlayStation Suite SDK支持以及Window8 Metro(我相信基于SharpDX)。

我们已经有了一个3D分支,其想象中的名称为development3d,因为v2.5已经发布,在接下来的几个月中,我们将集中精力进行这方面的工作。看看我们的YouTube频道,了解我们目前使用3D的情况-http: //www.youtube.com/user/MonoGameTeam?feature=watch

我们有几个游戏工作室的开发人员提供帮助,因此我们认为develop3d分支应该比目前的v2.5分支更加优化,并且几乎完全需要重写。当我上周末从头开始时,Reach演示从Windows移植到MacOS X花费了15分钟。developer3d分支尚不完善,MonoGame的整体也不是完美的,但是我们认为我们正在努力解决我们确实遇到的问题,如果有更多的人来帮助,甚至会更好。

Apple App Store上已经有28种iOS游戏(27 2D和1 3D),Android市场上有5种,MacOS和Linux商店上都有1种。如果这里的任何人在其Google Chrome浏览器中玩过堡垒游戏,它使用的是MonoGame的修改版本,并且我们希望将来能够支持NaCL游戏,这要感谢SuperGiant向我们发送有关如何使MonoGame与NaCL一起工作的信息。

我们大约有4-5名活跃的开发人员在MonoGame上工作,如果您想与我们聊天,请跳转至monogame.codeplex.com或#MonoGame频道的irc.gnome.org。从Github获取最新代码

因此,我想说的是,如果您打算使用XNA编写跨平台游戏,请考虑使用MonoGame。

多米尼克。


4
对于给我一个负面分数的人,我不是在回答原始作者的问题:“如何在Windows 8中开发托管游戏?” 我以为我建议未来将在MonoGame中使用Windows 8,因此这可以替代Unity3D,DeltaEngine等。我还阐明了有关MonoGame的xoofx要点。只想知道为什么要投反对票。
多米尼克2012年

6
我敢猜测可能是因为您的答案读起来更像是广告,而不是答案。
乔什

6
@Dominique我投了反对票。我曾经使用过并喜欢您的产品,但有句话说:“我想我的意思是,如果您打算使用XNA编写跨平台游戏,请考虑使用MonoGame。” 总结您的答案的意图。少量有用的信息并不能掩盖事实。
ClassicThunder2012年

1
@Dominique 在网站上查看有关促销常见问题解答。我相信您是在诚实地尝试回答这个问题,但是由于提供问题的答案而在促进您的项目方面有些困惑。由于您的项目是开源的,因此您可能有资格获得社区宣传广告,因此值得研究。感谢您的回答,欢迎使用GDSE。
MichaelHouse

1
自从我响应此线程已有一段时间以来,发生了很多事情。我只想指出,Windows 8预览商店中现在至少有2个使用MonoGame的游戏。第一武装!最近已在Microsoft的展位和网站上亮相。符文传说是另一个。寻找更多适用于Windows 8的由MonoGame驱动的游戏。就在两周前,我和同一个MonoGame开发人员被要求访问英国Microsoft Reading,并向他们介绍了MonoGame。我们介绍给8位宣教士。另外,美国的Microsoft宣传员Bob Familiar最近写了一篇由三部分组成的文章
Dominique

16

根据我对情况的了解,它可以采用两种方式之一。该API要么已弃用,要么正在加速创建基于DirectX 11的XNA版本。

这是有关每个角度的文章:


8
我真的希望是后者,因为如果在经过多年的努力之后他们不赞成XNA,那么便便了。
2012年

@jhocking同意这是便便。但是作为开发人员,我们应该始终使用多种语言。XNA也是我最喜欢的平台,但是现在,我想它又回到了Flash之类。叹。
ashes999 2012年

2
大声笑不是“太”,因为我从未在XNA中编程。我在想更多的是,这可能会使我所有不断宣传XNA的朋友陷入困境。它可能不会使我个人陷入困境,但我也不希望看到其他人陷入困境。
2012年

DX本身发生的事情表明不会再有XNA版本了。但是,技术在变化。
Blecki 2012年

11
  1. Windows 8上XNA的未来是什么?

    XNA将仅在Win8桌面上运行,Microsoft几乎没有机会在Win8 Metro UI / DirectX11.1下运行与XNA兼容的API。

    如果您确实想继续在Windows 8 Metro上的API之类的XNA上进行开发,同时仍然能够使用内容管道(XNA是低成本游戏开发者友好的原因之一),则应遵循ANX Framework项目。在Windows 8 RTM之前(至少具有SpriteBatch支持),可以为该项目做好准备的好机会。尽管可能需要稍微更改着色器(例如语义),但是ANX提供了一种导入现有XNA项目的方法,因此可以提供很大帮助。他们还在其他后端(例如用于图形的OpenGL)上工作,因此他们也可以针对其他.NET平台(例如Android / iPhone上的Mono)。

    MonoGame可能是另一个选择,但是它目前仅用于2D,具有单个OpenGL / ES后端,因此它将无法在Windows 8 Metro上运行(OpenGL在Win8 Metro下不是“认证” API,并且很可能不属于Microsoft计划)。

  2. 在Windows 8(Metro)中如何开发托管游戏(不使用XNA API)?

    有几种选择:

    • 您可以直接使用SharpDX(低级DirectX API)(ANX正在使用它)。例如,使用像这样的低级API,通常可以使用2D游戏的最小框架(并且可以使用Direct2D完成)。我知道至少有两家小公司正在使用它来开发Win8 Metro游戏。

    • 您可以开始使用DeltaEngine,它有望在未来几个月内与Win8 Metro兼容(可能需要许可证)

    • 您可以尝试使用Unity3D进行开发,尽管他们尚未宣布对Windows 8 Metro的任何支持(需要许可证)。但是他们最近在Direct3D11渲染器上工作,因此为他们提供Win8支持应该不那么困难(但是由于Win8 Metro并未授权许多Win32 API,这可能不是他们唯一需要移植的东西)。


5

随着WinRT的发布,微软的方式已经发生了巨大的变化,这一点变得越来越明显。托管炒作正在下降,本地炒作比以往任何时候都更强大。显然,对公司有影响力的人(有人声称这是Windows的核心团队)根本不满意.NET的性能。我在最新文章中看到的主要趋势是

WinRT是下一个.NET,C ++ / CX是下一个C#。

他们说:

嘿,用C ++编写和使用C#一样容易!如果可以用C ++和DirectX编写,为什么需要XNA?

这就是我上一次得到的感觉。鉴于您可以预期所有托管相关项目的速度都会下降,因此唯一的区别是速度下降量。

我对Microsoft几乎没有放弃对产品的支持表示敬意,只是不再开发它们。因此,即使它是最后一个受支持的版本,至少我们也可以使用XNA 4.0一段时间。


2

对于希望将XNA游戏移植到Metro中的独立XNA开发人员来说,情况并不理想。Microsoft没有表现出任何兴趣,希望我们回到C ++ / DirectX编程或采用第三方C#框架,其中大多数不支持任何XNA Content Pipeline。

所有人都很难过,有时候我真的听不懂MS。


7
你好朱尔斯。欢迎使用GDSE!我们在这里实际上并不像一个论坛,因此不鼓励这样的回答。如果您要添加事实信息或答案来源,那就太好了!
MichaelHouse
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.