After far too many hours of learning, teaching, recording, testing, video editing, and other glorious activities, I am ready to make available my massive collection of video tutorials for creating a 3D game in XNA from the ground up, without skipping steps, for you, the enthusiast, student, or educator!
The 3D game we build together is called GuitarMatey and it uses a regular Guitar Hero style controller.
(~236 MB, YES IT'S HUGE, IT INCLUDES LOTS OF UNCOMPRESSED AUDIO)
It's helpful to have:
- A modest understanding of C# and the .NET framework overall. This is for individuals who are comfortable with C# and have seen control structures and generic collections. If you are a beginner to programming, this series will be a little daunting for you.
- The final source code baseline (see giant link above) to use as a reference.
This source code download is huge, because it includes all the models, audio in WAV format, and art assets. If you aren't interested in the whole gambit:- click here to download the playable .ccgame for PC (~77.1 MB) (link fixed, ccgame is inside the zip) or
- click here to download the game source without any assets (~99.3 KB) (but beware: the game will not compile without them).
- Patience, perseverance and motivation
- Better art skills than me.
What you will need:
- Microsoft XNA Game Studio 2.0 (free download)
- SOFTIMAGE|XSI Mod Tool (free download)
- XNA Add-In for XSI (free download)
- Audio tool of your choice. Even Sound Recorder will work. I used Adobe Audition to record and mix my song, but it is certainly not free.
Here is the series index. Some of these videos are quite long because I detail the processes involved so you can get moving with XNA faster. Also, there may be some "editing glitches" (saying some things twice, unintentional speedups, or inconsistent volume levels) mainly because I am not running on video production hardware and don't have the time to re-produce stuff :)
Added Disclaimer: No guarantees about accuracy, no warranties, also this is not "official" Microsoft code, just written by a MS employee who thinks you can learn how to do it too!
GuitarMatey XNA Tutorial Series (12 Segments, 14 Total Videos)
- Introduction
Welcome. Let's build something cool together.
View Now (MSN Video) (00:41) - XSI and XNA Projects
One powerful benefit of using SOFTIMAGE|XSI Mod Tool (or the full version of XSI) is the direct-to-XNA plugin functionality. All you need to do is connect to an XNA project from XSI and you can publish your models. Mod Tool also includes a content importer and processor (Crosswalk) for XNA that prevents you from needing to write a custom importer.
View Now (MSN Video) (05:26) - Making A Really Simple 3D Model
Haven't made a 3D model before? Follow along here as I build a pirate hat, then export it in FBX format to use XNA's native content importer and processor.
View Now (MSN Video) (09:29) - Displaying a Simple Model in XNA
Learn how to display our pirate hat (.FBX format) in a new XNA game.
View Now (MSN Video) (11:29) - Texturing for XNA Using SOFTIMAGE|XSI Mod Tool
By default, XSI uses Mental Ray materials, which XNA does not directly support. Learn how to texture properly for an XNA project using DirectX shaders in XSI.
View Now (MSN Video) (10:26) - Rigging, Weighting, and Animating For XNA Using XSI
Originally one 40-minute video, these videos show you how to accomplish a very important thing: skinned animation for characters in your game.- Part 6a covers rigging (creating a skeleton for your model and assigning the bones to the mesh).
View Now (MSN Video) (14:53) - Part 6b covers weight painting (modifying how the movement of each bone influences deformations in different areas of the mesh).
View Now (MSN Video) (05:15) - Part 6c covers animation using forward kinematics. Animation in XSI using inverse kinematics (animating the effectors - see the video) does not get exported properly; here is the workaround.
View Now (MSN Video) (13:44)
- Part 6a covers rigging (creating a skeleton for your model and assigning the bones to the mesh).
- Creating the Game
Now that we have a model asset, let's put it into an XNA game. We'll display our skinned, animated pirate in XNA using the animation library provided by SOFTIMAGE. This video is a complete code walkthrough of a game with an animated, skinned 3D model. This model tester game will be the foundation for our "real" game.
View Now (MSN Video) (28:12) - Creating Music and Sound
Let's see how I created some sound assets for the game.
View Now (MSN Video) (04:29) - Audio in XNA Using XACT
XACT is a tool in the DirectX framework that allows you to create a sound bank for your game. Learn how to create an XACT library from some basic WAV files (remember, WAV, not MP3!) and play them in the game.
View Now (MSN Video) (10:22) - Determining What's What On The Guitar Controller
The controller for Guitar Hero games maps directly to controls on a standard Xbox 360 controller, but It's not immediately obvious what exactly the whammy bar, strum bar, and orange button do. Rather than go hunt for documentation, we can find out by experimentation in less than 5 minutes.
View Now (MSN Video) (04:45) - Handling Complex Controller Input & Final Code Walkthrough
If you've made it this far, you're probably familiar with the code structure of the game and what we are trying to accomplish. Rather than write code line by line, I take you through the finished PC version of the product (which is mostly well-organized and well-commented) so you can see how everything fits together. This version of the game handles complex controller input, playing audio, and animating characters.
View Now (MSN Video) (16:47) - Deploying To the Xbox 360 & Conclusion
In this final installment, you'll see how to connect your computer to your Xbox over a local network and deploy to it using XNA Game Studio Connect (free from the Xbox Live Marketplace). Then I say a few closing words and play GuitarMatey on a sweet 50" Samsung DLP. This video also covers hardware setup and connecting XNA Game Studio 2.0 (PC) to XNA GS Connect (Xbox).
View Now (MSN Video) (12:11)
Resources, Support, More
PLEASE CONTACT ME via comment or contact form on this blog if you have problems with this article (incorrect links, broken downloads, things of that nature).
If you have a question about the content of the videos, you can always try emailing me using the contact form on this blog. While I may not be able to respond, there is always a chance that I will.
I frequent the Creators Club forums at http://forums.xna.com which are an incredible resource for game developers, beginners and professionals alike. This should be the first place to go if you have questions.
For SOFTIMAGE specific questions, try the Mod Tool forum at http://forums.xna.com or the official XSI forums at http://www.xsibase.com
And, finally, don't forget to check out the Dan Waters 4 performing Guitar Matey semi-live once I post it :)
And finally, don't forget to subscribe to my feed to get more great resources like this in the future!