I want to start learning how to make games in XNA, but I have no idea where to start! If someone could advise me on what pieces of software I need and some good books or tutorials to look at, that would be most helpful.

As for my current coding knowledge, I have some good experience with Javascript (in conjunction with HTML5 canvas). I'm pretty sure I would also need to learn C# to code with XNA, so keep that in mind.

closed as primarily opinion-based by MichaelHouse Oct 12 '13 at 14:44

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    With the future of the Xbox now in its final days, and with the future of XNA atleast from my last check, in an "uncertain" state, perhaps learning Xna at this time isn't a good idea. By the time you get to grips with it properly, the new xbox will probably have been announced. As you specifically said "xbox game development", you may just be better off investing your time in something else. – dan369 Sep 17 '12 at 13:10
  • @Danran Do you think that they are just going do that to all of the devs? Just get rid of XNA? And I do not know c# at all, so I am going to have to learn that first if I want to learn XNA. Then if MS decides to drop support for XNA, I have still learned a valuable skill, C#. And this is off topic but, I may invest my time in learning Java game development, would I need some framework like XNA? (obviously not XNA, but something like it.) What would you recommen? – CJ Sculti Sep 17 '12 at 15:13
  • Well i don't think they will get rid of it, but you never know. They might replace it with something new, thats more suited to their new console for example. As for the Java game development, i couldn't really say. I have no experience with Java, but doing a quick google search for java game programming sdk, produced a lot of results. So that could be a great place to start. – dan369 Sep 17 '12 at 15:46
up vote 12 down vote accepted

If you understand the general programming fundamentals work - datatypes, classes, functions, etc - I would say go for it.

When I started learning C#, I did have games in mind, but started with developing console apps that, while they looked very basic, incorporated some advanced C# techniques, in order to better my understanding of the language.

Once you have an understanding of how C# works, I'd go ahead and download the XNA studio from here - http://www.microsoft.com/download/en/details.aspx?id=23714

You will want to start with learning SpriteBatch. Some good tutorials can be found here...

From there you can start experimenting with pixel shaders (on SpriteBatch, http://msdn.microsoft.com/en-us/library/bb313868(v=xnagamestudio.31).aspx ), and also matrix transformations ( http://www.david-amador.com/2009/10/xna-camera-2d-with-zoom-and-rotation/ ).

Once you have a good grasp of that, you can finally move on to using the graphics device to draw primitives and models using BasicEffects and custom shaders.

Good luck!

  • +1 for having most of my answer plus some additional good advice – Lunin Jan 15 '12 at 7:24
  • What would you say about this book? packtpub.com/… – Ryan S. Jan 15 '12 at 7:25
  • 1
    If you find learning through books (and examples as it seems from the description), then go for it. Though I learnt XNA perfectly fine scavenging for information over the Internet, and at the same time, learnt some great techniques. – FrenchyNZ Jan 15 '12 at 7:27
  • 2
    @ryansworld10, I can't recommend that book enough. It hand holds you through the completion of several full games of different genres, truly giving you and hands on experience while explaining very clearly and concisely what's going on along the way. You'll learn about the basics of not only the XNA framework, but game development in general and what necessary components are needed for a game. It doesn't go over every single overloaded SpriteBatch.Draw method like some XNA books do, and it shouldn't, that's what MSDN is for. Again, highly recommend that book as a starting point. – Neeko Jan 16 '12 at 13:40

A great resource that helped me learn XNA was the set of tutorials here.

  • Very good link. Looking through it I found a nice tutorial on smooth animation that I can put to good use. Thanks! – FrenchyNZ Jan 15 '12 at 10:22
  • I really like how he presents it, and actually felt I was learning to code and not simply copying code from a page. – Andrew Jackman Jan 15 '12 at 10:35
  • Bookmarked that, seems like an excellent resource. – Ryan S. Jan 15 '12 at 23:56
  • I love how @Twitchy wants a smooth animation. – ver Jan 16 '12 at 16:07

Step one would be to download both the framework (XNA) and MS's Visual C# 2010 Express. I have found a couple of books. Learning XNA 4.0 published by O'rielly and XNA Game Studio 4.0 Programming...just plug those into Amazon. For C# I rather enjoyed the Head First series but you may need a more academic tome to supplement that.

Also XNA RPG tutorial thing has been enjoyable.

If you don't already have Visual Studio, the quickest way to get started would be to get Visual Studio C# Express and a copy of XNA. Both are free and downloadable from Microsoft.

Once you've done that, all you have to do is decide if you want to jump right in or play around with some tutorials first. If the latter, I highly recommend Riemer's tutorials. and I'm certain others can and will recommend other good resources.

  • 1
    JavaScript isn't the same as Java... – Andrew Jackman Jan 15 '12 at 10:12
  • Whoops, that's what I get for attempting to answer questions while people are talking to me. Removed that part of my answer. Thanks for the catch. – Lunin Jan 16 '12 at 7:06

MSDN has a lot of documentation for XNA : XNA on MSDN

Just learn XNA with the C#, the XBOX 360 is really only a particular profile from a programmer viewpoint.

there are a lot of tutorial on the internet but this is an official resource.

  • 1
    Ok. So where do I start? As of now, I know some Java, some .net, and php (which is irrelevent). I do not know any C, C++, C#, or any graphics/ design. Where do you think I should start? And then where to go from there. – CJ Sculti Sep 16 '12 at 19:04
  • 1
    @CJSculti you need to master the C# to use XNA in a productive way, C# is the language and XNA is the framework, always start with the language and after that you can start with the framework. C# is really similar to java so you will find yourself confortable with many concepts, the internal details about how C# works often differs from Java, but on the surface and when it comes to the main concepts of both languages they are really similar. For learning C# you probably want to stick with a book stackoverflow.com/questions/194812/… – user827992 Sep 16 '12 at 19:11

I recently got into basic game development with XNA as well. The Microsoft Dev Network has a great tutorial, that will take you through step by step in setting up a basic space shooter.

I would highly recommend going through the tutorial, as that will give you a good understanding of the rudiments behind game development. Don't worry about the amount of time you're putting into it (the tutorial claimed it would only take about 90 mins, but I took over a day going through all of the code), but understanding all of the concepts they're covering is vital!

I started the same thing over the summer and found that the official site to help a lot.


You can even just adapt a tutorial or two and get a pretty sweet game.

The starting point for XNA dev is create.msdn.com although that's now just a landing page to take you to the XBOX live indie games page.

The education catalog is pretty complete and lets you filter by dev area, it's actually a really good resource.

Not the answer you're looking for? Browse other questions tagged or ask your own question.