【发布时间】:2013-01-21 18:59:06
【问题描述】:
是否可以使用 C# 编写 Windows 8 RT 和/或 Windows 8 Phone 游戏?
【问题讨论】:
标签: c# xna windows-runtime monogame sharpdx
是否可以使用 C# 编写 Windows 8 RT 和/或 Windows 8 Phone 游戏?
【问题讨论】:
标签: c# xna windows-runtime monogame sharpdx
我已经对“C# 中的游戏”这件事进行了大量研究,所以我想将其发布给其他人:
XNA 是制作 C# 游戏的简单方法。您可以在 Windows Store 上发布新的 XNA 游戏,它会正常运行。
但是,您不能使用 XNA 制作 Windows Phone 8 或 Windows 8 游戏。 (您只能针对 7.1 版的 Windows Phone。)XNA 不支持这些操作系统的新 API。
但是,Windows Phone 8 和 Windows 8 都将运行 XNA 应用程序。这些应用程序不能针对特定于 Windows 8 或 Windows 8 Phone 的任何功能。
总结一下。当前版本的 XNA (4.0) 支持旧 API 与 Windows 和 Windows Phone 通信。它们仍然可以在 Windows 8 上运行,但你不能使用更新的东西。
Microsoft 没有提供使用 C# 为新的 Windows 8 和 Windows Phone 8 API 制作游戏的产品。
但是,如果您不介意使用开源项目,您可以使用 C# 编写可以使用更新的 Windows 8 和 Windows Phone 8 API 的游戏:
单人游戏
如果您想使用 XNA 的 api 为新的 Windows 8 API 制作游戏,您可以使用 MonoGame(这是我使用的)。它是一个实现 XNA API 的开源 api,但具有适用于 IOS、Android 和 Windows 8 的插件。这是一个非常好的跨平台选项。 MonoGame 最近开始支持 3D 图形(即Infinite Flight、Armed)。 (注意:我与 MonoGame 没有任何关系。)
SHARP DX (DirectX)
如果您想要 Microsoft 支持的方式来制作针对 Windows 8 API 的游戏,那么您最好的选择是 DirectX。但是 Direct X 是一个 C++ API。也真的很难。
如果您想制作 2D 游戏(例如植物大战僵尸或愤怒的小鸟),那么 Direct X 就显得多余了。你最好走 MonoGame 路线。我花了几天时间研究教程并努力理解 Direct X。在那段时间结束时,我获得了在屏幕上绘制单个三角形的能力。 (同样的时间让我的游戏循环和精灵在 MonoGame 中四处移动。)
所以我重复一遍,如果您还不了解 DirectX,并且您正在制作 2D 应用程序,请不要走 DirectX/SharpDX 之路。
DirectX 2D 路线进一步受到不支持 Direct2D 的 Windows Phone 8 的阻碍。 DirectX 有一个称为 Direct2D 的子集,用于 2D 渲染。但是,Windows Phone 8 不支持此子集。“替代”(目前)是 Direct X 工具包。
如果您仍然完全在 Direct X 道路上,那么您可以使用 SharpDX 在 C# 中编写它。它是 DirectX 的 C# 包装器,效果很好(虽然我不知道它是否支持 Direct X Toolkit)。
摘要
简而言之(对我而言)微软没有更新他们的 C# 游戏开发 API 以支持 Windows 8 和 Windows Phone 8 中的新功能。但 MonoGame 允许您使用 XNA API 来做到这一点。它还允许您编写跨平台游戏,所以无论如何它更好。 (您可以“免费”移植到 IOS 和 Android。)
我的游戏在 MonoGame 中进展顺利,到目前为止没有任何问题!
【讨论】: