Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Developing a 2D Game for Windows Phone 8 [closed]

I would like to develop a 2D game for Windows Phone 8. I am a professional Application Developer by day and this seems like a fun hobby.

But I have been disapointed trying to get going. It seems that 2D games (far and away the majority of games) do not have an API available.

It seems the Windows Phone makers did not include support for Direct2D. So unless you are planning to make a fully 3D app, you are out of luck.

So, if you just wanted to make a nice 2D app, these are your choices:

  1. Write your game using Xaml and C# (Performance Issues?)
  2. Write your game using Direct3D and but only draw on one plane.
  3. Use the DirectX Took Kit found on codeplex. It allows you to use the dying XNA framework's API for development.

Number 3 seems the best for my game. But I hate to waste my time learning the XNA api when Microsoft has clearly stated that it is not going to be supported going forward.

Number 2 would work, but 3D development is really hard. I would rather not have to do all that to get the 2D effect. (Assuming Direct2D is easier. I have yet to look into that.)

Number 1 seems the easiest, but I worry that my app will not run well if it is based off of xaml rendering rather than DirectX.

What is the suggested method from Microsoft?

And who decided that 2D games were going to get shortchanged?

like image 783
Vaccano Avatar asked Nov 25 '12 04:11

Vaccano


3 Answers

In my opinion, games development for both Windows 8 and Windows Phone 8 has taken a step back. This is mainly due to the dropping of XNA in my opinion, but it really doesn't seem like something they have focused on making easier.

To answering your question, though learning yet another API like XNA, it is still worth doing. Thanks to MonoGame, you will be able to take what you learn and target multiple platforms. Quite a lot of contributors are working on MonoGame and I can see it living on for quite some time.

So, if you are willing to learn XNA, you could simply make an XNA 2D game for the Windows Phone 7 platform. These titles (Microsoft has said) will run on Windows Phone 8** (not the case, see update). Sounds counter intuitive I know, but unless you really need to use some of the new functionality of WP8, target 7.1 and use XNA. It's a polished framework is great for making 2D games (Check out Bastion for example!). Once you have finished making your 2D game for WP7/WP8 you can target iPhone, Android and other platforms with very little code change by referencing MonoGame.

Maybe not a great option, but another one to add to the list. Hope that helps.

Update Turns out MS has really screwed up with WP7 to WP8 development. From the above method you will still be able to get the advantages of cross platform development to iOS, Android etc, but I wouldn't have a lot of confidence in WP8 as compatibility issues are starting to show up and WP7 titles are being omitted from the store for WP8 devices.

like image 87
Darren Reid Avatar answered Nov 19 '22 07:11

Darren Reid


I would also like to point out that Unity ( http://www.unity3d.com ) , has tools for creating 2D games, and releasing for Windows Phone 8, and iOS/Android. Apologies for the late response, but this is still an open question... ;-)

You can use C# in Visual Studio , or Monodevelop to create your scripts, and Unity already supports models/textures created from various tools (3DS Max, Maya, Photoshop, Gimp etcc).

It is a professional game engine, and performance wise can render millions of polygons with no problems ( personally tried and tested for 3D ), as it should.

Their 2D tools are relatively new, but there are already plenty of tutorials and Unity documentation is very good in general.

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

Good luck.

like image 31
alwynd Avatar answered Nov 19 '22 08:11

alwynd


XNA will deploy to PC, Windows phone and Xbox360, visual studio will even copy separate versions of your project for you. XNA is a great tool for cranking out a quick 2D game. If you want to do this as just a test run, which it sounds like you are, XNA is the way to go. As simple as XNA is, you can do some really complicated stuff with shaders too. I don't think you'll get bored anytime soon.

If you decide that you really like game development, go ahead and learn DirectX. Start with a fresh slate and a little experience with the quirkiness of games before diving right into 3D game Dev. Programming a video game is much more like creating an operating system compared to the rest of the software world. Getting your feet wet with XNA regardless of your target platform is your best bet.

like image 5
aj.toulan Avatar answered Nov 19 '22 08:11

aj.toulan