XNA 已不复存在,如同凤凰涅槃






4.76/5 (19投票s)
我们终于迎来了时代的终结和下一个时代的黎明,这一切都归功于 MonoGame 项目。最新的版本已经摆脱了对旧 XNA 框架的依赖,独立运行。
我个人非常讨厌标题党,但这个标题完全名副其实。
随着 MonoGame 项目的推出,我们终于迎来了时代的终结和下一个时代的黎明。最新的版本已经摆脱了对旧 XNA 框架的依赖,独立运行。
现在使用 MonoGame 不再需要 XNA 了
这是一个里程碑式的重大进展,MonoGame 终于实现了超越 XNA 所能提供的(有人可能会争辩说它已经通过支持所有平台做到了这一点)的梦想,并正在构建 XNA 中从未存在过的功能。诚然,这并不是大步前进,而是小步慢移。
所有过往的一切
目前,MonoGame 几乎实现了 XNA 的全部功能,这意味着你所有旧的 XNA 4.0 项目都将与 MonoGame 兼容。过程中可能会有一两个小问题(这个婴儿正在骄傲地迈出走向世界的第一个新步伐),但它有一个由顽强的开发者组成的强大传统支持着这个项目。
我有没有提到 MonoGame 团队的没有人为此获得报酬?这完全是由开发者的业余时间与精力资助的!你必须尊重
对项目的任何贡献都将用于项目的需求,例如服务器、网站和商品!
一个崭新的世界
你可能想知道,为什么这次发布如此特别,如此大张旗鼓?
答案很简单,XNA 的依赖关系已经断开,开发者现在可以在他们选择的平台上开发 MonoGame 项目了。随着 3.3 版本的发布,现在可以完全开发的平台包括:
- Windows 7 / 8 / 8.1(但你早就知道了)
- MacOS(使用 MonoDevelop)
- Linux
现在,这部分内容其实并不算新,你以前也可以这样做,但你不能构建项目所需的所有内容。在 3.3 版本之前,你需要一个 Windows 主机来编译你的内容。但有了 3.3 版本,你现在可以在上述所有平台上完成此操作,不再需要 Windows(但谁想放弃 Visual Studio 呢?)
有了新的 MonoGame 内容构建工具,开发者可以在 Windows、MacOS 或 Linux 上构建内容。
甚至还有新的 MonoDevelop(或者如果你喜欢,也可以是 Xamarin Studio)插件和模板(感谢 MG 团队的 Dean Ellis),现在完全支持。
支持的平台
截至 3.3 版本,MonoGame 维护的当前支持平台列表包括:
- Android
- iOS(仅支持 64 位 Metal)
- Linux
- MacOS(net4、net45、MonoMac 和 Xamarin.Mac)
- Ouya
- Windows OpenGL
- Windows DirectX
- Windows 8 / 8.1
- Windows Phone 8 / 8.1
- Windows 通用应用(我稍后会回来讲这个)
有一个实验性的 3.3 PCL 平台版本,但仍在开发中。使用它没有问题,只是请注意,某些类/命名空间可能不被识别。这仅仅意味着目前有些代码不能放在 PCL 中,但我们正在努力解决这个问题。
MonoGame 还支持大多数游戏主机(未来还会有更多),但你需要先与它们签订合同才能开始考虑!如果你有具体计划,请与我们联系,团队可以提供帮助。
入门
我不会在这里详细介绍,因为我计划出一系列入门教程/视频来帮助你开始。
要开始,你需要从以下地址安装 MonoGame 开发模板和工具:
http://www.monogame.net/2015/03/16/monogame-3-3-2/
在这里你会找到:
另外(如果你愿意),你也可以在 NuGet 上找到 MonoGame 3.3
当然,你也可以将其安装在现有项目之上,以保持最新。
NuGet 的注意事项
在安装某些 NuGet 包之前,你需要了解一些关于 NuGet 的注意事项(任何未提及的包都没有问题)
- WindowsGL – 使用 WindowsGL 时,在安装 NuGet 之前需要从项目中删除“SDL.DLL”。这只是一个 NuGet 无法解决的冲突。不用担心,NuGet 会为你安装一个新的。
- Windows Phone 8.0 – 由于项目模板同时附带 x86 和 ARM 的 DLL,NuGet 无法卸载所有引用。这会导致引用重复错误。要解决此问题,你需要编辑项目的 .csproj 文件,在安装之前删除对 MonoGame.Framework 的引用(之后也可以,只是会更麻烦!)。
我将在未来的帖子中更详细地介绍这些内容。
致 XNA
现在,仅仅因为 MonoGame 已经向前发展,整理好自己的房间,离开了它曾经的家,踏上了新的冒险旅程,但这并不意味着你仍然不能使用 XNA。
XNA 仍然活跃在世界各地的许多大学中,并且仍然被开发者积极用于在 Xbox 360 的 Xbox Live 游戏服务上发布(并从中赚钱)。事实上,在最近的一次游戏开发聚会(The hull university 3 word game jam http://www.robmiles.com/journal/2015/3/14/three-thing-game-finals)上,许多学生都在使用 XNA 构建他们的项目(实际上是大多数),一些充满冒险精神的勇士在使用 MonoGame,还有一些(我只能称之为疯狂的)开发者在使用 OpenGL、MatLab,以及一个勇敢的灵魂在进行直接光栅绘制。
我必须感谢微软的远见卓识者们,他们敢于梦想一个托管的游戏开发世界,在那里开发者可以摆脱 C++ 的束缚,真正享受游戏开发的乐趣,我知道我曾经是这样。
XNA MonoGame 万岁
我们还没死吗?
我在网上看到各种评论,认为既然 XNA 正在走向终结,那么 MonoGame 也必须如此。或者,我很久没听到 MonoGame 的消息了,也没有更新,他们是不是已经死了?
我可以证明,MonoGame 是一个非常活跃的项目,幕后有很多事情在进行。
团队注意到更新速度较慢,这将在新的 3.3 版本发布后得到改变。发布版本将更快,NuGet 将更频繁地更新,等等。
请继续关注这里(以及 MG 网站),更多更新应该会更频繁地跟进。
更多信息
关于 MonoGame 和 3.3 版本,这里有更多信息,以下是亮点:
附注:我最近听说在各种商店发布的 MonoGame 项目数量,我完全惊呆了。这个数字远远超出了我以往的设想,而我原本就可以设想得很大!(可悲的是,保密协议不允许我直接说出来;-( 但我真希望我能说出来)
星际穿越
我以一个最后的想法结束这篇帖子。你应该已经注意到,随着 3.3 版本的发布,MonoGame 团队正式发布了一个通用应用模板。这允许你编写一个项目,同时针对 Windows Phone 8.1 和 Windows 8.1。这对团队来说是一个了不起的成就。
你可能也听说过另一家公司及其通用项目公告,所以可以思考一下。我个人无法确认/否认或担保 MonoGame 未来对通用应用的支持计划,但 SickHead Games 的 Tom Spilman,他是 MonoGame 项目的核心协调员之一,最近曾这样说道:
Tom Spilman 我是 MonoGame 的维护者之一。它确实包含一个适用于 Win8/Wp8 的通用应用模板,但我们预计一旦 SDK 可用,就会支持 Win10 通用应用。
那么,梦想还在继续吗?