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:
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 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.
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...