These tutorials should be enough to get you going with XNA.
I really want to make these tutorials as useful to you as possible, so if you have any comments, please feel free to add them at the bottom of this page.
I'm in the process of updating these tutorials to the newest versions of XNA. The latest version of XNA is 3.0. I'm trying to get these tutorials up to that version, but I'm still working on it. I've made a table of which version each tutorial is set up for that you can look at to see which tutorials have been updated.
Tutorial Categories on this Page









![]() |
IntroductionHere is an introduction to XNA. This will give you an idea of how XNA can help you make your game! I would recommend starting here, if you haven't done anything with XNA before. |
![]() |
1 - Setting Up XNAGets an environment set up that can be used to make games with XNA. |
![]() |
2 - Creating an XNA ProjectShows you how to create a new XNA Project from the built in template. |
![]() |
3 - Graphics Device SetupShows you how to get the graphics device set up, so that it can be used for drawing. |
![]() |
4 - Effects and Effect FilesTeaches you what you need to know about effect files so that we can use effects in our programs. |
![]() |
5 - Drawing TrianglesShows you how to draw your first triangle. |
![]() |
6 - World CoordinatesExplains what world coordinates are, and gets our program ready to use them. |
![]() |
7 - TransformationsExplains how to use transformations (rotations, translations, scaling) and how to put them in your code. |
![]() |
8 - A Little PracticeGives us a little more practice working with the things we know before rushing on to the next big thing…. |
![]() |
9 - Index BuffersShows you how to use Index Buffers. |
![]() |
10 - TexturingShows you how to put textures on triangles. The tutorial creates a "backdrop" for an Asteroids game, since that is where these tutorials were originally going, but I figure you guys are smart enough that you can come up with your own creations. But a backdrop might be nice, and texturing will be very useful…. |
![]() |
11 - More TexturingIsn't texturing so much fun? This time we'll try texturing the icosahedron that we made in the earlier tutorials. |
![]() |
12 - LightingLighting is a significant concept in 3D graphics. This tutorial will discuss the basics of lighting, as well as how to get it into your program. There is really a lot of math involved in lighting. We won't be discussing the math during this tutorial, but later I will post a tutorial covering the math of lighting, so that when you want to write your own effects, you can do that. |
![]() |
13 - Using 3D ModelsIn this tutorial, we will look at how to load a 3D model into your game and draw it. |
![]() |
Audio in XNAThe next few tutorials (and some later on as well) are about doing audio in XNA. There's a lot to talk about, so this tutorial will give you an introduction to how audio works in XNA. |
![]() |
14 - Using XACTThis tutorial shows you the basics of using XACT, Microsoft's Cross-Platform Audio Creation Tool. XACT will get our audio in a format that makes it easy to use in XNA. |
![]() |
15 - Playing SoundNow that we've used XACT to define a sound project, it will be easy to play sounds in XNA. This tutorial will cover playing sounds in XNA. |
![]() |
16 - Basic MatricesIf you have been going through these tutorials in order, you probably already know a lot about matrices. However, if you are just looking for a tutorial to help you understand how matrices work in XNA, then this tutorial is for you. Even if you have been going through the tutorials in order, this tutorial will help you better understand how matrices work, and will get you better prepared for future tutorials. |
![]() |
17 - Line DrawingWe've talked about how to draw triangles in lots of different ways. This tutorial will show you how to do some simple line drawing, both in line lists and line strips. |
![]() |
18 – Introduction to 2D GraphicsHere's a brief introduction to a few of the things that we'll be doing with 2D graphics. |
![]() |
19 – Sprite BatchesSprite Batches are the most important thing in 2D graphics. That's how you draw nearly everything. This shows you the basics of using them. |
![]() |
20 – Drawing Text with Sprite FontsThis tutorial shows you how to draw 2D text on the screen. |
![]() |
21 – Texture AtlasesDiscusses how to do 2D animation using texture atlases. |
![]() |
22 – Rotating SpritesDiscusses how to rotate sprites…. Not too hard. |
![]() |
23 – Additive Blending with SpritesThis tutorial shows you how to do additive blending with sprites in 2D. It is a good first step for tutorial 31: Basic Particle Engines |
![]() |
24 - 3D Audio Effects - Location3D Audio gives players the impression that sounds are happening in 3D space around them. This tutorial shows you how to set up your project to do this. |
![]() |
25 - 3D Audio Effects - AttenuationThis tutorial shows you how to make sounds seem like they are coming from farther away, by performing volume attenuation. |
![]() |
26 – The BasicEffect ClassDiscusses the basics of effects, and how to use the BasicEffect class to do simple but powerful rendering. |
![]() |
27 – BasicEffect LightingDiscusses how to do lighting with the BasicEffect class. |
![]() |
28 - BasicEffect FogDiscusses how to do fog using the BasicEffect class. |
![]() |
29 - 2D and 3D CombinedThis shows you how to get 2D and 3D stuff to display together in the way that you want it. |
![]() |
30 - ViewportsDiscusses how to use viewports to make a game that has a different view for each player. |
![]() |
31 - 2D Particle EnginesThis tutorial goes through the steps of building a 2D particle engine. It is a longer tutorial, but particle engines and particle effects are quite powerful and add a lot to your game. |
![]() |
32 - The Content PipelineThis tutorial explains how the content pipeline works. This is nice to look over before making an extension to the content pipeline, which is the next tutorial. |
![]() |
33 - A Simple Content Pipeline ExtensionThis is kind of a longer tutorial which takes you through the steps of creating a custom extension to the content pipeline. Be sure to go over the content pipeline tutorial before digging into this! (8 parts total.) |
![]() |
34 - Collision DetectionThis tutorial goes through the basics of collision detection. |
![]() |
35 - PickingPicking is a technique used in games for finding out what objects the user clicks on. This tutorial goes through an easy way of implementing this in XNA. |
![]() |
36 - Simple 3D AnimationThis tutorial covers the simplest of methods for doing animation in 3D. |
![]() |
37 - Mesh by Mesh AnimationThis tutorial covers a more advanced method for doing animation in 3D. Instead of moving around the entire model, we will move around each individual mesh separeately to get some cool effects. |
![]() |
38 - Bone AnimationThis tutorial covers another advanced method for doing animation in 3D by using the model's bone structure. However, I haven't uploaded it yet! |
![]() |
39 - The Basics of Publishing Your GameThis tutorial shows you the various methods for distributing your game, which are discussed in the next few tutorials. |
![]() |
40 - Packaging your Game for Other XNA UsersThis tutorial goes through an easy way of packaging your game for other XNA users. |
![]() |
41 - Packaging your Source Code for Other XNA UsersThis tutorial goes through an easy way of packaging your source code for other XNA users. |
![]() |
42 - Using ClickOnce to Distribute your GameThis tutorial goes through how to use ClickOnce to distribute your game to people, even if they don't have XNA Game Studio. This is probably the best way to get your game out to people. |
![]() |
43 - Other Ways to Distribute your GameThere are a few other ways to distribute your game that weren't discussed in the previous tutorials. This tutorial will talk about these ways. |
![]() |
44 - Guitar Input (Coming Soon)I'm currently working on a tutorial for input from the guitar (you know, like Guitar Hero). It will give you an easy way to read input from the guitar, in a manner similar to the standard game pad. You can follow the tutorial and build your own input, or just use my version when completed. |
![]() |
45 - Playing .mp3 and .wma Files in XNA 3.0This tutorial will show you how you can play .mp3 and .wma files in XNA. It is probably easier than XACT, although it only works under the XNA 3.0. |
Thanks for these tutorials, really easy to follow and well explained. Can't wait for the 3D Bone Animation to be uploaded!
Could you please upload this, I need it for my game?
You might be better off asking a specific question(s). There are plenty of us around that will take a shot at helping out, but alas, it may be awhile before RBWhitaker can get to updating any of these tutorials.
"May the mercy of His Divine Shadow fall upon you." - Stanley H. Tweedle, Security Guard class IV, The League of 20,000 planets
Hey.
Thanks for the tutorials, just found them. You explain stuff in a funny, but really good way. Keep them coming :D
I can see it's almost a year since you posted a new tutorial, just wondering if you've got stuck with something else? :D Looking forward to someday read more from you.
~p0ke
Thanks for the feedback. Although I don't know whether to interpret "funny" as in "strange" or as in "that made me laugh". :)
Anyway, I plan on getting back to these tutorials soon. You're right, I got stuck with something else. I'm finishing my master's thesis, and it is taking up virtually all of my time. Hopefully after the beginning of March I'll be able to do some more stuff here. I can't tell you how happy I'll be to be done with the thesis, and back to making tutorials, not to mention my own video games!
"funny" as in "that made me laught" :)
It was meant in the best way possible :)
Sorry for doubleposting, but it wouldn't let me edit D;
If you ever get around to write more tutorials, I would be very interested in Pathfinding (Yeah I know it's brutally advanced), and a simple 2D UI for some game (Similare to any mmorpg, with icons and all that crap :D)
I'll add pathfinding to the list of potential future topics. It is definitely an advanced topic, and can involve a significant amount of work, but lots of games put it to use, so it would be a good one.
Thanks for the helpful wiki article, i'm always interested to learn about 2D and 3D integration for cheap video games
Thanks so much for these well-written tuts !! I found your shader ones very helpful. Please keep adding more of them ..
Post preview:
Close preview