为Windows Phone 8开发2D游戏

时间:2012-11-25 04:59:53

标签: c# c++ visual-studio-2012 directx windows-phone-8

我想为Windows Phone 8开发2D游戏。白天我是专业的应用程序开发人员,这似乎是一个有趣的爱好。

但是我试图开始失望。似乎2D游戏(远在大多数游戏中)都没有可用的API。

似乎Windows Phone制造商不支持Direct2D。因此,除非您打算制作完全3D应用程序,否则您将失去运气。

所以,如果你只想制作一个漂亮的2D应用程序,这些是你的选择:

  1. 使用Xaml和C#编写游戏(性能问题?)
  2. 使用Direct3D编写游戏,但只能在一个平面上绘制。
  3. 使用codeplex上的DirectX Took Kit。它允许您使用垂死的XNA框架的API进行开发。
  4. 3号似乎对我的游戏来说是最好的。但是,当微软明确表示未来不会支持时,我讨厌浪费时间学习XNA api。

    2号可行,但3D开发真的很难。我宁愿不必做所有这些来获得2D效果。 (假设Direct2D更容易。我还没有考虑过。)

    1号似乎最简单,但我担心如果它基于xaml渲染而不是DirectX,我的应用程序将无法正常运行。

    Microsoft提出的建议方法是什么?

    谁决定2D游戏会被忽视?

5 个答案:

答案 0 :(得分:15)

在我看来,Windows 8和Windows Phone 8的游戏开发都退了一步。这主要是由于我认为XNA的下降,但它似乎并不像他们专注于使更容易。

要回答你的问题,虽然学习了像XNA这样的另一个API,但仍然值得做。 Thanks to MonoGame,您将能够学习并学习多个平台。相当多的贡献者是working on MonoGame,我可以看到它存在了相当长的一段时间。

所以,如果你愿意学习XNA,你可以简单地为Windows Phone 7平台制作一个XNA 2D游戏。这些标题(微软已经说过)将在Windows Phone 8 **上运行(不是这样,请参阅更新)。听起来很直观我知道,但除非你真的需要使用WP8的一些新功能,否则目标7.1并使用XNA。这是一个优秀的框架非常适合制作2D游戏(查看Bastion for example!)。一旦你完成了WP7 / WP8的2D游戏,你可以通过引用MonoGame来定位iPhone,Android和其他平台,只需很少的代码更改。

也许不是一个很好的选择,而是另一个要添加到列表中的选项。希望有所帮助。

<强>更新 原来MS已经搞砸了WP7到WP8的开发。从上面的方法,您仍然可以获得跨平台开发到iOS,Android等的优势,但I wouldn't have a lot of confidence in WP8 as compatibility issues开始出现,WP8设备的商店中省略了WP7标题。

答案 1 :(得分:5)

XNA将部署到PC,Windows手机和Xbox360,Visual Studio甚至会为您复制单独的项目版本。 XNA是一款用于快速制作2D游戏的绝佳工具。如果你想这样做只是一个测试运行,它听起来像你,XNA是要走的路。就像XNA一样简单,你也可以使用着色器做一些非常复杂的事情。我认为你不会很快感到无聊。

如果您确定自己非常喜欢游戏开发,请继续学习DirectX。在进入3D游戏Dev之前,先从一个新鲜的石板和一点点游戏的怪癖开始。与其他软件世界相比,编写视频游戏更像是创建操作系统。无论您的目标平台如何,都可以轻松使用XNA。

答案 2 :(得分:5)

我还想指出Unity(http://www.unity3d.com),有用于创建2D游戏的工具,以及用于Windows Phone 8和iOS / Android的发布。为迟到的回应道歉,但这仍然是一个悬而未决的问题......; - )

您可以在Visual Studio中使用C#,或使用Monodevelop创建脚本,Unity已经支持从各种工具(3DS Max,Maya,Photoshop,Gimp etcc)创建的模型/纹理。

它是一个专业的游戏引擎,性能明智可以渲染数百万个没有问题的多边形(亲自尝试和测试3D),应该如此。

他们的2D工具相对较新,但已经有很多教程,Unity文档一般都非常好。

http://unity3d.com/unity/whats-new

祝你好运。

答案 3 :(得分:0)

您可以使用MonoGame。它是一个游戏开发框架,实际上是XNA游戏工作室的当前实现。它可以与Android,Linux等一起部署到Windows Phone 8。

答案 4 :(得分:0)

另一种可能性是Marmalade,它包含一个强大的2D物理引擎,并且具有跨平台的额外好处,因此您可以将它用于Android,Apple,Kindle以及其他人以及Windows Phone。缺点是它是基于C ++的,需要大量的工作,并且没有可以接近Visual Studio的IDE。