Coffeehouse Thread

14 posts

2D Game Development for Windows Phone 8: Missing In Action

Back to Forum: Coffeehouse
  • Vaccano

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

  • evildictait​or

    I would be slightly careful before dismissing XNA so easilly.

    Ultimately XNA is an abstraction on top of DirectX9 and DirectX11 - if there are technical reasons why XNA can't work on WP8/WinRT, I suspect the XNA team will overcome them with a new abstraction layer so XNA "just works" for WP8/WinRT.

    It would certainly be retarded if Microsoft dropped support for XNA only just as it starts to take off - and particularly whilst it is the only real indie-development platform for XBox360. Arbitrarily preventing Xbox indie-apps from working on Win8 when they have such a dearth of good Win8 apps would be pretty special.

  • Vaccano

    I want you to be right. But if XNA was just temporarily behind then why doesn't MS say that they plan support for it eventually? (Like they did with Direct2D)

  • redk3

    Funnily enough, I just did a presentation on Monogame which, like XNA, is an abstraction for DirectX. And because the namespaces are shared, it's very possible to go between Windows 8, Windows Phone 8 from your existing code base in WP7 or Xbox. Checkout this link: http://bit.ly/monogame.

    We can speculate all we want about XNA, Monogame has made great leaps forward in the 8-world, so my team and I are already working on porting our games.

  • magicalclick

    I would just go with XNA for now. Even if they deprecated XNA, the next offering would basically works the same anyway. And the term legacy is terrible term that Steve forced out probably. The term is irrelevant actually, so, just ignore it, it is simply bad grammar, that's all.

    Leaving WM on 5/2018 if no apps, no dedicated billboards where I drive, no Store name.
    Last modified
  • wkempf

    XNA was on it's way to the chopping blocks, but I've heard rumblings that that may no longer be the case. Regardless, as redk3 says, there's Monogame which isn't going to go anywhere, is XNA based, and runs on far more platforms than XNA ever would have.

  • figuerres

    , evildictait​or wrote

    I would be slightly careful before dismissing XNA so easilly.

    Ultimately XNA is an abstraction on top of DirectX9 and DirectX11 - if there are technical reasons why XNA can't work on WP8/WinRT, I suspect the XNA team will overcome them with a new abstraction layer so XNA "just works" for WP8/WinRT.

    It would certainly be retarded if Microsoft dropped support for XNA only just as it starts to take off - and particularly whilst it is the only real indie-development platform for XBox360. Arbitrarily preventing Xbox indie-apps from working on Win8 when they have such a dearth of good Win8 apps would be pretty special.

    xna seems to be a mess,  I have not seen much support for it and when they do update it it's way late, and xna games for windows has issues with having to use the MS game network stack.

    xna seems like an idea that could be great but has been left lingering on the side.

    if they are going to update it yet again they need to put a lot more work into really supporting it and making it  worth the time to learn.

    or unity 3d will just take over....

  • Bas

    I need to look into monogame. I love using XNA, but the whole "it's awesome/it's mainly for Windows Phone/it's dead/it may not be dead" thing is annoying. Thing is, XNA is more than just a great class library. The content pipeline etc. are all extremely valuable things to have. I wonder how much of it Monogame is able to provide.

  • redk3

    @Bas you're right to question it's capabilities. But like I mentioned in this video, it's built on top of SharpDX (which btw we have access to, from Monogame), making it more powerful than XNA ever was.

    As for the content pipeline, yes it is a little hackish right now to set up in Monogame but it is a very active project and lots of things should be coming down the pipeline.

  • Bas

    @redk3: I'm not questioning its powers or capabilities, I just think there's more to XNA than a convenient wrapper around DirectX, and I'm wondering if Monogame is more than just a convenient DX wrapper as well. I guess I'm gonna watch some of your videos.

    So is it easy to port from XNA to Monogame? Because I still find building stuff in XNA very convenient. If I could write stuff in XNA and then easily port it to Monogame without too much extra work I'd be able to avoid any weird hacks during development, and then easily port to a variety of platforms via Monogame whenever I'm done.

  • govert

    ... I just think there's more to XNA than a convenient wrapper around DirectX, and I'm wondering if Monogame is more than just a convenient DX wrapper as well.

    SharpDX is the convenient wrapper around DirectX, and MonoGame builds on top of that to give you the high-level API that is XNA compatible.

    There's a pretty article on CodeProject that discusses how to move from XNA to MonoGame, and its limitations. But is sure looks like MonoGame is the (cross platform!) future of XNA. 

  • redk3

    @Bas: It's not one of those "yet another" projects, it is an open source implementation of the XNA framework, one-to-one. Plus it is more (ie multi-platform).

    Yes it is easy to port over. I ported the game that I demo with to students in minutes. My team and I are porting one of our Windows Phone games with changes only to adopt to Windows 8. Nothing unexpected.

    Only thing missing right now is the out of the box content pipeline support, which should be right around the corner (if not already since the last time I checked).

  • Bas

    All right, I'm giving it a shot. Thanks for the info, guys.

  • Vaccano

    Looks like it is MonoGame to the rescue.

    You can code your game in XNA and then when it is done, port it to MonoGame.  (MonoGame is a cross platform implementation of XNA, so it ports easy.)

    MonoGame supports a lot of platforms.  One of these platforms is Windows Phone 8.  So you can use MonoGame to access the Windows Phone 8 features you are looking for.

     

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.