I decided I want create a game for Windows Phone 8.  I have a great 2D game idea I would love to code up.

But I went to learn how I can accomplish this and was very disappointed.  These seem to be the options for 2D game development:

  • DirectX Direct3D
    • Direct2D is not supported on Windows Phone 8.  So you can only do Direct3D on one plane.  DirectX Direct3D is hard.  Not just kind of hard.  Real real hard.  I went through the first 5 tutorials on DirectXTutorial.com and after a lot of work I was able to draw a single triangle.  It is hard and complex to do simple things.  Not really hobby development level.
  • XNA
    • XNA seems to be on its way out.  It is allowed for legacy support.  But you cannot make a WinRT app nor target Windows Phone 8 with XNA.  If you know it, then I would say use it.  But it is hard to want to spend time learning the ins-and-outs of an API that has "legacy" support only.  (Kind of like spending the next 6 months digging into WinForms.  You can use it, but is it really the best use of your time to add this skill set to your abilities.)
    • XNA seems like a great API.  I am shocked that MS has put it in "Legacy" mode (but then I felt the same about WPF, Silverlight, Linq2SQL and the Compact Framework).  It seems to have a strong following, including something called Monogame, that lets it work on many platforms.  Why MS wanted to kill off all this great stuff is beyond me.
  • XAML + C#
    • Xaml + C# is nice and easy to do.  But I worry there will performance issues if I code up a game using this.
  • DirectX Toolkit
    • The DirectX Toolkit on Codeplex seems to be what the Windows Phone team wants you to use.  But it is a temporary API based on XNA's api.  Just like XNA, I am hesitant to spend a lot of my time digging into an API that is a band aid on missing Direct2D support.

I look at these options and they all have significant drawbacks.  Since the VAST MAJORITY of games out there are 2D I have to wonder what the Windows Phone team was thinking.

Why did they shortchange Windows Phone 8 2D games so hard?  As a hobby game developer I have to choose between learning a obsolete (or soon to be obsolete) framework or learning a really hard 3D framework just so I can do 2D programming.

Is it just me or has the Windows Phone team messed up big here?

The biggest drawback I hear for Windows Phone 8 is that it does not have enough apps compared to Android and IOS.  Making it hard on hobby developers is not likely to fix that...

I think the only way out of this (at this point) is to promise full support for XNA in the future...