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