10

我想为 Windows 8 开发一个游戏,但由于不支持 Xna,我真的不知道使用 MonoGame 之类的东西是否好——因为我认为,使用 MonoDevelop 没有任何意义使用 OpenGL,而 UI 前端使用 DirectX 运行。但是我的搜索和“apptivate.ms”,他们仍然强迫开发人员使用 MonoDevelop——但是为什么像微软这样的公司甚至会这样做呢?

而且我不喜欢用 DirectX 用 C++ 构建我的游戏,因为在我的情况下,它不是一个大游戏,而且我最喜欢的语言(也是我的工作语言)是 C#..

顺便说一句,用 OpenGL 或 C++ 编写这个游戏对我来说没什么大不了的,因为过去四年我在这两个方面有很多经验,但在这种情况下,我喜欢有一个“快速”和“保存”解决方案,如 C# 和图形框架。

所以......也许有人有这些问题的答案:

  • 我应该将 MonoGame 与 Xaml / C# 一起使用,并且不担心 DirectX 和 OpenGL 的混合吗?
  • 或者是否还有另一个我可以使用的 DirectX/游戏框架?
  • 或者,我完全错了,Xaml 不需要 DirectX?或者我可以强制 MonoGame 使用 DirectX?
  • 或者,另一点——像“System.Drawing”这样的东西对于具有一些漂亮阴影效果的太空射击游戏来说是否足够快(我认为,就我而言,我需要阴影和诸如绽放、模糊等之类的东西)?也许,微软添加了一个新的 2D 绘图库?(但我认为它仍然是 gdi+ )
4

4 回答 4

5

如果您指的是 Windows 8 Metro(又名 Modern)或 Windows 8 Desktop,那么您的问题是模棱两可的,但我认为它是 Metro 版本。

如果您想在不使用商业解决方案的情况下使用 C# 为 Win8 Metro 开发游戏,您可以使用:

  • SharpDX是用于 .NET 的低级 DirectX API 或即将推出的 SharpDX.Toolkit(查看网站上的最新消息),它是围绕 Direct3D11 的高级框架(具有类似 XNA 的 API,但具有完整的 Direct3D11 支持)。SharpDX 是唯一一个涵盖整个 DirectX API 的 C# 包装器,该 API 经认证可在 Windows 8 下工作。
  • MonoGame使用 SharpDX 作为其 Metro 后端。我没有听说您需要为此使用 MonoDevelop,因为它正在与现有的 XNA 项目一起使用,而 VS 2012 应该可以正常工作。
  • ANX也在其 Metro 后端使用 SharpDX。

关于前面的答案,如果假设 Win8 Modern,则不能使用 OpenTK,因为 OpenGL 不是 Microsoft App Store 的认证 API,并且 SlimDX 与 Windows 8 Metro 不兼容。

于 2012-09-28T22:38:34.220 回答
2

作品中有一个 OpenGL 到 DirectX 包装器,允许在 Windows 8 现代应用程序中使用 OpenGL。它还没有完成,但是如果您想要跨平台兼容性并且愿意只针对已实现的 OpenGL 子集(或者愿意自己实现其余部分并希望回馈),它可能就足够了。

https://gl2dx.codeplex.com

更新:截至 2013 年 11 月,gl2dx 似乎已经死了,但是有一个类似的项目ANGLE,它在 DirectX 9 或 11 之上实现了大部分(如果不是全部)OpenGL ES 2.0 规范和 EGL 规范。这是Firefox 和 Google Chrome 在 Windows 上执行 WebGL 的方法。

http://code.google.com/p/angleproject/

于 2012-12-01T20:58:13.503 回答
1

如果你想使用 OpenGL 和 c#:

http://www.opentk.com/

对于 DirectX 和 c#:

http://www.slimdx.org/

或者

http://sharpdx.org/

于 2012-09-28T17:11:08.590 回答
1

GDI+ 超出了 Metro/Modern UI 应用程序的范围,如果您对一些公司感兴趣,他们希望制作像这样的替代 API:http ://www.moderncomponents.com/products/DrawingLibrary/ ,它仍处于早期阶段,但看起来不错,可以帮助您创建一些简单的游戏。

于 2012-10-01T22:27:40.433 回答