<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://codetopia.com/cs/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>XNA Book Files</title><link>http://codetopia.com/cs/files/7/xna_book_files/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.0 (Build: 60217.2664)</generator><item><title>CH04 - 2D Graphics</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry383.aspx</link><pubDate>Sat, 19 Jan 2008 00:15:45 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:383</guid><dc:creator>groundh0g</dc:creator><slash:comments>9</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/383/download.aspx" length="37936" type="application/zip" /></item><item><title>CH05 - 2D Graphics, Advanced</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry382.aspx</link><pubDate>Sat, 19 Jan 2008 00:13:58 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:382</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Dynamically Modifying Resources&lt;/b&gt;

&lt;br&gt;
&lt;br&gt;
The ResourceUsage enumeration has been removed from the XNA Framework as of version 2.0. It has been replaced with the more specific BufferUsage and TextureUsage enumerations. Any methods that expected ResourceUsage as a parameter have been updated to use one of these new flavors.

&lt;br&gt;
&lt;br&gt;
For example, the following line from Chapter 5 created a texture to store our screen data in XNA 1.0 and XNA 1.0 Refresh as we built the image, pixel by pixel.

&lt;br&gt;
&lt;br&gt;
&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // we need to manage this texture ourselves, whenever&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // resources are reloaded, we set the member variable&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // to null, then recreate it here, just before use&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_texWorkingBuffer = new Texture2D(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; device,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCREEN_WIDTH, SCREEN_HEIGHT,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResourceUsage.AutoGenerateMipMap,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SurfaceFormat.Color,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResourceManagementMode.Automatic);&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;br&gt;
In XNA 2.0, we can create the same self-managed texture by using the following statement.

&lt;br&gt;
&lt;br&gt;
&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // we need to manage this texture ourselves, whenever&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // resources are reloaded, we set the member variable&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // to null, then recreate it here, just before use&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_texWorkingBuffer = new Texture2D(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GraphicsDevice,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCREEN_WIDTH, SCREEN_HEIGHT,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1, &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TextureUsage.AutoGenerateMipMap,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SurfaceFormat.Color);&lt;/span&gt;&lt;/font&gt;

&lt;br&gt;
&lt;br&gt;
Notice that the ResourceUsage parameter has been replaced with a TextureUsage, and that the ResourceManagementMode parameter has been removed entirely.                    

&lt;br&gt;
&lt;br&gt;
See "Capturing the Screen" for another concrete example of this change.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Dynamically Modifying Resources (Bug?)&lt;/b&gt;

&lt;br&gt;
&lt;br&gt;
There seems to be a (seemingly rare) side effect of the recent changes to the APIs that allow us to dynamically inspect and modify resources. In certain scenarios, a call to GetData or SetData for a resource may generate an exception that reads, "The operation was aborted. You may not modify a resource that has been set on a device, or after it has been used within a tiling bracket."

&lt;br&gt;
&lt;br&gt;
From the exception text, it seems that the resource is still locked by the Framework when your code is trying to access it's contents. This is not the expected behavior, and a bug has been reported to the XNA team. In a post to the XNA forums (http://forums.xna.com/thread/35536.aspx), XNA team member, Shawn Hargreaves, suggested a work-around that seems to resolve this issue for Chapter 5 -- set the GraphicDevice's reference to the resource to null before calling GetData or SetData on the resource. This will remove the lock that the device has on the resource, allowing you to use it. 

&lt;br&gt;
&lt;br&gt;
There are three places in the source code for Chapter 5 that call SetData. All three statements exhibited the described behavior when the code was executed on my laptop. Adding the following statement before each resolved this issue.

&lt;br&gt;
&lt;br&gt;
&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GraphicsDevice.Textures[0] = null;&lt;/span&gt;&lt;/font&gt;

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;NOTE:&lt;/b&gt; For more complicated game logic, the reference to your resource may not be stored at index zero.

&lt;br&gt;
&lt;br&gt;
I haven't done any testing to see if code that was compiled against XNA 1.0 or XNA 1.0 Refresh exhibits this behavior when run under the XNA 2.0 runtime. This fix should work in that scenario as well, though.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Capturing the Screen&lt;/b&gt;

&lt;br&gt;
&lt;br&gt;
The ResolveBackBuffer method of the GraphicsDevice class no longer accepts a Texture2D as a target for pixel data. You must now pass an instance of the ResolveTexture2D class to this method. Creating a new ResolveTexture2D is very similar to creating a self-managed Texture2D. The biggest differences are that you don't need to specify the ResourceUsage or ResourceManagementMode enumerations in the constructor.

&lt;br&gt;
&lt;br&gt;
For example, the following line from Chapter 5 created a texture to receive our screen data in XNA 1.0 and XNA 1.0 Refresh.

&lt;br&gt;
&lt;br&gt;
&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // create a texture to capture the back buffer&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Texture2D tex = new Texture2D(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; device,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCREEN_WIDTH,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCREEN_HEIGHT,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResourceUsage.ResolveTarget, // the magic option&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SurfaceFormat.Color,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResourceManagementMode.Manual);&lt;/span&gt;&lt;/font&gt;

&lt;br&gt;
&lt;br&gt;
In XNA 2.0, we just replace the self-managed texture with a ResolveTexture2D texture, and pass that to the ResolveBackBuffer method.

&lt;br&gt;
&lt;br&gt;
&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // create a texture to capture the back buffer&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ResolveTexture2D tex = new ResolveTexture2D(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GraphicsDevice, &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCREEN_WIDTH, &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCREEN_HEIGHT, &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1, &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SurfaceFormat.Color);&lt;/span&gt;&lt;/font&gt;

&lt;br&gt;
&lt;br&gt;
Notice how similar the code is.


&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/382/download.aspx" length="41098" type="application/zip" /></item><item><title>CH06 - 3D Graphics</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry381.aspx</link><pubDate>Sat, 19 Jan 2008 00:01:38 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:381</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/381/download.aspx" length="1758669" type="application/zip" /></item><item><title>CH07 - GamePad Input</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry380.aspx</link><pubDate>Sat, 19 Jan 2008 00:00:31 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:380</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/380/download.aspx" length="136166" type="application/zip" /></item><item><title>CH08 - Keyboard Input</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry379.aspx</link><pubDate>Fri, 18 Jan 2008 23:59:45 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:379</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/379/download.aspx" length="19607" type="application/zip" /></item><item><title>CH09 - Mouse Input</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry378.aspx</link><pubDate>Fri, 18 Jan 2008 23:58:07 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:378</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/378/download.aspx" length="18886" type="application/zip" /></item><item><title>CH10 - Audio</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry377.aspx</link><pubDate>Fri, 18 Jan 2008 23:56:41 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:377</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Hefty File Warning&lt;/b&gt;

&lt;br&gt;
&lt;br&gt;
The source media for this project bloats the size of the download to nearly 48MB. If you're not terribly interested in seeing how poorly I applied the XNA Framework's audio APIs to this example, feel free to save me from bandwidth overages by not downloading this ZIP file. Of course, if you're going to actually use the code, please feel free to click the link. I'll try not to make you feel guilty. And I won't complain. Much.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;New Version of XACT&lt;/b&gt;

&lt;br&gt;
&lt;br&gt;
In addition to numerous changes and additions to the XNA Framework, the XNA 2.0 release also brings a new version of the XACT utility. Upgrading your existing XACT projects is as easy as opening them in the new version of the tool, and clicking "Save". 

&lt;br&gt;
&lt;br&gt;
You'll need to put your XACT project files (the *.xap files) in the Content folder off your project's root directory. As with the earlier versions of XNA, you'll also want to store your source media in the same relative location as your XAP file. That means that your WAV files will live in the Content directory as well. The Content Pipeline doesn't process WAV files directly, though. So you'll need to tag your XACT source media with a "Build Action" of "None", and a "Copy to Output Directory" of "Do not copy". 

&lt;br&gt;
&lt;br&gt;
You may be asking why you should bother to include the source media in your project at all. After all, the Content Pipeline only needs the XAP file to kick off the content build. As long as the source media lives on the file system in a path that the XACT project can access, the build will work just fine without "polluting" the project with unbuildable (as far as Visual Studio is concerned, at least) files.

&lt;br&gt;
&lt;br&gt;
The short answer is that you don't (as far as I know) have to include the files in your project. The main reason that I suggest including them in the project is to make life easier when you're working with a team that takes advantage of source control. The new XNA release supports all flavors of Visual Studio 2005, and all but the Express version support version control. When you open a project for the first time from source control, Visual Studio will download all the files that are associated with the project -- including the "don't build me" files.

&lt;br&gt;
&lt;br&gt;
Of course, you could also build the XNA-friendly files within XACT, and import them into your project as normal "copy me when you build the project" content as well.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Changes to the Source Code&lt;/b&gt;

&lt;br&gt;
&lt;br&gt;
Since I moved the XACT project file into the Content directory, I also had to update the code that references the output of the XACT project. The original code to load audio content for this chapter's game looked like the following snippet.

&lt;br&gt;
&lt;br&gt;
&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // initialize our sound objects&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_audio = new AudioEngine("example.xgs");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_wave = new WaveBank(m_audio, "example.xwb");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_sound = new SoundBank(m_audio, "example.xsb");&lt;/span&gt;&lt;/font&gt;
    
&lt;br&gt;
&lt;br&gt;
During the conversion, I changed those lines to the following logic.
    
&lt;br&gt;
&lt;br&gt;
&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // initialize our sound objects&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_audio = new AudioEngine(@"Content\example.xgs");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_wave = new WaveBank(m_audio, @"Content\example.xwb");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_sound = new SoundBank(m_audio, @"Content\example.xsb");&lt;/span&gt;&lt;/font&gt;

&lt;br&gt;
&lt;br&gt;
So, with all the breaking changes that were made to XNA in this release, why didn't the XNA team switch to a model where audio content is loaded just like any other media content -- something like 'm_audio = Content.Load&amp;lt;AudioEngine&amp;gt;(@"Content\example.xgs");'? Beats me.&amp;nbsp;
&lt;img src="/cs/emoticons/emotion-2.gif" alt="Big Smile [:D]" /&gt;
&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://www.codetopia.com/xnafiles/PT1_CH10.zip" length="48934597" type="application/x-zip-compressed" /></item><item><title>CH11 - Storage</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry376.aspx</link><pubDate>Fri, 18 Jan 2008 23:47:28 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:376</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Storage Device Selection Guide&lt;/b&gt;

&lt;br&gt;
&lt;br&gt;
The Microsoft.Xna.Framework.Storage.StorageDevice is still the interface for accessing persistent storage media, but it no longer exposes the BeginShowStorageDeviceGuide or EndShowStorageDeviceGuide static methods. The class in XNA 2.0 which provides access to the file system (and prompts the user to select a storage device on the Xbox 360) is Microsoft.Xna.Framework.GamerServices.StorageDevice.Guide. It exposes two static methods that replace the ones that were removed from the StorageDevice class. They are named BeginShowStorageDeviceSelector and EndShowStorageDeviceSelector.

&lt;br&gt;
&lt;br&gt;
So, code that looked like this in XNA 1.0 and XNA 1.0 Refresh ...

&lt;br&gt;
&lt;br&gt;
&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // show the storage guide on Xbox, has no &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // effect on Windows&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_resultStorage = StorageDevice&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .BeginShowStorageDeviceGuide(null, null);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get a reference to the selected device&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_storage = StorageDevice&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .EndShowStorageDeviceGuide(m_resultStorage);&lt;/span&gt;&lt;/font&gt;


&lt;br&gt;
&lt;br&gt;
... looks like this in XNA 2.0.

&lt;br&gt;
&lt;br&gt;
&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // show the storage guide on Xbox, has no &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // effect on Windows&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_resultStorage = &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Guide.BeginShowStorageDeviceSelector(null, null);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get a reference to the selected device&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_storage =&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Guide.EndShowStorageDeviceSelector(m_resultStorage);&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;br&gt;
&lt;br&gt;
Notice the similarities. Other than the change of namespace and hosting class, your code should work just like it did in the XNA 1.0 days.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;NOTE:&lt;/b&gt; The synchronized (i.e. blocking) method of storage device selection (ShowStorageDeviceGuide), which only worked on Windows without headaches, has been removed from the XNA Framework altogether. Only asynchronous storage device selection is supported in XNA 2.0.

&lt;br&gt;
&lt;br&gt;
The GameStorage and GameData classes in Chapter 11 (the chapter on the Storage APIs) don't require any changes at all. Those supporting classes don't reference the affected XNA Framework interfaces.


&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/376/download.aspx" length="25016" type="application/zip" /></item><item><title>CH13 - Ping Pong</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry375.aspx</link><pubDate>Fri, 18 Jan 2008 23:38:19 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:375</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/375/download.aspx" length="22957" type="application/zip" /></item><item><title>CH14 - BrickBreaker</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry374.aspx</link><pubDate>Fri, 18 Jan 2008 23:36:54 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:374</guid><dc:creator>groundh0g</dc:creator><slash:comments>4</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Reminder: Level Data&lt;/b&gt;

&lt;br&gt;
&lt;br&gt;
Don't forget to mark your level data files (*.bbp) as "Build Action=None" and "Copy to Output Directory=Copy if newer" within your project. I've already made this change in the downloaded code. I'm just noting it here for those who wish to follow the chapter text and create the project files on their own.


&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/374/download.aspx" length="188730" type="application/zip" /></item><item><title>CH15 - Puzzle Games</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry373.aspx</link><pubDate>Fri, 18 Jan 2008 23:34:54 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:373</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/373/download.aspx" length="51775" type="application/zip" /></item><item><title>CH16 - Top-Down Scroller</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry372.aspx</link><pubDate>Fri, 18 Jan 2008 23:33:56 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:372</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/372/download.aspx" length="882494" type="application/zip" /></item><item><title>CH17 - Solitare</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry371.aspx</link><pubDate>Fri, 18 Jan 2008 23:32:03 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:371</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/371/download.aspx" length="583240" type="application/zip" /></item><item><title>CH18 - Board Games</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry370.aspx</link><pubDate>Fri, 18 Jan 2008 23:30:32 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:370</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;&lt;br&gt;&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/370/download.aspx" length="37017" type="application/zip" /></item><item><title>CH19 - Keyboard-Aware GamePad</title><link>http://codetopia.com/cs/files/7/xna_book_files/entry369.aspx</link><pubDate>Fri, 18 Jan 2008 23:29:04 GMT</pubDate><guid isPermaLink="false">ef84f941-e677-42b9-9002-5d57148e678d:369</guid><dc:creator>groundh0g</dc:creator><slash:comments>0</slash:comments><description>&lt;br&gt;This ZIP archive contains source code from the book, &lt;a href="http://www.amazon.com/dp/1598633686?tag=coll06-20&amp;amp;camp=14573&amp;amp;creative=327641&amp;amp;linkCode=as1&amp;amp;creativeASIN=1598633686&amp;amp;adid=0YJYR31RJKW978MSCNNY&amp;amp;"&gt;&lt;i&gt;XNA Game Studio Express: Developing Games for Windows and the Xbox 360&lt;/i&gt;&lt;/a&gt;, by Joseph Hall. The following paragraphs describe the changes that have been made to the code since it was first released with the book.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Reminder: Key Map Data&lt;/b&gt;

&lt;br&gt;&lt;br&gt;
Don't forget to mark your key mapping data files (KeyMappings\*.txt) as "Build Action=None" and "Copy to Output Directory=Copy if newer" within your project. I've already made this change in the downloaded code. I'm just noting it here for those who wish to follow the chapter text and create the project files on their own.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;New Game1 Member Variables&lt;/b&gt;
&lt;br&gt;&lt;br&gt;The Microsoft.Xna.Framework.Game class now has a SpriteBatch member variable, named "spriteBatch". We don't need to add one, so you can replace any reference in the text to "m_batch" with the provided member variable, "spriteBatch". Of course, this means that you'll want to remove this auto-generated SpriteBatch logic for game projects in which you won't be using any sprites (which is the case with the example 3D code in Chapter 06).

&lt;br&gt;&lt;br&gt;The Game class now provides a member variable (called "Content") which exposes the ContentManager class. We don't need to manage our own reference to the content manager now, so you can replace any reference in the text to "content" with the provided member variable, "Content" (notice the change in capitalization).

&lt;br&gt;&lt;br&gt;The Game class also provides a member variable (called "GraphicsDevice") which exposes the GraphicsDevice object which represents the active graphics device. You can replace any reference in the text to "graphics.GraphicsDevice" with the provided member variable, "GraphicsDevice". You'll see this change in the auto-generated Game1 class when you create a new XNA 2.0 game. The spriteBatch member variable is initialized using "new SpriteBatch(GraphicsDevice);" rather than the previous "new SpriteBatch(graphics.GraphicsDevice);".

&lt;br&gt;&lt;br&gt;&lt;b&gt;LoadContent vs. LoadGraphicsContent&lt;/b&gt;

&lt;br&gt;&lt;br&gt;The LoadGraphicsContent and UnloadGraphicsContent methods of the Microsoft.Xna.Framework.Game class (technically, they're members of the DrawableGameComponent class, from which Game is derived) have been replaced with the LoadContent and UnloadContent methods. The old content management methods still work, but the compiler will generate deprecation warnings for them, and there's a good chance that the old methods will be removed from future releases of the XNA Framework.

&lt;br&gt;&lt;br&gt;&lt;b&gt;Content Folder&lt;/b&gt;

&lt;br&gt;&lt;br&gt;All content is now stored under the Content folder of your project. Prefix any content subdirectory names in the code with "Content\". For example, most of the book's examples store game media in the "media" subdirectory, which is located just off the root directory of the project. An image named "myImage.png" within that subdirectory would have been refered to as "media\myImage" in XNA 1.0 and XNA 1.0 Refresh. In XNA 2.0, that same resource would be refered to as "Content\media\myImage".

&lt;br&gt;&lt;br&gt;The Content folder actually represents a subproject called "Content" which manages the building, converting, and importing of media for your game. Any media that is accessed via the ContentManager class should live here. This includes items such as textures, models, and XACT projects. Any game-specific content data that you manage manually, such as level data and persisted game data, is not housed within the Content directory.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Intuitive File Names&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
I used longer, more descriptive filenames for the solution files, project files, and directory names. The new names make it much easier to locate the source code for a specific chapter. This may cause issues if you do your development in a deeply-nested subdirectory, like the default Visual Studio project folder of "C:\Documents and Settings\{username}\My Documents\Visual Studio 2005\Projects\".&lt;br&gt;&lt;br&gt;I suggest creating a folder off the root of the drive from which you wish to develop your XNA games. I use "C:\projects\" on my laptop, and "E:\projects\" on my desktop.

&lt;br&gt;
&lt;br&gt;
&lt;b&gt;ZIP Anatomy&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
All of the ZIP files which host the book's source code use a parallel directory structure. I expect the user to download the ZIP files into a common directory, then extract the files from each ZIP directly into that directory, preserving the ZIP file's internal directory structure. For example, if you download PT1_CH04.zip, PT1_CH07.zip, and PT2_18.zip into the "C:\projects\" directory on your local PC, and then extract the files to that same folder, you should have the following directory structure on your local drive.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH04 - Graphics 2D\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 1 - Introduction\CH07 - Input GamePad\&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; C:\projects\Part 2 - Genre Studies\CH18 - Board Games\&lt;/span&gt;&lt;/font&gt;</description><enclosure url="http://codetopia.com/cs/files/369/download.aspx" length="155452" type="application/zip" /></item></channel></rss>