<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/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>Mitch Walker : Game Programming</title><link>http://blogs.msdn.com/mitchw/archive/category/3116.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Finish the...</title><link>http://blogs.msdn.com/mitchw/archive/2008/11/28/finish-the.aspx</link><pubDate>Sat, 29 Nov 2008 01:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9153681</guid><dc:creator>mitchw</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/9153681.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=9153681</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=9153681</wfw:comment><description>&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman','serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;When we shipped &lt;/FONT&gt;&lt;A href="http://creators.xna.com/en-us/xnags_islive"&gt;&lt;FONT face=Calibri color=#800080&gt;XNA Game Studio 3.0&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; last month, and then turned on &lt;/FONT&gt;&lt;A href="http://creators.xna.com/en-US/XBLCG_is_Live"&gt;&lt;FONT face=Calibri color=#800080&gt;Xbox LIVE Community Games&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; this month, that, to me, really completed our initial vision for XNA Game Studio, the changes in the way games are made, and creating opportunities for a new class of game developers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;While there will always be a list of things to be added or improved to XNA Game Studio and the XNA Framework, I was having trouble finding tough, interesting problems to solve, which is what motivates me.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;So I’ve taken my love of games, of creating platforms and tools, and of a particular game series and found my next big challenge to tackle.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A couple of weeks ago, I started as a Program Manager on the &lt;/FONT&gt;&lt;A href="http://kotaku.com/5048500/halo-studio-seeks-next-gen-program-manager"&gt;&lt;FONT face=Calibri color=#800080&gt;Microsoft Halo Studio&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; team.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I’m joining a(nother) team filled with very talented people and I’m excited about the possibilities.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;Unfortunately, what I’ll be working on won’t lend itself to public blogging much anymore…not that I’ve been a regular blogger anyway.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;And I usually don’t post (or twitter) about day to day stuff.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Me getting another Diet Dew from the fridge just doesn’t seem that interesting. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I’ll keep this blog around for a bit and see how it goes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;I’ll still be involved in the XNA Game Studio community, but now from the “other” side…a creator…as I continue to learn, create, and wait to see what the team comes up with next.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;-Mitch&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9153681" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category><category domain="http://blogs.msdn.com/mitchw/archive/tags/General/default.aspx">General</category><category domain="http://blogs.msdn.com/mitchw/archive/tags/XNA+Game+Studio/default.aspx">XNA Game Studio</category></item><item><title>The One About Storage</title><link>http://blogs.msdn.com/mitchw/archive/2008/10/15/the-one-about-storage.aspx</link><pubDate>Thu, 16 Oct 2008 06:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9001378</guid><dc:creator>mitchw</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/9001378.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=9001378</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=9001378</wfw:comment><description>&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;So I’ve played quite a few XNAGS games, and quite a few that have been released to Xbox LIVE Marketplace as part of the Xbox LIVE Community Games beta.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Based on the types of issues we’ve seen and feedback in general about good development practices, we set out to create the “best practices” for creating Community Games document.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This will be a living document that is continuously updated and expanded upon as we find out what works, what doesn’t work, what is difficult, and what are some things most games should attempt to do.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There is one issue, however, that I’ve seen crop up quite often and I figure it’s worth discussing in more depth what it is, what causes it, and how to prevent it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Let’s call it the “Storage API Hang of Fun”.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ve probably run across it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You build your game, add save game or high score support and being a good XNAGS citizen, use the Storage APIs to get a hold of a proper &lt;B style="mso-bidi-font-weight: normal"&gt;StorageContainer&lt;/B&gt; so you can read and write the files to the correct place.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Everything seems to be working well; it’s time to beta test!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;So you package up your game and hand it out to a few people to try.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;“Your game freezes my Xbox 360”&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;What? How can this be? It was working perfectly on my machine! I thought the purpose of a console was that it is a fixed hardware platform that is easy to develop against since everyone will have the same hardware!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Except there is one area that each console can be slightly different: Storage devices, or more specifically, the number of devices available.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Ask the person who is having trouble if they have a HDD and a Memory Unit plugged in.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Most likely they do.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Have them remove the Memory Unit and I bet the game starts to function properly.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Problem solved!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;But why did it happen? Let’s take a look into a couple of areas that have led you down this path.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri size=3&gt;The Guide&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;In XNA Game Studio 2.0 we provided access to Gamer Profiles and the Guide functionality of the Xbox 360.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The &lt;B style="mso-bidi-font-weight: normal"&gt;Guide&lt;/B&gt; is a system service that is running in the background of your game.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is the UI that is displayed when the user hits the silver Xbox 360 button on their controllers, want to create a Friend request, view their messages, etc.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The system “hooks” our call to &lt;B style="mso-bidi-font-weight: normal"&gt;GraphicsDevice.Present&lt;/B&gt; (which gets called for you inside of &lt;B style="mso-bidi-font-weight: normal"&gt;Game.EndDraw&lt;/B&gt;).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Inside of this, it performs any input processing and drawing, which is how it can draw on top of your game without you needing to do anything.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;The only thing you need to do is to make sure your game is running, i.e. having &lt;B style="mso-bidi-font-weight: normal"&gt;Update&lt;/B&gt; and &lt;B style="mso-bidi-font-weight: normal"&gt;Draw&lt;/B&gt; called into (and you allowing them to return) at least 15 times a second (the recommended minimum).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;As long as your game isn’t blocked on the main thread, the Guide will be able to come and go as it pleases and everyone is happy.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Unless you block the main thread.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is why we designed many of the &lt;B style="mso-bidi-font-weight: normal"&gt;Guide&lt;/B&gt; APIs to use the .NET asynchronous call pattern.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If the particular &lt;B style="mso-bidi-font-weight: normal"&gt;Guide&lt;/B&gt; API you are calling requires user input and expects data to return, then you have to call the &lt;B style="mso-bidi-font-weight: normal"&gt;Guide&lt;/B&gt; API such that it occurs on a background thread…this allows your main thread to continue to run, which will eventually call &lt;B style="mso-bidi-font-weight: normal"&gt;GraphicsDevice.Present&lt;/B&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Calibri size=3&gt;Storage APIs&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Guide.BeginShowStorageDeviceSelector&lt;/B&gt; is one such API.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The purpose of this API is to allow the user to choose what storage device they would like the game to read and write from.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Since the Xbox 360 can have any combination of a HDD and up to two Memory Units, a “well behaved” game will allow the user to choose whichever device that is present.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;When we released XNA Game Studio Express, we provided a non-asynchronous &lt;B style="mso-bidi-font-weight: normal"&gt;Guide.ShowStorageDeviceSelector&lt;/B&gt; API, knowing that on the Xbox 360, calling this on the main thread would instantly lock your console.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We provided for those that would like to call this blocking version from a background thread.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In XNAGS 2.0 we introduced many more Guide APIs and we wanted to clean things up a bit and make them more consistent.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We realized that the &lt;I style="mso-bidi-font-style: normal"&gt;correct&lt;/I&gt; way to call this API was to call it asynchronously, so we removed the blocking version and helped those unfamiliar with the pattern to move their code.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The native APIs that we call by default won’t display the selection UI if there is only one storage device available.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Instead it will return instantly with the “default” device.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In our first release, we passed in a flag that basically says “always show the UI”.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In another effort to help make this easier, we stopped passing this flag in XNAGS 2.0 so that if only one device is available, the call will return immediately.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Unfortunately the combination of these two changes (requiring you to call it asynchronously and not display the UI if there is only one device), led many people to write the following code:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f2f2f2; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 6.65in; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-background-themecolor: background1; mso-background-themeshade: 242" vAlign=top width=638&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;IAsyncResult&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; result = &lt;SPAN style="COLOR: #2b91af"&gt;Guide&lt;/SPAN&gt;.BeginShowStorageDeviceSelector(...);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;while&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;(result.IsCompleted == &lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;StorageDevice&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; device = &lt;SPAN style="COLOR: #2b91af"&gt;Guide&lt;/SPAN&gt;.EndShowStorageDeviceSelector(result);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;If you call this piece of code on the main thread…what will happen?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The Begin call will succeed, we’ll then sit there and spin until the user has selected the device they want to use and the operation is “complete”.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We’ll then call the End method and get the device.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;But if we’re spinning on IsCompleted, then that means GraphicsDevice.Present is not getting called, which means the user won’t be able to select a device, so that while condition will never complete.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;The game is now deadlocked.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The user will have to reboot their Xbox 360.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Unless…they only have one storage device available.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In which case, IsCompleted will immediately be true, you’ll get down to the End call and everything will return normally!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;So, a long description of a relatively simple problem and one that is easy to get yourself into.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;How do we fix it?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;By handling the async pattern correctly.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You have two choices and they are both valid.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;One is to store the &lt;B style="mso-bidi-font-weight: normal"&gt;IAsyncResult&lt;/B&gt; as a member variable in your game and check &lt;B style="mso-bidi-font-weight: normal"&gt;IsCompleted&lt;/B&gt; inside of your &lt;B style="mso-bidi-font-weight: normal"&gt;Update&lt;/B&gt; call.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The other is to pass in a callback method to &lt;B style="mso-bidi-font-weight: normal"&gt;BeginShowStorageDeviceSelector&lt;/B&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Once the operation is completed, your method will get called, the &lt;B style="mso-bidi-font-weight: normal"&gt;IAsyncResult&lt;/B&gt; will get passed to you, and you can use it to complete the operation.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I generally prefer the callback method, but again, either pattern is equally correct.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Here’s a simple example of how you can call this API so that it behaves correctly regardless of the number of storage devices the user has.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #f2f2f2; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; WIDTH: 6.65in; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-background-themecolor: background1; mso-background-themeshade: 242" vAlign=top width=638&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;public&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;MyGameState&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;StorageDevice&lt;/SPAN&gt; Device;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;public&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;MyGame&lt;/SPAN&gt; : &lt;SPAN style="COLOR: #2b91af"&gt;Game&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;override&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; LoadContent()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Some object you want to have passed into the callback&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;MyGameState&lt;/SPAN&gt; myGameState = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;MyGameState&lt;/SPAN&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Guide&lt;/SPAN&gt;.BeginShowStorageDeviceSelector(StorageCompletedCallback, myGameState);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; StorageCompletedCallback(&lt;SPAN style="COLOR: #2b91af"&gt;IAsyncResult&lt;/SPAN&gt; result)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Retrieve the state you passed in&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;MyGameState&lt;/SPAN&gt; myGameState = (&lt;SPAN style="COLOR: #2b91af"&gt;MyGameState&lt;/SPAN&gt;)result.AsyncState;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Complete the call and retrieve the selected StorageDevice&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;myGameState.Device = &lt;SPAN style="COLOR: #2b91af"&gt;Guide&lt;/SPAN&gt;.EndShowStorageDeviceSelector(result);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes; mso-bidi-font-size: 10.0pt"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNoSpacing style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Hopefully if you’ve run into this problem with your games, you now have a better understanding of what is occurring, and how to fix it.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9001378" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category><category domain="http://blogs.msdn.com/mitchw/archive/tags/XNA+Game+Studio/default.aspx">XNA Game Studio</category></item><item><title>Audio Compression using XACT</title><link>http://blogs.msdn.com/mitchw/archive/2007/04/27/audio-compression-using-xact.aspx</link><pubDate>Sat, 28 Apr 2007 03:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2306410</guid><dc:creator>mitchw</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/2306410.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=2306410</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=2306410</wfw:comment><description>&lt;P class=style2&gt;There are two pieces of feedback that I hear quite a bit related to the audio support in XNA Game Studio Express.&lt;/P&gt;
&lt;UL&gt;
&lt;LI class=style2&gt;It only supports WAV files. All of my sounds are in a different format, such as WMA.&lt;/LI&gt;
&lt;LI class=style2&gt;Audio binaries are too large. WAV isn't compressed, so my music tracks are huge!&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=style2&gt;We're investigating what we can do for the first issue, which would obviously help the second issue at the same time. But there is some support for compressing your audio files in the current product, using the XACT tool; it's just not easy to discover. XACT supports ADPCM compression on Windows and XMA compression on the Xbox 360. You can get about 4:1 compression with ADPCM and even better with XMA. So while perhaps not as high as some other encodings, such as WMA, it does offer quite a substantial savings.&lt;/P&gt;
&lt;P class=style2&gt;So how do you enable compression for your Wavebanks? Let's take a look:&lt;/P&gt;
&lt;UL&gt;
&lt;LI class=style2&gt;&lt;STRONG&gt;Create an XACT project and a Wave Bank&lt;/STRONG&gt;&lt;BR&gt;Start the XACT editor by using the Start menu shortcut Microsoft XNA Game Studio Express -&amp;gt; Tools -&amp;gt; Microsoft Cross-Platform Audio Creation Tool (XACT).&amp;nbsp; Create a new project and add a new Wave Bank to the project.&lt;/LI&gt;&lt;/UL&gt;
&lt;UL&gt;
&lt;LI class=style2&gt;&lt;STRONG&gt;Add some WAV files to the Wave Bank&lt;/STRONG&gt;&lt;BR&gt;While we won't be playing any sounds during this, we do want to see the results of the compression.&amp;nbsp; Once your done with this, you should see something like the below screenshot.&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=style6&gt;&lt;IMG height=452 src="http://www.mitchw.net/blogs.msdn.com/Audio%20Compression%20using%20XACT_files/step1.png" width=809 mce_src="http://www.mitchw.net/blogs.msdn.com/Audio%20Compression%20using%20XACT_files/step1.png"&gt;&lt;/P&gt;
&lt;P class=style6 mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI class=style2&gt;&lt;STRONG&gt;Create a new Compression Preset&lt;/STRONG&gt;&lt;BR&gt;You can create a group of compression settings via a Compression Preset.&amp;nbsp; This allows you to reuse the settings across multiple Wave Banks.&amp;nbsp; This is also why it's a bit hidden.&amp;nbsp; Rather than adjusting the compression settings on the sounds themselves or the Wave Bank, we do it here.&amp;nbsp; You can create a new Compression Preset easily by right-clicking on the Compression Presets item in the explorer.&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=style6&gt;&lt;IMG height=452 src="http://www.mitchw.net/blogs.msdn.com/Audio%20Compression%20using%20XACT_files/step2_small.png" width=320 mce_src="http://www.mitchw.net/blogs.msdn.com/Audio%20Compression%20using%20XACT_files/step2_small.png"&gt;&lt;/P&gt;
&lt;P class=style6 mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI class=style4&gt;&lt;STRONG&gt;&lt;SPAN class=style5&gt;Tweak Settings&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=style5&gt;&lt;BR&gt;After you've created it, you can see the default compression settings for ADPCM and XMA. You do have the ability to change some of these settings, although we'll just leave the defaults for this exercise.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=style6&gt;&lt;IMG height=452 src="http://www.mitchw.net/blogs.msdn.com/Audio%20Compression%20using%20XACT_files/step3_small.png" width=312 mce_src="http://www.mitchw.net/blogs.msdn.com/Audio%20Compression%20using%20XACT_files/step3_small.png"&gt;&lt;/P&gt;
&lt;P class=style6 mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI class=style4&gt;&lt;STRONG&gt;&lt;SPAN class=style5&gt;Apply the Compression Preset to the Wave Bank.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=style5&gt;&lt;BR&gt;This is as easy as selecting the Wave Bank we created earlier, and then selecting the Compression Preset we just created in the Properties window for the Wave Bank. This tells the XACT compiler that we would like it to compress the WAV files using the preset settings when it builds the Wave Bank binaries.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=style6&gt;&lt;IMG height=459 src="http://www.mitchw.net/blogs.msdn.com/Audio%20Compression%20using%20XACT_files/step4_small.png" width=306 mce_src="http://www.mitchw.net/blogs.msdn.com/Audio%20Compression%20using%20XACT_files/step4_small.png"&gt;&lt;/P&gt;
&lt;P class=style6 mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI class=style4&gt;&lt;STRONG&gt;&lt;SPAN class=style5&gt;Done!&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN class=style5&gt;&lt;BR&gt;If we look at the details for the WAV files that are in the Wave Bank, we see that they now indicate they are compressed and how much space is saved.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=style6&gt;&lt;IMG height=459 src="http://www.mitchw.net/blogs.msdn.com/Audio%20Compression%20using%20XACT_files/step5.png" width=809 mce_src="http://www.mitchw.net/blogs.msdn.com/Audio%20Compression%20using%20XACT_files/step5.png"&gt;&lt;/P&gt;
&lt;P class=style6 mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=style2&gt;I hope this was helpful for those that didn't know about the ability to compress your audio binaries using XACT.&amp;nbsp; While not as compressed as some other formats, it should provide for smaller game sizes, especially when including audio assets for background music.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2306410" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category><category domain="http://blogs.msdn.com/mitchw/archive/tags/XNA+Game+Studio/default.aspx">XNA Game Studio</category></item><item><title>XNA Happenings</title><link>http://blogs.msdn.com/mitchw/archive/2006/10/26/xna-happenings.aspx</link><pubDate>Thu, 26 Oct 2006 19:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:876254</guid><dc:creator>mitchw</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/876254.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=876254</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=876254</wfw:comment><description>&lt;P&gt;You've probably seen the post announcing we're releasing a &lt;A class="" href="http://blogs.msdn.com/xna/archive/2006/10/23/announcing-xna-game-studio-express-beta-2.aspx" target=_blank mce_href="http://blogs.msdn.com/xna/archive/2006/10/23/announcing-xna-game-studio-express-beta-2.aspx"&gt;Beta 2 of XNA Game Studio Express&lt;/A&gt;.&amp;nbsp;&amp;nbsp;This release contains lots of fixes and tweaks based on feedback and it includes the much anticipated Content Pipeline!&amp;nbsp; As we get closer to release, I'll have a post that explains some of the changes.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;If you want to get a sneak peak at what's coming in the beta, then you should stop by the &lt;A class="" href="http://seattle.techevents.info/codecamp/2/agenda.aspx" target=_blank mce_href="http://seattle.techevents.info/codecamp/2/agenda.aspx"&gt;Seattle Code Camp v2.0&lt;/A&gt; that is happening this weekend.&amp;nbsp; There are a lot of great sessions, including 3 XNA related sessions:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Making an XNA Game for the Xbox 360&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Introduction to the Programmable Pipeline in XNA&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Exploring the XNA Framework&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I'm giving the last session where we'll be looking at new features and changes in the XNA Framework, a little peak into the Content Pipeline and our&amp;nbsp;support for the Xbox 360!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=876254" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category><category domain="http://blogs.msdn.com/mitchw/archive/tags/XNA+Game+Studio/default.aspx">XNA Game Studio</category></item><item><title>Calling Casual Game Developers</title><link>http://blogs.msdn.com/mitchw/archive/2006/04/12/575546.aspx</link><pubDate>Thu, 13 Apr 2006 09:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:575546</guid><dc:creator>mitchw</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/575546.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=575546</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=575546</wfw:comment><description>&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Are you a hobby, casual or Indie game developer? If so, we're looking for participants in a usability study which will help us build better products and technologies to help serve your needs in this area.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Participation criteria:&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana&gt;You must have been actively involved in programming games&amp;nbsp;within the past year.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;You must be a student, hobbyist (meaning you develop games for fun), or Indie game developer. For this particular study we are not considering professional game developers who work at established studios &lt;I&gt;unless &lt;/I&gt;you also develop games for fun outside of work.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana&gt;For this particular study we are looking for participants who reside within 30 miles of Seattle, Washington.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;Users who are interested in participating in the study and meet the criteria above should complete our short (5-10 minutes) survey here: &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;A href="http://www.developersurvey.com/Surveys/TakeSurvey.aspx?s=F418DF772FE24D96A1A38F3BDCD4131A"&gt;&lt;U&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face=Verdana&gt;http://www.developersurvey.com/Surveys/TakeSurvey.aspx?s=F418DF772FE24D96A1A38F3BDCD4131A&lt;/FONT&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Once we receive survey responses we will begin contacting the candidates if they meet our selection criteria.&lt;/P&gt;
&lt;P&gt;Thanks!&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=575546" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category></item><item><title>Terrarium 1.2 Server Available</title><link>http://blogs.msdn.com/mitchw/archive/2005/05/10/416166.aspx</link><pubDate>Wed, 11 May 2005 02:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:416166</guid><dc:creator>mitchw</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/416166.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=416166</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=416166</wfw:comment><description>&lt;SPAN class=normalTextSmall&gt;&lt;FONT face=Verdana size=2&gt;I'm glad to announce that the Terrarium 1.2 Server is finally available for download. Head on over to the &lt;/FONT&gt;&lt;A href="http://www.windowsforms.net/terrarium/download/?tabindex=10&amp;amp;tabid=42" target=_new&gt;&lt;B&gt;&lt;FONT face=Verdana size=2&gt;Terrarium Downloads&lt;/FONT&gt;&lt;/B&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; area to snag it. &lt;BR&gt;&lt;BR&gt;Now included is a configuration tool that will create the database, create the virtual directory and congifure permissions and settings for you. Also, the server no longer requires Office Web Components for charting!&lt;/FONT&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=416166" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category></item><item><title>DirectX 9.0 SDK October 2004 Update Available</title><link>http://blogs.msdn.com/mitchw/archive/2004/10/09/240353.aspx</link><pubDate>Sun, 10 Oct 2004 04:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:240353</guid><dc:creator>mitchw</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/240353.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=240353</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=240353</wfw:comment><description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;An update to the DirectX SDK is now available.&amp;nbsp; Here is a brief list of changes:&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;font color="#000080"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tool Updates&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Call capture and playback, Asynchronous events, Triggers and Actions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Maya Exporter&amp;nbsp;&amp;nbsp; - Maya 6 Support, Procedural texture support, Updated installer&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;font color="#000080"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; New Samples&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C++&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - AntiAliasing, Instancing, ConfigSystem&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Managed &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - PrtPerVertex, FragmentLinker , SimpleAnimation&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;font color="#000080"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bug fixes&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D3DX&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Debug Output Muting, PRT Blocker meshes no longer have a 65,535 vertex limit, texture UV coordinate transformation)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DirectX for Managed Code&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - memory leak in TextureLoader.FromFile, unhandled exception errors)&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;font color="#000080"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;font color="#000080"&gt;&lt;font color="#000000"&gt;I am especially excited about the Maya 6 exporter.&amp;nbsp; The last SDK only included support for Maya 5 and it didn't work with the new version.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;font color="#000080"&gt;Here are the links to the downloads.&amp;nbsp; This is "breaking" news, so the main portal page, &lt;a href="http://msdn.microsoft.com/directx"&gt;http://msdn.microsoft.com/directx&lt;/a&gt;, hasn't been updated yet.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;font color="#000080"&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Release Notes&lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=97CDCC31-7D0C-4F4F-81B1-16A0A7C29FB9%26displaylang=en" target="_blank"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=97CDCC31-7D0C-4F4F-81B1-16A0A7C29FB9&amp;amp;displaylang=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Software Developer Kit&lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=B7BC31FA-2DF1-44FD-95A4-C2555446AED4%26displaylang=en" target="_blank"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=B7BC31FA-2DF1-44FD-95A4-C2555446AED4&amp;amp;displaylang=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Extras&lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D6F237DE-A6EE-4DED-8BB6-139536162EB8%26displaylang=en" target="_blank"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=D6F237DE-A6EE-4DED-8BB6-139536162EB8&amp;amp;displaylang=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Symbols&lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=87336CEE-864D-440E-840F-25C53D5DEEE4%26displaylang=en" target="_blank"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=87336CEE-864D-440E-840F-25C53D5DEEE4&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=240353" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category></item><item><title>Preliminary Managed DirectX Documentation?</title><link>http://blogs.msdn.com/mitchw/archive/2004/07/30/202487.aspx</link><pubDate>Fri, 30 Jul 2004 19:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:202487</guid><dc:creator>mitchw</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/202487.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=202487</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=202487</wfw:comment><description>&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;If you've downloaded the latest DirectX9 SDK, you may have noticed that all of the Managed docs are tagged with the &amp;#8220;This documentation is preliminary and subject to change.&amp;#8220; line.&amp;nbsp; Here's the scoop from Mark, one of the Programming Writers:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt;&lt;FONT color=#000080&gt;The Summer 2004 SDK Update provides complete, release-quality reference documentation for the following Managed DirectX namespaces:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;FONT color=#000080&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: black; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT color=#000080&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;Microsoft.DirectX.AudioVideoPlayback&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: black; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT color=#000080&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;Microsoft.DirectX.Diagnostics&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: black; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT color=#000080&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;Microsoft.DirectX.Direct3D&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: black; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT color=#000080&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;Microsoft.DirectX.DirectSound&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: black; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT color=#000080&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;Microsoft.DirectX.PrivateImplementationDetails&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: black; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT color=#000080&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;Microsoft.DirectX&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;FONT color=#000080&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt;&lt;FONT color=#000080&gt;Developers can use documentation for the above namespaces in confidence, despite the &amp;#8220;preliminary&amp;#8221; disclaimer on the pages. The conceptual material provided in the &amp;#8220;Introducing DirectX 9.0&amp;#8221; section is also accurate, although the section is not considered complete.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;FONT color=#000080&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt;&lt;FONT color=#000080&gt;However, documentation for the remaining namespaces does not meet Microsoft&amp;#8217;s release quality standards:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;FONT color=#000080&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: black; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT color=#000080&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;Microsoft.DirectX.DirectDraw (deprecated)&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: black; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT color=#000080&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;Microsoft.DirectX.DirectInput&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: black; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT color=#000080&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;Microsoft.DirectX.DirectPlay (deprecated)&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; COLOR: black; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;FONT color=#000080&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;Microsoft.DirectX.Security&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Courier; mso-bidi-font-family: Arial"&gt;&lt;o:p&gt;&lt;FONT color=#000080&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Courier; mso-bidi-font-family: 'Courier New'"&gt;&lt;FONT color=#000080&gt;Unfortunately the documentation build system did not allow the &amp;#8220;preliminary&amp;#8221; disclaimer to be displayed selectively on only some pages, so the decision was made to keep the disclaimer on all the pages.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000080&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=202487" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category></item><item><title>Heading to Meltdown</title><link>http://blogs.msdn.com/mitchw/archive/2004/07/26/197768.aspx</link><pubDate>Tue, 27 Jul 2004 01:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:197768</guid><dc:creator>mitchw</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/197768.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=197768</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=197768</wfw:comment><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I'm heading off to &lt;/FONT&gt;&lt;A href="https://secure.lenos.com/lenos/microsoft/meltdown2004/"&gt;&lt;FONT face=Verdana size=2&gt;Meltdown&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt;.&amp;nbsp; Well, not really until tomorrow morning, seeing as it is just in downtown Seattle.&amp;nbsp; Should be cool, hoping to pick up some new ideas to try out. &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/tmiller"&gt;&lt;FONT face=Verdana size=2&gt;Tom's&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; giving a talk titled &lt;STRONG&gt;Using Managed Code in Your Game&lt;/STRONG&gt;, and there are quite a few sessions on Effects, Shaders and the like, so lots of good stuff for the Managed DirectX Developer.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=197768" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category></item><item><title>Terrarium 1.2 Released!</title><link>http://blogs.msdn.com/mitchw/archive/2004/07/09/178659.aspx</link><pubDate>Fri, 09 Jul 2004 19:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:178659</guid><dc:creator>mitchw</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/178659.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=178659</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=178659</wfw:comment><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;FONT face=Verdana&gt;The &lt;A title=Terrarium href="http://www.windowsforms.net/terrarium" target=_blank&gt;Terrarium&lt;/A&gt; 1.2 client has been released to the public!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here are various links:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;FONT face=Verdana&gt;Public Server:&amp;nbsp;&lt;/FONT&gt;&lt;A href="http://www.terrariumgame.net/terrarium"&gt;&lt;FONT face=Verdana&gt;http://www.terrariumgame.net/terrarium&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;FONT face=Verdana&gt;Post with details: &lt;/FONT&gt;&lt;A href="http://www.windowsforms.net/Forums/ShowPost.aspx?tabIndex=1&amp;amp;tabId=41&amp;amp;PostID=16874"&gt;&lt;FONT face=Verdana&gt;http://www.windowsforms.net/Forums/ShowPost.aspx?tabIndex=1&amp;amp;tabId=41&amp;amp;PostID=16874&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;A partial list of What's New:&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;Organism SDK Installed with Client (Includes docs, tutorials, reference and skeletons) &lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;VS.NET 2003 Project Templates &lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;Resizable Windows&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;Full screen support (two modes, "maximize" and "Alt-Enter") &lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;Better screen saver support (actually takes up the full screen. Check out the &amp;lt;screenSaverSpanMonitors/&amp;gt; setting!) &lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;New User Interface, including multiple themes &lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;Style editor - create your own themes &lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;Updated world graphics (Additional backgrounds will be made available for download) &lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;Fixed the intentional exception throwing exploit &lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;Fixed the deserialization problem &lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;Lots of other bug fixes &lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;A simple screen saver kicks in in the case that you are running &lt;A title=Terrarium href="http://www.windowsforms.net/terrarium" target=_blank&gt;Terrarium&lt;/A&gt; in the background when the screen saver gets activated. &lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;I'm still working on finalizing the source code and the server for release.&amp;nbsp; This should happen very soon.&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;Have fun!&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=178659" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category></item><item><title>Whidbey Intellisense Feature</title><link>http://blogs.msdn.com/mitchw/archive/2004/06/12/154263.aspx</link><pubDate>Sat, 12 Jun 2004 17:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:154263</guid><dc:creator>mitchw</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/154263.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=154263</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=154263</wfw:comment><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Just stumbled upon one of those little features that are so nice and once you get used to it, it's hard giving it up.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;When attempting to assign a value to an enum property, as soon as you type &amp;#8220; = &amp;#8220;, it brings up the intellisense window to the specific enum type.&amp;nbsp;No hunting around or trying to remember the name of the enum. Pretty cool, especially when working with Managed DirectX, which has quite a few different flags, etc.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=154263" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category><category domain="http://blogs.msdn.com/mitchw/archive/tags/General/default.aspx">General</category></item><item><title>Long Time...</title><link>http://blogs.msdn.com/mitchw/archive/2004/06/11/153747.aspx</link><pubDate>Fri, 11 Jun 2004 18:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:153747</guid><dc:creator>mitchw</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/153747.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=153747</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=153747</wfw:comment><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Long time between updates! I felt I couldn't let another month go by without a post, so here I am.&amp;nbsp; Yes still working on getting &lt;A title=Terrarium href="http://www.windowsforms.net/terrarium" target=_blank&gt;Terrarium&lt;/A&gt; 1.2 ready to release (it is real close, honest!) and working on the &amp;#8220;next big thing&amp;#8221;. On that last note, I leave you with this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.mitchw.net/blogs.msdn.com/images/boris_poster.jpg"&gt;&lt;IMG src="http://www.mitchw.net/blogs.msdn.com/images/boris_poster_thumb.jpg" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=153747" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category></item><item><title>New Terrarium UI</title><link>http://blogs.msdn.com/mitchw/archive/2004/03/01/81913.aspx</link><pubDate>Mon, 01 Mar 2004 08:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:81913</guid><dc:creator>mitchw</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/81913.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=81913</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=81913</wfw:comment><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;So I've spent the evening working on the UI for the 1.2 version of &lt;A title=Terrarium href="http://www.windowsforms.net/terrarium" target=_blank&gt;Terrarium&lt;/A&gt;. (This is the version built on .NET 1.1 and will sync with the release of the source code).&amp;nbsp; At first I was going the Photoshop route for the buttons, etc. but realized that I could do much of what I was doing just using GDI+.&amp;nbsp; So here is a screen shot of tonight's progress:&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=center&gt;&lt;FONT face=Verdana size=2&gt;&lt;A href="http://www.mitchw.net/blogs.msdn.com/images/ui_prototype.jpg"&gt;&lt;IMG src="http://www.mitchw.net/blogs.msdn.com/images/ui_prototype_thumb.jpg" border=0&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Obviously the UI is just laid out in &amp;#8220;skeleton&amp;#8221; mode right now, with none of the &lt;A title=Terrarium href="http://www.windowsforms.net/terrarium" target=_blank&gt;Terrarium&lt;/A&gt; functionality hooked up to it.&amp;nbsp; I also need to create some icons for a few of the items.&amp;nbsp; It supports a&amp;nbsp;very basic &amp;#8220;skinning&amp;#8221; functionality as well.&amp;nbsp; Via an xml file, you can provide all of the colors for the gradients, buttons, etc.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana color=#a9a9a9 size=1&gt;[Edit: I've updated it with a more recent shot....]&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=81913" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category></item><item><title>Terrarium Prototyping</title><link>http://blogs.msdn.com/mitchw/archive/2004/02/15/73255.aspx</link><pubDate>Sun, 15 Feb 2004 09:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:73255</guid><dc:creator>mitchw</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/73255.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=73255</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=73255</wfw:comment><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;So I started working on prototyping some terrain rendering for the next &lt;a title="Terrarium" href="http://www.windowsforms.net/terrarium" target="_blank"&gt;Terrarium&lt;/a&gt;.&amp;nbsp; It really is amazing how much faster one can work in Managed DirectX (Direct3D in this case) vs. the C++ API.&amp;nbsp; While the screenshot below is not terribly impressive, it only took me about 2 hours to get the base framework up and running.&amp;nbsp; This would have taken much longer using C++.&amp;nbsp; I'll try to post some regular updates as I try various techniques for the terrain.&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://www.mitchw.net/tx/prototype.jpg"&gt;&lt;IMG src="http://www.mitchw.net/tx/prototype_small.jpg" border=0&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=73255" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category></item><item><title>Mythica Canceled</title><link>http://blogs.msdn.com/mitchw/archive/2004/02/12/72275.aspx</link><pubDate>Fri, 13 Feb 2004 04:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:72275</guid><dc:creator>mitchw</dc:creator><slash:comments>13</slash:comments><comments>http://blogs.msdn.com/mitchw/comments/72275.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mitchw/commentrss.aspx?PostID=72275</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mitchw/rsscomments.aspx?PostID=72275</wfw:comment><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;It was announced today that &lt;A href="http://www.mythica.com/"&gt;Mythica&lt;/A&gt;, a MMORPG with touches of a RTS in it, has been canceled.&amp;nbsp; Here is the announcement found on the home page&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;FONT color=#006400&gt;&amp;#8220;&lt;EM&gt;Our goal with&amp;nbsp;&amp;#8216;Mythica&amp;#8217; was to create a truly innovative massively multiplayer online role playing game.&amp;nbsp; While the game looked ready to deliver advancements to the genre, after careful evaluation of the&amp;nbsp;MMORPG landscape, MGS has decided to stream-line its portfolio, making fewer investments in this genre. After a rigorous review of current and future projects, the decision was made that Mythica would not be one of the projects we would continue to invest in.&amp;#8221;&lt;/EM&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;That's really a shame because it looked like it was going to be quite entertaining.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Here's a &lt;/FONT&gt;&lt;A href="http://download.microsoft.com/download/1/9/0/1905e15d-a52a-4d7a-899b-1684f654e2d3/mythica_e3_midgard.wmv"&gt;&lt;FONT face=Verdana size=2&gt;link&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; to a video shown at last year's E3&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=72275" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mitchw/archive/tags/Game+Programming/default.aspx">Game Programming</category></item></channel></rss>