Developer Diary: Getting Started on XNA
Filed under: Developer Diary , Homebrew , Programming , XNA
Each week I like to set aside a few hours to explore software development technologies I haven't tried. This past weekend I started to take a deeper look at XNA.
I'll be documenting my XNA investigation with periodic updates as a Developer Diary. Today's Developer Diary is simple, I documented what I did to get a base understanding of XNA.
The quick summary, I downloaded a variety of tools, read a variety of blogs/tutorials and created some code derived from the tutorials. So this entry is largely a collection of links that will ensure a solid start.
As a note, while I'm new to XNA and 3D programming, I'm extremely familiar with C# and .NET (background here) so I'll be assuming readers know C#.
The Base Tools
Before you can really do anything (except read) you need to install the tools, Visual C# Express and XNA Game Studio Express.
Since I'm on Vista I followed David Weller's guide to installing the base tools on Vista. Even if you aren't on Vista it is a good general description of getting the tools in place.
As a note, Dave's blog post pre-dates Microsoft's release of the Visual Studio 2005 SP1 Update for Windows Vista, so make sure you get the new update.
Also, an updated version of XNA Game Studio Express is coming this April.
Auxiliary Tools
With the base tools in place I found and installed some tools to aid my XNA experimentation.
- Paint.NET: If you aren't a graphic artist or designer but need something to help with creating textures from photos this free tool should do the trick.
- FX Composer: A free environment from nVidia that allows you to create shaders. Definitely a great tool for experimentation; wish they had more samples.
- Turbo Squid: This site contains free and inexpensive 3D models that can be used with the XNA framework. I recommend experimenting with some free models.
- Blender: Blender is a free open source 3D modeling and animation tool. It can export to .X files (one of two model formats that XNA readily supports). I find 3D modeling packages a bit daunting but this tutorial was helpful. I haven't played a ton yet, but it works on Vista (I tried SOFTIMAGE's free tool, but it wouldn't work consistently).
Tutorials and Samples
With all my tools in place, I used the sites below to get myself familiar with XNA development.
- First place I visited was the MSDN XNA site (the same information is included as a help file with XNA Game Studio Express).
- The Getting Started pages and the Programming Guide pages give a great overview of XNA's abilities (and provide samples).
- I also recommend reading the Application Model Overview page to get an idea of XNA's general execution model.
- Next, I found Riemers XNA Tutorials. These are the most comprehensive set of easy to follow 3D tutorials I found. They progress nicely from beginner to advanced.
- Once you have gotten the basics the XNA Creator's site samples are not a bad place to go next. While some overlap with Riemers, the samples are great for experimentation.
- The blog Ramblings of a Hazy Mind also has a series of tutorial articles. As a slight warning, the tutorials are really guiding the creation of an XNA-based 3D graphics framework and the posts started in the betas so I don't believe the early code will work on the release version of XNA.
With the tutorials done you should be in a pretty good spot to write something more original by experimenting with the tutorial samples. I also recommend getting familiar with the growing XNA community. Here are some of the XNA related sites I regularly read.
My Bookmarked or RSS Subscribed Sites
Developer blogs that caught my attention:
- Manders vs Machine: A Microsoft employee providing some interesting insights into various XNA problems and techniques.
- Shawn Hargreaves: Shawn is also a Microsoft employee. His blog contains various code snippets and background information on the XNA framework.
- abi.exdream.com: Benjamin Nitchke's blog commonly lists advanced technique's and details about his XNA work. Benjamin is definitely someone to watch.
- Aliens of Extraordinary Ability: This blog tends to have interesting shaders being used or explored. Side-note: I'm assuming his blog's name is a reference to a special form of US Immigration Visa ... as a Canadian in the US, you become quite familiar with Visas.
Community sites:
- Ziggyware: Contains tutorials and information about XNA built games.
- Mykres Space: Gathers updates from the XNA community and commonly has code snippets to share.
- The ZBuffer: Tracks the general pulse of the XNA universe.
- XBOX 360 Homebrew: Contains information on XNA games, forums for developers, etc.
- Let's Kill Dave: Personal blog of David Weller, Microsoft's Game Developer Community Manager.
Official Microsoft Sites:
- XNA Creators Club Online: The official Microsoft site for XNA developers.
- MSDN XNA Site: The Microsoft Developer Network site for XNA. Unclear if this will continue now that XNA Creators Club Online is, um, online.
Follow-on blog posts ...
My next post will describe my initial reactions to XNA, things to consider, and some questions I'm hoping to eventually find answers to.
First off let's be clear, the $99 US annual fee for the XNA Creators Club isn't about Microsoft making money from the subscription. The number of people paying won't cover the engineering cost that has gone into creating and supporting XNA any time soon.
With the only current legitimate homebrew avenue being web, the question becomes what can Nintendo do to enhance it? They have already provided a strong browser. Providing some level of web API doesn't make sense when there really isn't the notion of a single sign-in/user focused central service nor the same kind of game completion tracking/achievements as on the 360.
While on the surface Sony has the most homebrew options, the options aren't viable as is. PS3's web browsers is apparently much
As a company, Microsoft's success is partially attributed to its support of the developer community. So when
Of all the current generation console makers, Nintendo appears to be the most reluctant when it comes to legitimate homebrew. They currently do not have an official strategy unlike Sony and Microsoft. While
I start our look at homebrew with the PlayStation 3 because oddly, compared to Sony's attempt to eliminate