MonoGame只是XNA吗?

34

我想学习C#和XNA,但经过一些调查后发现XNA似乎已经死了,现在有一个名为MonoGame的替代库,它使用XNA框架。

那么,我能否将XNA课程/教程用于MonoGame,还是在不同的编程方式上存在重大差异,使得XNA教程对MonoGame完全无用?


这个问题不适合讨论。在 Stack Overflow 上,询问我们推荐或寻找工具、库或喜爱的外部资源的问题是不适合的,因为它们往往会吸引主观的答案和垃圾信息。相反,请描述问题以及已经采取的解决方案。 - LeonardBlunderbuss
25
你应该修改一下问题的内容使其符合要求,这比发表评论和点踩更快。 - Danyal Aytekin
3个回答

47
几乎。
MonoGame不使用XNA框架,它是XNA框架的重新实现。不同之处在于MonoGame内部所有代码都已被重写为与XNA框架行为相同。
你可能会想知道为什么有人会想要重新实现已经存在的东西。嗯,你说XNA已经“死了”,这一点是正确的。实际上,如果你愿意,你仍然可以使用XNA框架,但它不再受Microsoft在Windows 8或以上版本上的支持。
然而,这不是MonoGame出现的主要原因。真正的原因是,XNA仅适用于Microsoft平台(例如Windows、XBox、Windows Phone)。MonoGame的目的是允许将现有的XNA代码轻松地移植到其他平台(例如iOS、Android、Mac OS X、Linux、Windows 8、Windows Phone 8、PlayStation Mobile和OUYA控制台)。
是的,你可以大多数情况下使用XNA课程/教程来学习MonoGame。MonoGame的代码和行为旨在与XNA框架完全相同。我说旨在,因为它并不完美,但它确实运作良好,并且已经有很多游戏使用MonoGame证明了它的可行性。

谢谢提供信息!:D PS. “如果你想要的话,实际上仍然可以使用XNA框架,但是在Windows 8或更高版本上,Microsoft不再支持它。”这是否意味着我在拥有Windows 8后不能使用XNA框架? - Matthew
1
我相信XNA安装程序拒绝在Windows 8上安装。我认为有些人已经设法绕过它,但这肯定不是Microsoft支持的。你可以用XNA制作游戏,但是你受限于可以发布的平台。具有讽刺意味的是,你可以使用MonoGame将游戏发布到Windows 8商店。 - craftworkgames
我最近在Windows 8上使用Visual Studio 2013中的MonoGame。一切似乎都按预期工作,没有任何问题,尽管我没有使用XNA的内容管道,所以可能仍然存在一些问题。 - craftworkgames

8

尽管 XNA 不再被支持,但它仍可在 Windows 8 上使用。要做到这一点,您首先需要安装一个额外的组件。您需要下载 Windows Live 游戏可再发行版,然后下载 XNA,在 Windows 8 上即可运行。


5
XNA不能用于制作Metro应用,但可以在Windows 8桌面模式下运行。 - Ryan Mann

0
一个2022年更新的答案,craftworkgames给出了最佳答案:
可以在大多数情况下使用XNA课程/教程来制作MonoGame。MonoGame的代码和行为旨在与XNA框架完全相同。我说“旨在”,因为它并不完美,但它确实非常好用,并且有大量已经使用MonoGame制作的游戏可以证明它。
以下是willthiswork89答案的扩展和更新。我不建议使用它,但它值得一份现代化的回答。
只要安装了DirectX9运行库,XNA程序在Windows 11上仍然可以运行。别忘了在安装DX9后重新启动电脑。
现代版本的Windows无法运行XNA安装程序。运行安装程序并在第一个提示处保持窗口打开(允许安装程序提取文件,但在删除文件之前),然后在%tmp%%temp%中找到临时文件,输入此命令到文件资源管理器中并按日期排序(文件夹名称是GUID和最新的)并手动执行(双击)发现的每个.MSI文件。
这些模板与MS VS > 2013不同。我建议下载一个完整的XNA示例.SLN项目,并在更新过程中清理它,以便提供一个起点。
您可能仍然需要更新项目引用(名称匹配,但版本可能不同)。
注意: GamerServices 大部分,如果不是全部,已经废弃。

我建议使用MonoGame < 4.0作为XNA的跨平台替代品。因为Monogame已经具备了完整的功能和跨平台性,所以不需要使用这个答案。

如果你喜欢旧的.sln项目风格,或者需要.Net框架4.5,则可以考虑使用Monogame 3.7。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接