<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Channel 9 Forums - Coffeehouse - Interview with XNA Team</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Forums/rss"></atom:link>
	<image>
		<url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
		<title>Channel 9 Forums - Coffeehouse - Interview with XNA Team</title>
		<link>http://channel9.msdn.com/Forums</link>
	</image>
	<description>Channel 9 keeps you up to date with the latest news and behind the scenes info from Microsoft that developers love to keep up with. From LINQ to SilverLight – Watch videos and hear about all the cool technologies coming and the people behind them.</description>
	<link>http://channel9.msdn.com/Forums</link>
	<language>en</language>
	<pubDate>Thu, 20 Jun 2013 11:29:57 GMT</pubDate>
	<lastBuildDate>Thu, 20 Jun 2013 11:29:57 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<c9:totalResults>38</c9:totalResults>
	<c9:pageCount>-38</c9:pageCount>
	<c9:pageSize>-1</c9:pageSize>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>I am interviewing a few of the members of the XNA team next week and want to ask them your questions.&nbsp; What would you like to ask them?</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/574452#574452</link>
		<pubDate>Tue, 14 Sep 2010 22:44:37 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/574452#574452</guid>
		<dc:creator>Tina</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/tina10/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>How easy is it to tap into GPU accellerated physics? DX11 can do GPGPU, so, any plan that doing GPGPU physics is easier on XNA? Sorry for the dumb question, I am not familiar with XNA developmet.</p>
<p>&nbsp;</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/fc2407f51908424680499df300f2f341#fc2407f51908424680499df300f2f341</link>
		<pubDate>Wed, 15 Sep 2010 01:08:00 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/fc2407f51908424680499df300f2f341#fc2407f51908424680499df300f2f341</guid>
		<dc:creator>magicalclick</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/magicalclick/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>Give us some history of XNA, back to the MDX roots. I remember reading how MDX was started as Tom Miller's personal side project before the execs took notice (since DirectX-for-VB6 was outdated). If this is correct, can you flesh out the details?</p>
<p>&nbsp;</p>
<p>Also: XNA supplanted MDX, but it leaves developers without an officially sanctioned
<em>simple and lightweight</em> API for adding multimedia functionality to Managed non-game applications. Case in point: I was porting some C&#43;&#43; code to C# which included some code to control a robot with a gamepad, I had to use the certifiably ancient WinMM
 Joy* functions because XNA was inappropriate and SDL.NET/Tao had an unworkable build process. (Please, no comments about MSRS).</p>
<p>&nbsp;</p>
<p>Also, will the whole DirectInput/XInput thing be sorted out soon?</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/d3aa10b30d6b4475bd959df300f2f3b1#d3aa10b30d6b4475bd959df300f2f3b1</link>
		<pubDate>Wed, 15 Sep 2010 01:29:09 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/d3aa10b30d6b4475bd959df300f2f3b1#d3aa10b30d6b4475bd959df300f2f3b1</guid>
		<dc:creator>W3bbo</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/W3bbo/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>What kind of work is being done to improve the GC? The current GC is not ideal for use in something like games where a GC cycle can cause an&nbsp;interrupt long enough to cause noticeable frame dropping.&nbsp;If this wasn't a problem, then people would not come up
 with some <a href="http://forums.xna.com/forums/t/56645.aspx">horrific hacks</a> in order to do simple things like write integers to the screen. Notice in that &quot;solution&quot;, they get access to the private string that is embedded in StringBuilder in order to
 have a mutable string that doesn't create garbage when changed. And how would you write floating point numbers to the screen without creating garbage?</p>
<p>&nbsp;</p>
<p>Specifically, I think an incremental GC would work better. There might be slightly more overhead, but that is a good compromise if things run smooth otherwise.</p>
<p>&nbsp;</p>
<p>It is nice to use .Net for something like games, but it is a drag that we need to use Reflector to figure out which classes and methods are going to create garbage. It kind of takes away from what makes .Net great if you have to program like that.</p>
<p>&nbsp;</p>
<p>Does the XNA team have any say in the GC development? I believe XNA is a good opportunity to showcase improvements in the GC in this regard. These kinds of improvements can help in non-game development as well.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/2c1bc6ead8654bd6affa9df300f2f402#2c1bc6ead8654bd6affa9df300f2f402</link>
		<pubDate>Wed, 15 Sep 2010 03:55:36 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/2c1bc6ead8654bd6affa9df300f2f402#2c1bc6ead8654bd6affa9df300f2f402</guid>
		<dc:creator>BitFlipper</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/BitFlipper/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">W3bbo said:</div><div class="quoteText">
<p>Give us some history of XNA, back to the MDX roots. I remember reading how MDX was started as Tom Miller's personal side project before the execs took notice (since DirectX-for-VB6 was outdated). If this is correct, can you flesh out the details?</p>
<p>&nbsp;</p>
<p>Also: XNA supplanted MDX, but it leaves developers without an officially sanctioned
<em>simple and lightweight</em> API for adding multimedia functionality to Managed non-game applications. Case in point: I was porting some C&#43;&#43; code to C# which included some code to control a robot with a gamepad, I had to use the certifiably ancient WinMM
 Joy* functions because XNA was inappropriate and SDL.NET/Tao had an unworkable build process. (Please, no comments about MSRS).</p>
<p>&nbsp;</p>
<p>Also, will the whole DirectInput/XInput thing be sorted out soon?</p>
</div></blockquote>
<p>Why couldn't you use XInput?</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/36242176aaba45aaa9749df300f2f46e#36242176aaba45aaa9749df300f2f46e</link>
		<pubDate>Wed, 15 Sep 2010 04:35:09 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/36242176aaba45aaa9749df300f2f46e#36242176aaba45aaa9749df300f2f46e</guid>
		<dc:creator>Minh</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Minh/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">BitFlipper said:</div><div class="quoteText">
<p>What kind of work is being done to improve the GC? The current GC is not ideal for use in something like games where a GC cycle can cause an&nbsp;interrupt long enough to cause noticeable frame dropping.&nbsp;If this wasn't a problem, then people would not come up
 with some <a href="http://forums.xna.com/forums/t/56645.aspx">horrific hacks</a> in order to do simple things like write integers to the screen. Notice in that &quot;solution&quot;, they get access to the private string that is embedded in StringBuilder in order to
 have a mutable string that doesn't create garbage when changed. And how would you write floating point numbers to the screen without creating garbage?</p>
<p>&nbsp;</p>
<p>Specifically, I think an incremental GC would work better. There might be slightly more overhead, but that is a good compromise if things run smooth otherwise.</p>
<p>&nbsp;</p>
<p>It is nice to use .Net for something like games, but it is a drag that we need to use Reflector to figure out which classes and methods are going to create garbage. It kind of takes away from what makes .Net great if you have to program like that.</p>
<p>&nbsp;</p>
<p>Does the XNA team have any say in the GC development? I believe XNA is a good opportunity to showcase improvements in the GC in this regard. These kinds of improvements can help in non-game development as well.</p>
</div></blockquote>
<p>You could mitigate the GC by pre-allocating all your objects... not for the lifetime of the game... but whatever makes sense. Like a level</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/324c58c0881542329cfd9df300f2f4e4#324c58c0881542329cfd9df300f2f4e4</link>
		<pubDate>Wed, 15 Sep 2010 04:37:09 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/324c58c0881542329cfd9df300f2f4e4#324c58c0881542329cfd9df300f2f4e4</guid>
		<dc:creator>Minh</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Minh/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>Related to BitFlipper's question, of course. How is managed code performance maximized in the XNA Framework?<br /><br />C</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/cbf75b284e3b4bc098f09df300f2f513#cbf75b284e3b4bc098f09df300f2f513</link>
		<pubDate>Wed, 15 Sep 2010 04:38:28 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/cbf75b284e3b4bc098f09df300f2f513#cbf75b284e3b4bc098f09df300f2f513</guid>
		<dc:creator>Charles</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Charles/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">Minh said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">BitFlipper said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>You could mitigate the GC by pre-allocating all your objects... not for the lifetime of the game... but whatever makes sense. Like a level</p>
</div></blockquote>
<p>Yes you would typically do that, but how do you do simple things like:</p>
<p>&nbsp;</p>
<p><pre class="brush: text">float fps = 123.4f;
string frameRateText = &quot;FPS: &quot; &#43; fps.ToString(&quot;F2&quot;);</pre></p>
<p>&nbsp;</p>
<p>...without creating garbage? You can try to use StringBuilder but you are limited (how do you format floats, for instance?), and as soon as you call StringBuilder.ToString(), you are back to square one. Also, many of the built-in classes create garbage that
 you&nbsp;might not&nbsp;even know about. For instance, using enums as the key in a dictionary creates lots of garbage if you access it every frame. Or assigning delegates or events, or calling anonymous methods, etc etc.</p>
<p>&nbsp;</p>
<p>Basically, right now we have to pick through the framework and figure out what is going to create garbage and avoid using it. I would say it is almost impossible to create a complex game that doesn't create garbage during each frame. Ideally we should have
 an incremental GC that doesn't trigger long GC cycles so that we don't even need to worry about what creates garbage down to this fine level. If the game creates a small amount of garbage every frame, it should not matter.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/3b4027defb3c448ab0e79df300f2f548#3b4027defb3c448ab0e79df300f2f548</link>
		<pubDate>Wed, 15 Sep 2010 05:43:57 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/3b4027defb3c448ab0e79df300f2f548#3b4027defb3c448ab0e79df300f2f548</guid>
		<dc:creator>BitFlipper</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/BitFlipper/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">BitFlipper said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">Minh said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>Yes you would typically do that, but how do you do simple things like:</p>
<p>&nbsp;</p>
<p></p>
<pre class="brush: text">float fps = 123.4f;
string frameRateText = &quot;FPS: &quot; &#43; fps.ToString(&quot;F2&quot;);</pre>
<p></p>
<p>&nbsp;</p>
<p>...without creating garbage? You can try to use StringBuilder but you are limited (how do you format floats, for instance?), and as soon as you call StringBuilder.ToString(), you are back to square one. Also, many of the built-in classes create garbage that
 you&nbsp;might not&nbsp;even know about. For instance, using enums as the key in a dictionary creates lots of garbage if you access it every frame. Or assigning delegates or events, or calling anonymous methods, etc etc.</p>
<p>&nbsp;</p>
<p>Basically, right now we have to pick through the framework and figure out what is going to create garbage and avoid using it. I would say it is almost impossible to create a complex game that doesn't create garbage during each frame. Ideally we should have
 an incremental GC that doesn't trigger long GC cycles so that we don't even need to worry about what creates garbage down to this fine level. If the game creates a small amount of garbage every frame, it should not matter.</p>
</div></blockquote>
<p>Can you be a bit specific? Which one is the garbage? float fps? or &#43; fps.ToString(&quot;F2&quot;)?</p>
<p>&nbsp;</p>
<p>fps is typically from a global variable anyway.</p>
<p>and fps.ToString(&quot;F2&quot;) is released right after the line ends.</p>
<p>if your float fps is in a method, it is released right away also.</p>
<p>&nbsp;</p>
<p>And none of them has anything to do with garbage. Isn't garbage only exists when you have class object? like&nbsp;car carObj = new car();</p>
<p>Anyway, you can manually release obj too, just like C&#43;&#43;. I am not expert on this, but, I remember they just say you shouldn't do it too often.</p>
<p>&nbsp;</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/cf36d047631a4d5a8df09df300f2f5c0#cf36d047631a4d5a8df09df300f2f5c0</link>
		<pubDate>Wed, 15 Sep 2010 07:05:14 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/cf36d047631a4d5a8df09df300f2f5c0#cf36d047631a4d5a8df09df300f2f5c0</guid>
		<dc:creator>magicalclick</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/magicalclick/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">magicalclick said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">BitFlipper said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>Can you be a bit specific? Which one is the garbage? float fps? or &#43; fps.ToString(&quot;F2&quot;)?</p>
<p>&nbsp;</p>
<p>fps is typically from a global variable anyway.</p>
<p>and fps.ToString(&quot;F2&quot;) is released right after the line ends.</p>
<p>if your float fps is in a method, it is released right away also.</p>
<p>&nbsp;</p>
<p>And none of them has anything to do with garbage. Isn't garbage only exists when you have class object? like&nbsp;car carObj = new car();</p>
<p>Anyway, you can manually release obj too, just like C&#43;&#43;. I am not expert on this, but, I remember they just say you shouldn't do it too often.</p>
<p>&nbsp;</p>
</div></blockquote>
<p>The float is a value type so it is not a problem in this case. But calling float.ToString() allocates a string, which is a ref object. You say fps.ToString() is released right after the line ends. Released to where? This&nbsp;has everything to do with garbage.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/f75ebe6a571b4a25938b9df300f2f5f5#f75ebe6a571b4a25938b9df300f2f5f5</link>
		<pubDate>Wed, 15 Sep 2010 07:24:25 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/f75ebe6a571b4a25938b9df300f2f5f5#f75ebe6a571b4a25938b9df300f2f5f5</guid>
		<dc:creator>BitFlipper</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/BitFlipper/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>- How should we make a choice between&nbsp;creating a native DirectX 11 application or a managed XNA application?</p>
<p>- Will future versions of XNA support VB.NET? (What's stopping them from supporting it?)</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/98ed60f5b9154d56b4579df300f2f660#98ed60f5b9154d56b4579df300f2f660</link>
		<pubDate>Wed, 15 Sep 2010 08:24:29 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/98ed60f5b9154d56b4579df300f2f660#98ed60f5b9154d56b4579df300f2f660</guid>
		<dc:creator>ZippyV</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/ZippyV/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">Minh said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">W3bbo said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>Why couldn't you use XInput?</p>
</div></blockquote>
<p>XInput is limited to only the Xbox 360 controllers, Logitech joypads aren't applicable, so you need to use DirectInput or WinMM. Contrariwise XInput does not support Logitech (or any other) controllers. People have successfully written DirectInput drivers
 for the Xbox 360 controller, so I feel it's just Microsoft being awkward.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/2d0f268a724e45e3b1609df300f2f6d2#2d0f268a724e45e3b1609df300f2f6d2</link>
		<pubDate>Wed, 15 Sep 2010 09:29:05 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/2d0f268a724e45e3b1609df300f2f6d2#2d0f268a724e45e3b1609df300f2f6d2</guid>
		<dc:creator>W3bbo</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/W3bbo/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">BitFlipper said:</div><div class="quoteText">
<p>What kind of work is being done to improve the GC? The current GC is not ideal for use in something like games where a GC cycle can cause an&nbsp;interrupt long enough to cause noticeable frame dropping.&nbsp;If this wasn't a problem, then people would not come up
 with some <a href="http://forums.xna.com/forums/t/56645.aspx">horrific hacks</a> in order to do simple things like write integers to the screen. Notice in that &quot;solution&quot;, they get access to the private string that is embedded in StringBuilder in order to
 have a mutable string that doesn't create garbage when changed. And how would you write floating point numbers to the screen without creating garbage?</p>
<p>&nbsp;</p>
<p>Specifically, I think an incremental GC would work better. There might be slightly more overhead, but that is a good compromise if things run smooth otherwise.</p>
<p>&nbsp;</p>
<p>It is nice to use .Net for something like games, but it is a drag that we need to use Reflector to figure out which classes and methods are going to create garbage. It kind of takes away from what makes .Net great if you have to program like that.</p>
<p>&nbsp;</p>
<p>Does the XNA team have any say in the GC development? I believe XNA is a good opportunity to showcase improvements in the GC in this regard. These kinds of improvements can help in non-game development as well.</p>
</div></blockquote>
<p>Bitflipper is right, the Compact Framework blows. The Xbox 360 has got 512Mb RAM so why the CF? Even WP7 has 256Mb. Surely that's enough to justify something more sophisticated?
</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/f1464e4a48f345318c1a9df300f2f73f#f1464e4a48f345318c1a9df300f2f73f</link>
		<pubDate>Wed, 15 Sep 2010 09:44:29 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/f1464e4a48f345318c1a9df300f2f73f#f1464e4a48f345318c1a9df300f2f73f</guid>
		<dc:creator>rhm</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rhm/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">rhm said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">BitFlipper said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>Bitflipper is right, the Compact Framework blows. The Xbox 360 has got 512Mb RAM so why the CF? Even WP7 has 256Mb. Surely that's enough to justify something more sophisticated?
</p>
</div></blockquote>
<p>Does the team think it would be possible at some point to introduce XAML and / or event driven programming without compromising the platform?</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/d06ce2677cc64142a26d9df300f2f7a3#d06ce2677cc64142a26d9df300f2f7a3</link>
		<pubDate>Wed, 15 Sep 2010 10:01:56 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/d06ce2677cc64142a26d9df300f2f7a3#d06ce2677cc64142a26d9df300f2f7a3</guid>
		<dc:creator>Ian Walker</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Ian2/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>IIRC there was a proposal to enhance the integretion of WPF and XNA, far beyond D3DImage, and its dropped in the roadmap of WPF 4 release, will it rise again ??</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/fde372564bae44eba1599df300f2f7cf#fde372564bae44eba1599df300f2f7cf</link>
		<pubDate>Wed, 15 Sep 2010 12:08:11 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/fde372564bae44eba1599df300f2f7cf#fde372564bae44eba1599df300f2f7cf</guid>
		<dc:creator>felix9</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/felix9/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>This is undoubtably going to be a 'no announcement yet' type response, but it has to be asked: Kinect support?</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/5d6b7c2329d44c1ea8219df300f2f83a#5d6b7c2329d44c1ea8219df300f2f83a</link>
		<pubDate>Wed, 15 Sep 2010 12:19:37 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/5d6b7c2329d44c1ea8219df300f2f83a#5d6b7c2329d44c1ea8219df300f2f83a</guid>
		<dc:creator>Bas</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Bas/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">BitFlipper said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">Minh said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>Yes you would typically do that, but how do you do simple things like:</p>
<p>&nbsp;</p>
<p></p>
<pre class="brush: text">float fps = 123.4f;
string frameRateText = &quot;FPS: &quot; &#43; fps.ToString(&quot;F2&quot;);</pre>
<p></p>
<p>&nbsp;</p>
<p>...without creating garbage? You can try to use StringBuilder but you are limited (how do you format floats, for instance?), and as soon as you call StringBuilder.ToString(), you are back to square one. Also, many of the built-in classes create garbage that
 you&nbsp;might not&nbsp;even know about. For instance, using enums as the key in a dictionary creates lots of garbage if you access it every frame. Or assigning delegates or events, or calling anonymous methods, etc etc.</p>
<p>&nbsp;</p>
<p>Basically, right now we have to pick through the framework and figure out what is going to create garbage and avoid using it. I would say it is almost impossible to create a complex game that doesn't create garbage during each frame. Ideally we should have
 an incremental GC that doesn't trigger long GC cycles so that we don't even need to worry about what creates garbage down to this fine level. If the game creates a small amount of garbage every frame, it should not matter.</p>
</div></blockquote>
<p>I would think this is an overkill / pre-mature optimization. They say the Xbox GC at 1MB allocations, so if you have a small string, say 50 chars, then your periodic GC runs at 1,000,000 bytes / (50 chars * 2 unicode bytes / char) = 10,000 strings / 60 strings
 / sec / 60 sec / min / 60 min / hr = 2.78 hrs.</p>
<p>&nbsp;</p>
<p>So, if all your game does is the fps string, then GC will run once every 3 hrs... Of course, that won't be all it does, but you get the idea.</p>
<p>&nbsp;</p>
<p>Optimizations you could do is only update the fps once every second, instead of 60 times a sec... Or there's a SpriteBatch.DrawInt32 user routine out there that doesn't use strings... Or do a pre-compute string table...</p>
<p>&nbsp;</p>
<p>The idea is to mitigate the effect of GC, not elimitate it. If you can keep GC to a manual process you do that can't be seen by the player, then that's a huge win.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/3539694955d247b1afee9df300f2f881#3539694955d247b1afee9df300f2f881</link>
		<pubDate>Wed, 15 Sep 2010 13:21:49 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/3539694955d247b1afee9df300f2f881#3539694955d247b1afee9df300f2f881</guid>
		<dc:creator>Minh</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Minh/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">W3bbo said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">Minh said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>XInput is limited to only the Xbox 360 controllers, Logitech joypads aren't applicable, so you need to use DirectInput or WinMM. Contrariwise XInput does not support Logitech (or any other) controllers. People have successfully written DirectInput drivers
 for the Xbox 360 controller, so I feel it's just Microsoft being awkward.</p>
</div></blockquote>
<p>So you didn't use it based on philosophical grounds and not technical ones?</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/88e845474bcf447889fe9df300f2f8eb#88e845474bcf447889fe9df300f2f8eb</link>
		<pubDate>Wed, 15 Sep 2010 13:22:50 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/88e845474bcf447889fe9df300f2f8eb#88e845474bcf447889fe9df300f2f8eb</guid>
		<dc:creator>Minh</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Minh/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">Minh said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">W3bbo said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>So you didn't use it based on philosophical grounds and not technical ones?</p>
</div></blockquote>
<p>Eh?</p>
<p>&nbsp;</p>
<p>I didn't use XInput because the gamepad I had to work with was a Logitech one. Which means I have to use either DirectInput or WinMM, and WinMM's API was the simplier and quickest to integrate into my code. There's no politics at all.</p>
<p>&nbsp;</p>
<p>If you're referring to my last sentance, that's unrelated. I was saying that people have successfully gotten the Xbox controller to work with DirectInput by providing their own drivers.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/55d4ca3cd4604bf0b29b9df300f2f91c#55d4ca3cd4604bf0b29b9df300f2f91c</link>
		<pubDate>Wed, 15 Sep 2010 13:34:45 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/55d4ca3cd4604bf0b29b9df300f2f91c#55d4ca3cd4604bf0b29b9df300f2f91c</guid>
		<dc:creator>W3bbo</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/W3bbo/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">W3bbo said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">Minh said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>Eh?</p>
<p>&nbsp;</p>
<p>I didn't use XInput because the gamepad I had to work with was a Logitech one. Which means I have to use either DirectInput or WinMM, and WinMM's API was the simplier and quickest to integrate into my code. There's no politics at all.</p>
<p>&nbsp;</p>
<p>If you're referring to my last sentance, that's unrelated. I was saying that people have successfully gotten the Xbox controller to work with DirectInput by providing their own drivers.</p>
</div></blockquote>
<p>Oh OK. I misunderstood. If your logitec controller is way more sophisicated than the Xbox controller, then you have to avoid XInput.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/12b5ece433f143d6991c9df300f2f98c#12b5ece433f143d6991c9df300f2f98c</link>
		<pubDate>Wed, 15 Sep 2010 13:51:21 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/12b5ece433f143d6991c9df300f2f98c#12b5ece433f143d6991c9df300f2f98c</guid>
		<dc:creator>Minh</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Minh/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">Minh said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">BitFlipper said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>I would think this is an overkill / pre-mature optimization. They say the Xbox GC at 1MB allocations, so if you have a small string, say 50 chars, then your periodic GC runs at 1,000,000 bytes / (50 chars * 2 unicode bytes / char) = 10,000 strings / 60 strings
 / sec / 60 sec / min / 60 min / hr = 2.78 hrs.</p>
<p>&nbsp;</p>
<p>So, if all your game does is the fps string, then GC will run once every 3 hrs... Of course, that won't be all it does, but you get the idea.</p>
<p>&nbsp;</p>
<p>Optimizations you could do is only update the fps once every second, instead of 60 times a sec... Or there's a SpriteBatch.DrawInt32 user routine out there that doesn't use strings... Or do a pre-compute string table...</p>
<p>&nbsp;</p>
<p>The idea is to mitigate the effect of GC, not elimitate it. If you can keep GC to a manual process you do that can't be seen by the player, then that's a huge win.</p>
</div></blockquote>
<p>You are correct&nbsp;that if the only thing my game did was print an fps string to the screen, that would probably not be an issue. Throw in scene management, AI, collision detection, physics, weapons, enemies, sound, particle effects, a HUD, etc etc and things
 get a bit more complex. A game is very dynamic as there is a lot of interaction between objects and things come and go continuously (think of bullets, etc). Obviously you re-use objects as much as possible, but that is not the only source of allocations.&nbsp;It
<em>is</em> possible to <em>delay</em> the inevitable GC, but that is all you can do - delay it.</p>
<p>&nbsp;</p>
<p>Right now I am working on my collision detection algorithms. I have a relatively simple scene that I use to test it with. I am getting around 2000 - 3500 fps with this simple scene (on the PC). Looking at my code, I can't see an obvious place where memory
 is being allocated, yet the memory goes up roughly&nbsp;~200KB every second. Granted, at those&nbsp;frame rates, even a small allocation would quickly add up (and it is not the fps counter - I checked that).&nbsp;This means I need to go and dig into the code and see what
 is going on. Now if I have a more complex scene, the fps would obviously drop, but at the same time the complexity would go up so I imagine the allocations per sec would remain more or less the same. And as the object graph gets more complex, a GC will become
 slower. I have not seen issues simply because currently my object graph is too simple - the GC can very quickly do a collect. But other people are running into this problem - just go to forums.xna.com and search for
<strike>GC</strike>. <a href="http://forums.xna.com/search/SearchResults.aspx?q=garbage">
Edit: &quot;garbage&quot; is a better term to search for here</a>.</p>
<p>&nbsp;</p>
<p>My point is - we should not <em>have</em> to worry about this (within reason). Why do we need to worry about&nbsp;the internal memory allocation details of the .Net classes&nbsp;when we use a high-level language?</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/a2f6b7c74dea47eab50a9df300f2f9d0#a2f6b7c74dea47eab50a9df300f2f9d0</link>
		<pubDate>Wed, 15 Sep 2010 14:43:44 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/a2f6b7c74dea47eab50a9df300f2f9d0#a2f6b7c74dea47eab50a9df300f2f9d0</guid>
		<dc:creator>BitFlipper</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/BitFlipper/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">BitFlipper said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">Minh said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>You are correct&nbsp;that if the only thing my game did was print an fps string to the screen, that would probably not be an issue. Throw in scene management, AI, collision detection, physics, weapons, enemies, sound, particle effects, a HUD, etc etc and things
 get a bit more complex. A game is very dynamic as there is a lot of interaction between objects and things come and go continuously (think of bullets, etc). Obviously you re-use objects as much as possible, but that is not the only source of allocations.&nbsp;It
<em>is</em> possible to <em>delay</em> the inevitable GC, but that is all you can do - delay it.</p>
<p>&nbsp;</p>
<p>Right now I am working on my collision detection algorithms. I have a relatively simple scene that I use to test it with. I am getting around 2000 - 3500 fps with this simple scene (on the PC). Looking at my code, I can't see an obvious place where memory
 is being allocated, yet the memory goes up roughly&nbsp;~200KB every second. Granted, at those&nbsp;frame rates, even a small allocation would quickly add up (and it is not the fps counter - I checked that).&nbsp;This means I need to go and dig into the code and see what
 is going on. Now if I have a more complex scene, the fps would obviously drop, but at the same time the complexity would go up so I imagine the allocations per sec would remain more or less the same. And as the object graph gets more complex, a GC will become
 slower. I have not seen issues simply because currently my object graph is too simple - the GC can very quickly do a collect. But other people are running into this problem - just go to forums.xna.com and search for
<strike>GC</strike>. <a href="http://forums.xna.com/search/SearchResults.aspx?q=garbage">
Edit: &quot;garbage&quot; is a better term to search for here</a>.</p>
<p>&nbsp;</p>
<p>My point is - we should not <em>have</em> to worry about this (within reason). Why do we need to worry about&nbsp;the internal memory allocation details of the .Net classes&nbsp;when we use a high-level language?</p>
</div></blockquote>
<p>Yeh, it's stupid to say use a managed language because it saves you from having to concern yourself with memory management, and then tell programmers that actually they do have to tear their hair out worry about every single allocation because if they don't
 the GC is going to come and freeze up their gameloop while it examines THE WHOLE HEAP.
</p>
<p>&nbsp;</p>
<p>It's like you're actually worse off than the C&#43;&#43; programmer who only has to worry about freeing memory up at the right time and in the case of memory that's only needed for temporaries during the processing of a single frame, they can use a custom allocator
 that discards everything in one go at the end of the loop.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/45e7f019077a4895b1759df300f2fa4b#45e7f019077a4895b1759df300f2fa4b</link>
		<pubDate>Wed, 15 Sep 2010 15:57:09 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/45e7f019077a4895b1759df300f2fa4b#45e7f019077a4895b1759df300f2fa4b</guid>
		<dc:creator>rhm</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rhm/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">BitFlipper said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">magicalclick said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>The float is a value type so it is not a problem in this case. But calling float.ToString() allocates a string, which is a ref object. You say fps.ToString() is released right after the line ends. Released to where? This&nbsp;has everything to do with garbage.</p>
</div></blockquote>
<p>float.ToString()?</p>
<p>&nbsp;</p>
<p>return values from a function call is stored in the call stack or something right? It is&nbsp;push right at return and pop right at caller line.&nbsp;It is just C&#43;&#43;. You don't need to release anything for that in C&#43;&#43;. Unless XNA is so much different from C&#43;&#43; and C#
 that we will have to release every single return primitive? String is a special primitive that will be released automatically in C&#43;&#43;. I am just talking about C&#43;&#43;. And there is no additional action needed to be done in C&#43;&#43;. C# is just doing the same as C&#43;&#43;
 on this part.</p>
<p>&nbsp;</p>
<p>In C&#43;&#43;, if you return an object, you don't release until you want to kill it. In C#, you can release it manually or wiat for GC. In XNA, I assume it is C#.</p>
<p>&nbsp;</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/254f8ecdc4ce4a3290ac9df300f2faba#254f8ecdc4ce4a3290ac9df300f2faba</link>
		<pubDate>Wed, 15 Sep 2010 16:35:07 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/254f8ecdc4ce4a3290ac9df300f2faba#254f8ecdc4ce4a3290ac9df300f2faba</guid>
		<dc:creator>magicalclick</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/magicalclick/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">BitFlipper said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">Minh said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>You are correct&nbsp;that if the only thing my game did was print an fps string to the screen, that would probably not be an issue. Throw in scene management, AI, collision detection, physics, weapons, enemies, sound, particle effects, a HUD, etc etc and things
 get a bit more complex. A game is very dynamic as there is a lot of interaction between objects and things come and go continuously (think of bullets, etc). Obviously you re-use objects as much as possible, but that is not the only source of allocations.&nbsp;It
<em>is</em> possible to <em>delay</em> the inevitable GC, but that is all you can do - delay it.</p>
<p>&nbsp;</p>
<p>Right now I am working on my collision detection algorithms. I have a relatively simple scene that I use to test it with. I am getting around 2000 - 3500 fps with this simple scene (on the PC). Looking at my code, I can't see an obvious place where memory
 is being allocated, yet the memory goes up roughly&nbsp;~200KB every second. Granted, at those&nbsp;frame rates, even a small allocation would quickly add up (and it is not the fps counter - I checked that).&nbsp;This means I need to go and dig into the code and see what
 is going on. Now if I have a more complex scene, the fps would obviously drop, but at the same time the complexity would go up so I imagine the allocations per sec would remain more or less the same. And as the object graph gets more complex, a GC will become
 slower. I have not seen issues simply because currently my object graph is too simple - the GC can very quickly do a collect. But other people are running into this problem - just go to forums.xna.com and search for
<strike>GC</strike>. <a href="http://forums.xna.com/search/SearchResults.aspx?q=garbage">
Edit: &quot;garbage&quot; is a better term to search for here</a>.</p>
<p>&nbsp;</p>
<p>My point is - we should not <em>have</em> to worry about this (within reason). Why do we need to worry about&nbsp;the internal memory allocation details of the .Net classes&nbsp;when we use a high-level language?</p>
</div></blockquote>
<p>post your code.</p>
<p>&nbsp;</p>
<p>I did a collision detection engine where the static mesh are created at load time, and shouldn't incur any game time pressures to the GC.</p>
<p>&nbsp;</p>
<p>You probably got a ref object in there somewhere that you think is a value object</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/50db12ebc6f94c8a86e09df300f2fb33#50db12ebc6f94c8a86e09df300f2fb33</link>
		<pubDate>Wed, 15 Sep 2010 16:44:22 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/50db12ebc6f94c8a86e09df300f2fb33#50db12ebc6f94c8a86e09df300f2fb33</guid>
		<dc:creator>Minh</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Minh/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">magicalclick said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">BitFlipper said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>float.ToString()?</p>
<p>&nbsp;</p>
<p>return values from a function call is stored in the call stack or something right? It is&nbsp;push right at return and pop right at caller line.&nbsp;It is just C&#43;&#43;. You don't need to release anything for that in C&#43;&#43;. Unless XNA is so much different from C&#43;&#43; and C#
 that we will have to release every single return primitive? String is a special primitive that will be released automatically in C&#43;&#43;. I am just talking about C&#43;&#43;. And there is no additional action needed to be done in C&#43;&#43;. C# is just doing the same as C&#43;&#43;
 on this part.</p>
<p>&nbsp;</p>
<p>In C&#43;&#43;, if you return an object, you don't release until you want to kill it. In C#, you can release it manually or wiat for GC. In XNA, I assume it is C#.</p>
<p>&nbsp;</p>
</div></blockquote>
<p>Really that is not how memory works in C#. It is not like C&#43;&#43; at all. Calling float.ToString() absolutely allocates a string, and even if you don't store it, it only means that it is not rooted&nbsp; any more. It is still allocated until the GC
<em>determines that it isn't</em> (there's the problem right there) and only then will it be released.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/1be5cf1b38764e61ab2d9df300f2fb6f#1be5cf1b38764e61ab2d9df300f2fb6f</link>
		<pubDate>Wed, 15 Sep 2010 16:53:30 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/1be5cf1b38764e61ab2d9df300f2fb6f#1be5cf1b38764e61ab2d9df300f2fb6f</guid>
		<dc:creator>BitFlipper</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/BitFlipper/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">BitFlipper said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">magicalclick said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>Really that is not how memory works in C#. It is not like C&#43;&#43; at all. Calling float.ToString() absolutely allocates a string, and even if you don't store it, it only means that it is not rooted&nbsp; any more. It is still allocated until the GC
<em>determines that it isn't</em> (there's the problem right there) and only then will it be released.</p>
</div></blockquote>
<p>Guys.... This thread is for <strong>asking questions of the XNA team</strong>, not arguing about your position/percpetion/opinion/understanding of managed code, etc...... Please..</p>
<p>C</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/6e4992175ee8449786bc9df300f2fba1#6e4992175ee8449786bc9df300f2fba1</link>
		<pubDate>Wed, 15 Sep 2010 17:02:37 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/6e4992175ee8449786bc9df300f2fba1#6e4992175ee8449786bc9df300f2fba1</guid>
		<dc:creator>Charles</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Charles/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">Minh said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">BitFlipper said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>post your code.</p>
<p>&nbsp;</p>
<p>I did a collision detection engine where the static mesh are created at load time, and shouldn't incur any game time pressures to the GC.</p>
<p>&nbsp;</p>
<p>You probably got a ref object in there somewhere that you think is a value object</p>
</div></blockquote>
<p>Well there is just way too much code to post it (and I don't really think this is the correct thread for it). I am sure I am not allocating ref objects during the game loop as I have carefully stepped through it looking for exactly that. The more likely
 cause is that I am using the .Net or XNA classes in such a way that garbage is created that I am unaware of. This is a minefield where innocent &quot;mistakes&quot; lead to garbage. Examples of things that could create garbage during the game loop:</p>
<ul>
<li>Calling anonymous methods or closures. </li><li>Setting/clearing delegates or event handlers. </li><li>Using an enum as a key in a dictionary. Simply doing a lookup creates garbage in this case.
</li><li>Doing &quot;silly&quot; things like wanting to create strings using &quot;&#43;&quot; or &quot;string.Format, etc.
</li><li>Adding/removing items out of a LinkedList. It is very common to have objects added/removed from linked lists in the game loop. So now you have to roll your own linked list, or use something other than linked lists.
</li><li>Accessing value types <a href="http://blogs.msdn.com/b/shawnhar/archive/2007/07/02/twin-paths-to-garbage-collector-nirvana.aspx">
via an interface</a> will cause them to be boxed (was not aware of this). </li><li>Some enumerators create garbage. Good luck figuring out which ones do and which ones don't. Quick: Does foreach() on a Dictionary ValuePair create garbage? Often it seems safer just to fall back to for() if you are unsure (where the collection allows this).
</li><li>Using yield in order to enumerate objects. </li><li>And who-knows-what-else happens behind the scene as you use the built-in .Net classes.
</li></ul>
<p>The point is, you might not create garbage while using your own classes/structs, but there are many cases where simply doing things that look innocent causes garbage to be created.</p>
<p>&nbsp;</p>
<p>This is a <a href="http://blogs.msdn.com/b/shawnhar/archive/2007/07/02/twin-paths-to-garbage-collector-nirvana.aspx">
quote from Shawn Hargraves</a> (works on XNA Game Studio at MS):</p>
<p>&nbsp;</p>
<p><em>&nbsp;&nbsp;&nbsp; You can achieve good performance by avoiding allocations, so the garbage collector will never run. This works regardless of how complex your heap may be.</em></p>
<p><em>&nbsp;&nbsp;&nbsp; You can also achieve good performance by keeping your heap nice and simple, so the garbage collector will finish quickly. This works regardless of whether you allocate memory during gameplay.</em></p>
<p><em>&nbsp;&nbsp;&nbsp; But you cannot achieve good performance by mixing these two approaches! There is little to be gained by allocating only a medium amount of memory and having only a medium complex heap. That will produce a game which has a medium size glitch every
 medium number of seconds.</em></p>
<p><em>&nbsp;&nbsp;&nbsp; If your goal is to avoid garbage collection glitches altogether, you must pick just one path and follow it to the bitter end.</em></p>
<p>&nbsp;</p>
<p>This just isn't ideal. An incremental GC would help since then you don't need to worry about creating&nbsp;some amount of garbage (within reason)&nbsp;at each frame, no matter how large your object graph is. Having to pick between one of the two above approaches and&nbsp;then
 ensuring that you stick to it really complicates things. Java has an optional&nbsp;low-pause incremental collector, why not .Net?</p>
<p>&nbsp;</p>
<p><strong>EDIT:</strong> @Charles: Sorry, only saw your post after I posted. Will stop posting now. If someone wants to discuss the details&nbsp;further,&nbsp;we can create another thread.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/11dccacfc3904bed99649df300f2fbe7#11dccacfc3904bed99649df300f2fbe7</link>
		<pubDate>Wed, 15 Sep 2010 17:56:25 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/11dccacfc3904bed99649df300f2fbe7#11dccacfc3904bed99649df300f2fbe7</guid>
		<dc:creator>BitFlipper</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/BitFlipper/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">Charles said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">BitFlipper said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>Guys.... This thread is for <strong>asking questions of the XNA team</strong>, not arguing about your position/percpetion/opinion/understanding of managed code, etc...... Please..</p>
<p>C</p>
</div></blockquote>
<p>So to boil it down into a question for the XNA team: Will the XBox version of XNA ever get to run the desktop CLR or see significant improvements to the garbage collector on the current runtime?</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/b6779e775ccf44b6aace9df300f2fc58#b6779e775ccf44b6aace9df300f2fc58</link>
		<pubDate>Wed, 15 Sep 2010 18:29:35 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/b6779e775ccf44b6aace9df300f2fc58#b6779e775ccf44b6aace9df300f2fc58</guid>
		<dc:creator>rhm</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rhm/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">BitFlipper said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">magicalclick said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>Really that is not how memory works in C#. It is not like C&#43;&#43; at all. Calling float.ToString() absolutely allocates a string, and even if you don't store it, it only means that it is not rooted&nbsp; any more. It is still allocated until the GC
<em>determines that it isn't</em> (there's the problem right there) and only then will it be released.</p>
</div></blockquote>
<p>I see, so string is not a special premitive in C#, while it is special premitive in C&#43;&#43;. Got it.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/7dc811f608344f53a42d9df300f2fcc9#7dc811f608344f53a42d9df300f2fcc9</link>
		<pubDate>Wed, 15 Sep 2010 20:02:20 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/7dc811f608344f53a42d9df300f2fcc9#7dc811f608344f53a42d9df300f2fcc9</guid>
		<dc:creator>magicalclick</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/magicalclick/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">magicalclick said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">BitFlipper said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>I see, so string is not a special premitive in C#, while it is special premitive in C&#43;&#43;. Got it.</p>
</div></blockquote>
<p>std:string isn't a special primitive in C&#43;&#43; either. It's just a class wrapper around a null-terminated array of char (or wchar_t or some other type if you're using STL). In .NET String is a &quot;special&quot; class in that it can be treated as a const and has special
 in-memory behaviour (see String Internment) but whatever.</p>
<p>&nbsp;</p>
<p>Anyway, Charles said this thread is about questions to pitch to the XNA guys, not each other.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/278c09394f724e7784bc9df300f2fd38#278c09394f724e7784bc9df300f2fd38</link>
		<pubDate>Wed, 15 Sep 2010 20:49:34 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/278c09394f724e7784bc9df300f2fd38#278c09394f724e7784bc9df300f2fd38</guid>
		<dc:creator>W3bbo</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/W3bbo/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>when will xna have better support for dx11 and windows programming? i realize xna is mostly for xbox but it seems so strange to not support the latest (or even second latest) version of the graphics framework of the largest gaming platform in the world <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif' alt='Tongue Out' /></p>
<p>phones will also get more advanced capabilities soon..</p>
<p>&nbsp;</p>
<p>in general i think microsoft should market directx more agressivly to developers, and xna is agreat way to do that&nbsp;</p>
<p>(more directx/xna content/tutorials on c9 would also be awsome btw <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> )&nbsp;</p>
<p>&nbsp;</p>
<p>also, major BUMP on @bas's question on kinect support <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif' alt='Wink' />&nbsp;</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/eb67578070f9458dacfa9df300f2fda3#eb67578070f9458dacfa9df300f2fda3</link>
		<pubDate>Thu, 16 Sep 2010 09:03:31 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/eb67578070f9458dacfa9df300f2fda3#eb67578070f9458dacfa9df300f2fda3</guid>
		<dc:creator>Allan Lindqvist</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/aL_/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>If anyone wants to discuss the issues with the GC any further, I created a thread
<a href="http://channel9.msdn.com/forums/TechOff/574844-XNA-and-the-Garbage-Collector/#Page=1">
here</a>.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/1bbb111bc8924571847c9df400b4dab7#1bbb111bc8924571847c9df400b4dab7</link>
		<pubDate>Thu, 16 Sep 2010 22:27:34 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/1bbb111bc8924571847c9df400b4dab7#1bbb111bc8924571847c9df400b4dab7</guid>
		<dc:creator>BitFlipper</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/BitFlipper/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>When will you support Mac OS X and Linux? </p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/30834508aa6e49dba1af9df400b4db1d#30834508aa6e49dba1af9df400b4db1d</link>
		<pubDate>Thu, 16 Sep 2010 22:29:45 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/30834508aa6e49dba1af9df400b4db1d#30834508aa6e49dba1af9df400b4db1d</guid>
		<dc:creator>Bass</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Bass/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>Are there any plans to improve the JIT compiler for XNA on Xbox, GC, and other core runtimes?&nbsp; Some basic changes like more aggressive method inlining would go a long way.&nbsp; Currently you have to write messy code to get the best performance .</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/30b012248bf648dc822c9df400b4db4b#30b012248bf648dc822c9df400b4db4b</link>
		<pubDate>Fri, 17 Sep 2010 04:21:02 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/30b012248bf648dc822c9df400b4db4b#30b012248bf648dc822c9df400b4db4b</guid>
		<dc:creator>CreamFilling512</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/CreamFilling512/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">CreamFilling512 said:</div><div class="quoteText">
<p>Are there any plans to improve the JIT compiler for XNA on Xbox, GC, and other core runtimes?&nbsp; Some basic changes like more aggressive method inlining would go a long way.&nbsp; Currently you have to write messy code to get the best performance .</p>
</div></blockquote>
<p>How far ahead are you with the XNA build for XBOX 3?&nbsp; (no harm in trying)</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/78e9cb7adf184eb799719df400b4dbbc#78e9cb7adf184eb799719df400b4dbbc</link>
		<pubDate>Fri, 17 Sep 2010 08:27:27 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/78e9cb7adf184eb799719df400b4dbbc#78e9cb7adf184eb799719df400b4dbbc</guid>
		<dc:creator>Ian Walker</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Ian2/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>i'll add i'd like to see do they have any thoughts on improving how developers have to deal with the GC in future.</p>
<p>&nbsp;</p>
<p>also would like to know where they see XNA going in the future. Though that's a pretty&nbsp;obvious&nbsp;question. but it's&nbsp;interesting&nbsp;seeing now that XNA is the only platform for developing&nbsp;high end&nbsp;games on wp7, given that XNA was originally a project&nbsp;primarily&nbsp;aimed
 at indie developers, it's now been given a lot more responsibility to be a top class platform for big developers to produce games too. Not that i think there's one thing wrong with that. I think it's exciting for game making tools used by big developers to
 make high end games are&nbsp;accessible&nbsp;and usable by the humble bedroom programmer.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/15345014ee164be7aab59df400b4dc4a#15345014ee164be7aab59df400b4dc4a</link>
		<pubDate>Fri, 17 Sep 2010 12:03:04 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/15345014ee164be7aab59df400b4dc4a#15345014ee164be7aab59df400b4dc4a</guid>
		<dc:creator>battlebottle</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/battlebottle/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">aL_ said:</div><div class="quoteText">
<p>when will xna have better support for dx11 and windows programming? i realize xna is mostly for xbox but it seems so strange to not support the latest (or even second latest) version of the graphics framework of the largest gaming platform in the world
<img src="http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif" alt="Tongue Out"></p>
<p>phones will also get more advanced capabilities soon..</p>
<p>&nbsp;</p>
<p>in general i think microsoft should market directx more agressivly to developers, and xna is agreat way to do that&nbsp;</p>
<p>(more directx/xna content/tutorials on c9 would also be awsome btw <img src="http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif" alt="Smiley"> )&nbsp;</p>
<p>&nbsp;</p>
<p>also, major BUMP on @bas's question on kinect support <img src="http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif" alt="Wink">&nbsp;</p>
</div></blockquote>
<p>Yeah this. XNA only has DX9 right now. Time to support DX11.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/c3d8f93d167849c0b0809df400b4dcbc#c3d8f93d167849c0b0809df400b4dcbc</link>
		<pubDate>Fri, 17 Sep 2010 16:30:14 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/c3d8f93d167849c0b0809df400b4dcbc#c3d8f93d167849c0b0809df400b4dcbc</guid>
		<dc:creator>magicalclick</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/magicalclick/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Interview with XNA Team</title>
		<description><![CDATA[<p>Not sure if it's too late to add another question, but I just remembered this:</p>
<p>The WP7 version of XNA does not allow you to provide a custom shader program. Why is that? As far as I can see the hardware is shader-based. Are there any plans to improve this in future versions?</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/1a9dd77a3dfe4d53abf59df701448564#1a9dd77a3dfe4d53abf59df701448564</link>
		<pubDate>Mon, 20 Sep 2010 19:41:32 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/574452-Interview-with-XNA-Team/1a9dd77a3dfe4d53abf59df701448564#1a9dd77a3dfe4d53abf59df701448564</guid>
		<dc:creator>rhm</dc:creator>
		<slash:comments>38</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/rhm/Discussions/RSS</wfw:commentRss>
	</item>
</channel>
</rss>