<?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 - Entries tagged with Gaming</title>
    <atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Tags/gaming/RSS"></atom:link>
    <itunes:summary></itunes:summary>
    <itunes:author>Microsoft</itunes:author>
    <itunes:subtitle></itunes:subtitle>
    <image>
      <url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
      <title>Channel 9 - Entries tagged with Gaming</title>
      <link>http://channel9.msdn.com/Tags/gaming</link>
    </image>
    <itunes:image href=""></itunes:image>
    <itunes:category text="Technology"></itunes:category>
    <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/Tags/gaming</link>
    <language>en</language>
    <pubDate>Sat, 18 May 2013 19:56:28 GMT</pubDate>
    <lastBuildDate>Sat, 18 May 2013 19:56:28 GMT</lastBuildDate>
    <generator>Rev9</generator>
    <c9:totalResults>183</c9:totalResults>
    <c9:pageCount>8</c9:pageCount>
    <c9:pageSize>25</c9:pageSize>
  <item>
      <title>Fling Theory</title>
      <description><![CDATA[<p>See and hear how Coding Jar designed and developed their Windows Store game, Fling Theory.</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:7a76b1eb77dd4e219ae3a1ba00fe41a4">]]></description>
      <comments>http://channel9.msdn.com/Blogs/CdnWindows8/FlingTheory</comments>
      <itunes:summary>See and hear how Coding Jar designed and developed their Windows Store game, Fling Theory. </itunes:summary>
      <itunes:duration>153</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/CdnWindows8/FlingTheory</link>
      <pubDate>Fri, 10 May 2013 16:00:58 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/CdnWindows8/FlingTheory</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory_512.jpg" height="288" width="512"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory_960.jpg" height="540" width="960"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory.mp3" expression="full" duration="153" fileSize="2451880" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory.mp4" expression="full" duration="153" fileSize="14209131" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory.webm" expression="full" duration="153" fileSize="14611530" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory.wma" expression="full" duration="153" fileSize="1245683" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory.wmv" expression="full" duration="153" fileSize="13870643" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory_high.mp4" expression="full" duration="153" fileSize="31256980" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory_mid.mp4" expression="full" duration="153" fileSize="21802626" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory_Source.wmv" expression="full" duration="153" fileSize="77594623" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory.ism/manifest" expression="full" duration="153" fileSize="8414" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/3b91/e12f3ec5-fadf-4890-8227-c188d5ab3b91/FlingTheory.wmv" length="13870643" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Jonathan Rozenblit</dc:creator>
      <itunes:author>Jonathan Rozenblit</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/CdnWindows8/FlingTheory/RSS</wfw:commentRss>
      <category>Gaming</category>
      <category>Interview</category>
      <category>Windows 8</category>
      <category>Windows Store App</category>
    </item>
  <item>
      <title>Sad Cat</title>
      <description><![CDATA[<p>See and hear how Sad Cat Software designed and developed Train Titan, Violet Storm, and others games in the Windows Store.</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:9bab80a28cbc49dc8889a1b801644560">]]></description>
      <comments>http://channel9.msdn.com/Blogs/CdnWindows8/SadCat</comments>
      <itunes:summary>See and hear how Sad Cat Software designed and developed Train Titan, Violet Storm, and others games in the Windows Store. </itunes:summary>
      <itunes:duration>154</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/CdnWindows8/SadCat</link>
      <pubDate>Wed, 08 May 2013 22:04:48 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/CdnWindows8/SadCat</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat_512.jpg" height="288" width="512"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat_960.jpg" height="540" width="960"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat.mp3" expression="full" duration="154" fileSize="2465659" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat.mp4" expression="full" duration="154" fileSize="14709976" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat.webm" expression="full" duration="154" fileSize="14940844" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat.wma" expression="full" duration="154" fileSize="1251691" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat.wmv" expression="full" duration="154" fileSize="14390561" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat_high.mp4" expression="full" duration="154" fileSize="32085375" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat_mid.mp4" expression="full" duration="154" fileSize="22467473" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat_Source.wmv" expression="full" duration="154" fileSize="79003610" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat.ism/manifest" expression="full" duration="154" fileSize="8334" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/e43f/be94c223-a7af-4aa5-93d2-3fc2673de43f/SadCat.wmv" length="14390561" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Jonathan Rozenblit</dc:creator>
      <itunes:author>Jonathan Rozenblit</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/CdnWindows8/SadCat/RSS</wfw:commentRss>
      <category>Games</category>
      <category>Gaming</category>
      <category>Interview</category>
      <category>Windows Store App</category>
    </item>
  <item>
      <title>Ping 171: SXSW wins, Flash &amp; IE, Cross-platform gaming, Office 365 FREE</title>
      <description><![CDATA[<p>Another week of fun filled debates and conversations. Please share your thoughts on these stories and anything else you think Laura &amp; Paul need to know...</p><p><a href="http://blogs.windows.com/ie/b/ie/archive/2013/03/13/the-web-s-first-multi-touch-game-contre-jour-best-of-show-sxsw.aspx?utm_source=twitterfeed&amp;utm_medium=facebook&amp;utm_campaign=ie">First Place at SXSW Interactive</a>&nbsp; <a href="http://channel9.msdn.com/Shows/PingShow/Ping-171-SXSW-wins-Flash--IE-Cross-platform-gaming-Office-365-FREE#time=02m16s">[02:16]</a></p><div><a href="http://techcrunch.com/2013/03/11/after-previously-blocking-it-microsoft-now-enables-flash-by-default-on-ie10-for-windows-8-and-rt/">Flash for all</a>&nbsp; <a href="http://channel9.msdn.com/Shows/PingShow/Ping-171-SXSW-wins-Flash--IE-Cross-platform-gaming-Office-365-FREE#time=06m42s">[06:42]</a></div><div>&nbsp; <div><a href="http://www.pcworld.com/article/2030060/why-cross-platform-gaming-is-microsofts-secret-weapon.html">Cross Platform is the Future</a>&nbsp; <a href="http://channel9.msdn.com/Shows/PingShow/Ping-171-SXSW-wins-Flash--IE-Cross-platform-gaming-Office-365-FREE#time=10m08s">[10:08]</a></div></div><div>&nbsp;</div><div><a href="http://thenextweb.com/microsoft/2013/03/11/microsoft-offering-students-3-months-of-office-365-for-free-to-help-it-drive-adoption-on-campuses/">Office 365 free for students</a>&nbsp; <a href="http://channel9.msdn.com/Shows/PingShow/Ping-171-SXSW-wins-Flash--IE-Cross-platform-gaming-Office-365-FREE#time=17m43s">[17:43]</a></div><div>&nbsp;</div><div>QOTW- What software did you rely on during college?</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:39dda87908494544bdb9a18700233b12">]]></description>
      <comments>http://channel9.msdn.com/Shows/PingShow/Ping-171-SXSW-wins-Flash--IE-Cross-platform-gaming-Office-365-FREE</comments>
      <itunes:summary>Another week of fun filled debates and conversations. Please share your thoughts on these stories and anything else you think Laura &amp;amp; Paul need to know... First Place at SXSW Interactive&amp;nbsp; [02:16] Flash for all&amp;nbsp; [06:42]&amp;nbsp; Cross Platform is the Future&amp;nbsp; [10:08]&amp;nbsp;Office 365 free for students&amp;nbsp; [17:43]&amp;nbsp;QOTW- What software did you rely on during college?&amp;nbsp;&amp;nbsp;&amp;nbsp;</itunes:summary>
      <itunes:duration>1325</itunes:duration>
      <link>http://channel9.msdn.com/Shows/PingShow/Ping-171-SXSW-wins-Flash--IE-Cross-platform-gaming-Office-365-FREE</link>
      <pubDate>Wed, 20 Mar 2013 16:26:46 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/PingShow/Ping-171-SXSW-wins-Flash--IE-Cross-platform-gaming-Office-365-FREE</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171.mp3" expression="full" duration="1325" fileSize="21212749" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171.mp4" expression="full" duration="1325" fileSize="128146696" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171.webm" expression="full" duration="1325" fileSize="50777447" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171.wma" expression="full" duration="1325" fileSize="10726307" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171.wmv" expression="full" duration="1325" fileSize="131646707" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171_high.mp4" expression="full" duration="1325" fileSize="279437971" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171_mid.mp4" expression="full" duration="1325" fileSize="195705919" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171_Source.wmv" expression="full" duration="1325" fileSize="489419360" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171.ism/manifest" expression="full" duration="1325" fileSize="8350" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/458a/76fe548b-6ee9-46c5-a1a7-f8425820458a/Ping171.wmv" length="131646707" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Laura Foy</dc:creator>
      <itunes:author>Laura Foy</itunes:author>
      <slash:comments>19</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/PingShow/Ping-171-SXSW-wins-Flash--IE-Cross-platform-gaming-Office-365-FREE/RSS</wfw:commentRss>
      <category>Flash</category>
      <category>Gaming</category>
      <category>Kinect</category>
      <category>Office</category>
      <category>PingShow</category>
      <category>SXSW</category>
    </item>
  <item>
      <title>Microsoft DevRadio: Using Construct 2 to Build Amazing Games for Windows 8</title>
      <description><![CDATA[<p><strong>Abstract:</strong> <a href="http://aka.ms/MyGreatIdea"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a><br><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200121862" target="_blank">Jennifer Marsman</a> welcomes Ashley Gullen from <a href="https://www.scirra.com/" target="_blank"><strong>Scirra</strong></a> as he demos for us <a href="https://www.scirra.com/construct2/releases/r108.2/download" target="_blank">Contruct 2</a>, an easy to use HTML5 game engine that allows anyone to create gaming apps for <a href="http://aka.ms/MyGreatIdea">Windows 8</a> and Windows Phone. Check out this quick demo as Ashley creates a simple gaming app and then submits it to the Windows Store for release. <a href="http://aka.ms/ScirraContruct2Download" target="_blank"><strong>Download Construct 2 here!</strong></a></p><p><strong>Next Steps:</strong><br><strong>Step #1 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113720">Download the Tools for Windows 8 App Development</a><br><strong>Step #2 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express for Windows 8</a><br><strong>Step #3 –</strong> <a href="http://aka.ms/MyGreatIdea">Start building your own Apps for Windows 8</a></p><p><a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp3"><img src="http://blogs.msdn.com/resized-image.ashx/__size/28x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/1512.itunes.png" alt="" width="15" height="15"></a> Subscribe to our podcast via <a href="http://itunes.apple.com/us/podcast/devradio-mp4-channel-9/id544163838">iTunes</a> or <a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp4">RSS</a></p><p><strong>If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:</strong></p><p><strong>Websites:</strong></p><ul><li><a href="http://msdn.microsoft.com/library/windows/apps/br211386">Getting started with Windows 8 Apps</a> </li><li><a href="http://msdn.microsoft.com/library/windows/apps/br230836">How to Sell Your Apps and Make Money in the Windows Store</a> </li><li><a href="http://www.msdnevents.com/">Attend a Windows 8 Developer Camp and Hackathon in your area!</a> </li></ul><p><strong>Blogs &amp; Articles:</strong></p><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200121862" target="_blank">Jennifer Marsman's Blog</a> </li><li><a href="https://www.scirra.com/blog" target="_blank">Ashley Gullen’s Scirra Blog</a> </li><li><a href="https://www.scirra.com/blog/104/new-windows-8-game-competition" target="_blank">Scirra Competition to build Windows 8 games</a> </li></ul><p><strong>Getting Started Tutorials with Construct 2 </strong></p><ul><li><a href="http://www.scirra.com/tutorials/37/beginners-guide-to-construct-2" target="_blank">Beginners Guide to Construct 2</a> </li><li><a href="http://www.scirra.com/tutorials/243/building-a-platform-game-a-beginners-guide" target="_blank">Building a Platform Game</a> </li><li><a href="http://www.scirra.com/tutorials/73/supporting-multiple-screen-sizes" target="_blank">How to Scale to Multiple Form Factors</a> </li></ul><p><strong>Videos:</strong></p><ul><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Reasons-Why-You-Should-Develop-a-Windows-8-App">Microsoft DevRadio: Reasons Why You Should Develop a Windows 8 App</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Community-Corner-Developing-My-App-for-Windows-8">Microsoft DevRadio: Community Corner - Developing My App for Windows 8</a> </li></ul><p><strong>Virtual Labs:</strong></p><ul><li><a href="http://msdn.microsoft.com/en-us/jj206431">Windows 8 Release Preview Virtual Labs</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:aed9e117390f42a991cca12b013c2350">]]></description>
      <comments>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Using-Construct-2-to-Build-Amazing-Games-for-Windows-8</comments>
      <itunes:summary>Abstract: Jennifer Marsman welcomes Ashley Gullen from Scirra as he demos for us Contruct 2, an easy to use HTML5 game engine that allows anyone to create gaming apps for Windows 8 and Windows Phone. Check out this quick demo as Ashley creates a simple gaming app and then submits it to the Windows Store for release. Download Construct 2 here! Next Steps:Step #1 – Download the Tools for Windows 8 App DevelopmentStep #2 – Download Visual Studio Express for Windows 8Step #3 – Start building your own Apps for Windows 8  Subscribe to our podcast via iTunes or RSS If you&#39;re interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information: Websites: Getting started with Windows 8 Apps How to Sell Your Apps and Make Money in the Windows Store Attend a Windows 8 Developer Camp and Hackathon in your area! Blogs &amp;amp; Articles: Jennifer Marsman&#39;s Blog Ashley Gullen’s Scirra Blog Scirra Competition to build Windows 8 games Getting Started Tutorials with Construct 2  Beginners Guide to Construct 2 Building a Platform Game How to Scale to Multiple Form Factors Videos: Microsoft DevRadio: Reasons Why You Should Develop a Windows 8 App Microsoft DevRadio: Community Corner - Developing My App for Windows 8 Virtual Labs: Windows 8 Release Preview Virtual Labs </itunes:summary>
      <itunes:duration>1941</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Using-Construct-2-to-Build-Amazing-Games-for-Windows-8</link>
      <pubDate>Tue, 18 Dec 2012 18:00:59 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Using-Construct-2-to-Build-Amazing-Games-for-Windows-8</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/c93b/c89bb5f9-4569-4371-a4af-cbbbbe3dc93b/DevRadioConstruct2Win8_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/c93b/c89bb5f9-4569-4371-a4af-cbbbbe3dc93b/DevRadioConstruct2Win8_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/c93b/c89bb5f9-4569-4371-a4af-cbbbbe3dc93b/DevRadioConstruct2Win8_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/c93b/c89bb5f9-4569-4371-a4af-cbbbbe3dc93b/DevRadioConstruct2Win8.mp3" expression="full" duration="1941" fileSize="1" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c93b/c89bb5f9-4569-4371-a4af-cbbbbe3dc93b/DevRadioConstruct2Win8.mp4" expression="full" duration="1941" fileSize="1" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c93b/c89bb5f9-4569-4371-a4af-cbbbbe3dc93b/DevRadioConstruct2Win8.webm" expression="full" duration="1941" fileSize="1" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c93b/c89bb5f9-4569-4371-a4af-cbbbbe3dc93b/DevRadioConstruct2Win8.wma" expression="full" duration="1941" fileSize="1" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c93b/c89bb5f9-4569-4371-a4af-cbbbbe3dc93b/DevRadioConstruct2Win8_high.mp4" expression="full" duration="1941" fileSize="1" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c93b/c89bb5f9-4569-4371-a4af-cbbbbe3dc93b/DevRadioConstruct2Win8_mid.mp4" expression="full" duration="1941" fileSize="1" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c93b/c89bb5f9-4569-4371-a4af-cbbbbe3dc93b/DevRadioConstruct2Win8_Source.wmv" expression="full" duration="1941" fileSize="1" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/c93b/c89bb5f9-4569-4371-a4af-cbbbbe3dc93b/DevRadioConstruct2Win8_Source.wmv" length="0" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Jennifer Marsman, DevRadio, ChrisCaldwell</dc:creator>
      <itunes:author>Jennifer Marsman, DevRadio, ChrisCaldwell</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Using-Construct-2-to-Build-Amazing-Games-for-Windows-8/RSS</wfw:commentRss>
      <category>Gaming</category>
      <category>Gaming on Windows Phones</category>
      <category>HTML5</category>
      <category>Windows 8</category>
      <category>Windows Phone 8</category>
      <category>Windows Store App</category>
      <category>WindowsContent</category>
    </item>
  <item>
      <title>Windows 8: Pure Imagination - The In-Person and Virtual Experience</title>
      <description><![CDATA[<p><img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-29-devsdevsdevs/6116.ms_5F00_0314_5F00_d3_5F00_logo.png" alt=""></p><p>The buzz word is REIMAGINATION. The list of new products and technologies launching is endless. Windows 8: Pure Imagination will bring developers, designers, game builders, students and start-ups entrepreneurs together to explore the possibilities of Windows 8. At Windows 8: Pure Imagination you'll be encouraged to look beyond the features... to what can be accomplished when inspiration and technology intersect. <a href="http://twitter.com/tommylee" target="_blank">Tommy Lee</a>&nbsp;dishes the details about this weekend developer must attend event!</p><p><strong>About Windows 8: Pure Imagination</strong></p><p>Windows 8: Pure Imagination brings developers, designers, game builders, students and start-ups entrepreneurs together to explore the possibilities of Windows 8. You'll be encouraged to look beyond the features... to what can be accomplished when inspiration and technology intersect.&nbsp;In less than 40 hours, you'll get everything you need to make your vision into the next great Canadian app, including on-site presentations, brainstorming sessions, hands-on labs and access to industry experts for guidance and treated to spontaneous moments of fun to keep your energy up.</p><p><strong>Register for Windows 8: Pure Imagination</strong></p><p><a href="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-CA&amp;EventID=1032533941&amp;IO=LYqdxtvGRSR0LBsOj22%2fgA%3d%3d" target="_self">Register for Windows 8: Pure Imagination - The In-Person Experience (Toronto) &gt;&gt;</a><br><a href="https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=E5-2C-6B-27-CE-49-79-0D-83-52-15-F8-62-67-E6-E3&amp;Culture=en-CA&amp;community=0" target="_blank">Register for Windows 8: Pure Imagination - The Virtual Experience &gt;&gt;</a></p><p><strong>Join the Conversation</strong> <br>Will you be attending Windows 8: Pure Imagination in-person or virtually? What would you want to get out of the weekend? Share your thoughts by starting&nbsp;a new conversation in the <a href="http://linkd.in/CdnDevs" target="_blank">Canadian Developer Connection group on LinkedIn</a>. Tommy, Jonathan, as well as other fellow Canadian developers are there networking, sharing, and learning. While visiting the group, make sure to join the group and stay connected.</p><p><em>This segment was presented and recording LIVE on Wednesday, November 5, 2012.</em></p><p><strong>D³: LIVE &amp; INTERACTiVE <br></strong>In case you haven't heard about the show, <a href="http://devs3.ms/devscubed">Developers, Developers, Developers: LIVE &amp; INTERACTIVE</a> (D³) is a monthly show hosted by <a href="http://jrozenblit.ca/about">Jonathan Rozenblit</a>. The show airs live <strong>every first Wednesday of the month at 12:00 PM ET</strong> and features the latest updates on what's new and exciting in the world of development; featured presentations; and guests. LIVE and INTERACTIVE means that you'll be part of the show – You're invited to interact with us; ask questions and get them answered; and share your thoughts and opinions.</p><p><a href="http://linkd.in/CanadianDeveloperConnection"><strong><img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-29-devsdevsdevs/1234.LinkedIn.png" alt=" " width="15" height="16" border="0"></strong></a> Join the <a href="http://linkd.in/CanadianDeveloperConnection">Canadian Developer Connection</a> LinkedIn group&nbsp; <br><a href="http://twitter.com/devsdevsdevs"><img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-29-devsdevsdevs/3806.Twitter.png" alt=" " width="15" height="15" border="0"></a> Follow <a href="http://twitter.com/devsdevsdevs">@devsdevdevs</a> <br><a href="https://www.facebook.com/#!/pages/Developers-Developers-Developers-LIVE-and-Interactive/273573892687218"><img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-29-devsdevsdevs/3487.Facebook.png" alt=" " width="15" height="15" border="0"></a> Like D³ on <a href="http://on.fb.me/DevsDevsDevs">Facebook</a> <br><img src="http://blogs.msdn.com/resized-image.ashx/__size/28x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/1512.itunes.png" alt="" width="15" height="15"> Subscribe to podcasts via <a href="http://devs3.ms/d3podcast" target="_blank">iTunes,</a> <a href="zune://feeds.feedburner.com/devscubed">Zune</a>, or <a href="http://devs3.ms/d3videorss" target="_blank">RSS</a> <br><img title="WindowsStore_tile_green_small_40x40" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-29-metablogapi/7288.WindowsStore_5F00_tile_5F00_green_5F00_small_5F00_40x40_5F00_thumb_5F00_1F01BFD7.png" alt="WindowsStore_tile_green_small_40x40" width="15" height="15" border="0"><span><span class="Apple-converted-space">&nbsp;</span></span>Download the <a href="http://devs3.ms/cdndevsw8" target="_blank">Canadian Developer Connection Windows Store app </a><br><a href="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/2364.windowsphone.png" rel="lightbox"><img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/2364.windowsphone.png" alt="" width="15" height="15"></a> Download the <a href="http://aka.ms/cdndevswp" target="_blank">Canadian Developer Connection Windows Phone app</a></p><p><a href="http://devs3.ms/devscubed">More D³: LIVE &amp; INTERACTIVE &gt;&gt;</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:e05073aab76d4a3b8a9fa103003a328c">]]></description>
      <comments>http://channel9.msdn.com/Blogs/devsdevsdevs/ep122</comments>
      <itunes:summary> The buzz word is REIMAGINATION. The list of new products and technologies launching is endless. Windows 8: Pure Imagination will bring developers, designers, game builders, students and start-ups entrepreneurs together to explore the possibilities of Windows 8. At Windows 8: Pure Imagination you&#39;ll be encouraged to look beyond the features... to what can be accomplished when inspiration and technology intersect. Tommy Lee&amp;nbsp;dishes the details about this weekend developer must attend event! About Windows 8: Pure Imagination Windows 8: Pure Imagination brings developers, designers, game builders, students and start-ups entrepreneurs together to explore the possibilities of Windows 8. You&#39;ll be encouraged to look beyond the features... to what can be accomplished when inspiration and technology intersect.&amp;nbsp;In less than 40 hours, you&#39;ll get everything you need to make your vision into the next great Canadian app, including on-site presentations, brainstorming sessions, hands-on labs and access to industry experts for guidance and treated to spontaneous moments of fun to keep your energy up. Register for Windows 8: Pure Imagination Register for Windows 8: Pure Imagination - The In-Person Experience (Toronto) &amp;gt;&amp;gt;Register for Windows 8: Pure Imagination - The Virtual Experience &amp;gt;&amp;gt; Join the Conversation Will you be attending Windows 8: Pure Imagination in-person or virtually? What would you want to get out of the weekend? Share your thoughts by starting&amp;nbsp;a new conversation in the Canadian Developer Connection group on LinkedIn. Tommy, Jonathan, as well as other fellow Canadian developers are there networking, sharing, and learning. While visiting the group, make sure to join the group and stay connected. This segment was presented and recording LIVE on Wednesday, November 5, 2012. D&#179;: LIVE &amp;amp; INTERACTiVE In case you haven&#39;t heard about the show, Developers, Developers, Developers: LIVE &amp;amp; INTERACTIVE (D&#179;) is a monthly show hosted by Jonathan Roz</itunes:summary>
      <itunes:duration>902</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/devsdevsdevs/ep122</link>
      <pubDate>Fri, 09 Nov 2012 04:22:27 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/devsdevsdevs/ep122</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122.mp3" expression="full" duration="902" fileSize="14437546" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122.mp4" expression="full" duration="902" fileSize="85844101" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122.webm" expression="full" duration="902" fileSize="35678728" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122.wma" expression="full" duration="902" fileSize="7301747" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122.wmv" expression="full" duration="902" fileSize="59424209" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122_high.mp4" expression="full" duration="902" fileSize="187057844" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122_mid.mp4" expression="full" duration="902" fileSize="131006950" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122_Source.wmv" expression="full" duration="902" fileSize="185979116" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122.ism/manifest" expression="full" duration="902" fileSize="5986" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/6f05/45cce1ac-ad1d-4c62-97e5-263be6f96f05/D3EP122.wmv" length="59424209" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Jonathan Rozenblit</dc:creator>
      <itunes:author>Jonathan Rozenblit</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/devsdevsdevs/ep122/RSS</wfw:commentRss>
      <category>Cloud</category>
      <category>Conference</category>
      <category>Designer</category>
      <category>Developer</category>
      <category>Gaming</category>
      <category>Windows Azure</category>
      <category>Windows 8</category>
    </item>
  <item>
      <title>Graphic Improvements in Windows 8</title>
      <description><![CDATA[<p>In Windows 8, performance and battery life&nbsp;are important factors so we wanted to offload as much as possible on to the machine's graphics hardware to speed up everything you do.&nbsp;</p><p>That's why we invested in DirectX to hardware accelerate almost every aspect of the user experience. Graphics is literally at the core of every Windows 8 experience.</p><p>For more information on graphic improvements in Windows 8, see the reference links here:</p><ul><li><a href="http://blogs.msdn.com/b/b8/archive/2012/07/23/hardware-accelerating-everything-windows-8-graphics.aspx">Hardware accelerating everything: Windows 8 graphics</a> </li><li><a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.graphics.imaging.aspx">Windows Graphics APIs</a> </li></ul><p>See also related videos here:</p><ul><li><a href="http://channel9.msdn.com/Series/Introducing-Windows-8/Gaming">Windows 8 for Gaming</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:235b9db110864f6f9101a0f5000ba220">]]></description>
      <comments>http://channel9.msdn.com/Series/Introducing-Windows-8/Graphic-Improvements</comments>
      <itunes:summary>In Windows 8, performance and battery life&amp;nbsp;are important factors so we wanted to offload as much as possible on to the machine&#39;s graphics hardware to speed up everything you do.&amp;nbsp; That&#39;s why we invested in DirectX to hardware accelerate almost every aspect of the user experience. Graphics is literally at the core of every Windows 8 experience. For more information on graphic improvements in Windows 8, see the reference links here: Hardware accelerating everything: Windows 8 graphics Windows Graphics APIs See also related videos here: Windows 8 for Gaming </itunes:summary>
      <itunes:duration>355</itunes:duration>
      <link>http://channel9.msdn.com/Series/Introducing-Windows-8/Graphic-Improvements</link>
      <pubDate>Thu, 25 Oct 2012 16:07:03 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/Introducing-Windows-8/Graphic-Improvements</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove.mp3" expression="full" duration="355" fileSize="5691490" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove.mp4" expression="full" duration="355" fileSize="37811721" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove.webm" expression="full" duration="355" fileSize="12425620" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove.wma" expression="full" duration="355" fileSize="2888871" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove.wmv" expression="full" duration="355" fileSize="20887679" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove_high.mp4" expression="full" duration="355" fileSize="86088721" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove_mid.mp4" expression="full" duration="355" fileSize="59293659" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove_Source.wmv" expression="full" duration="355" fileSize="162966393" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove.ism/manifest" expression="full" duration="355" fileSize="7618" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/4c2f/57314a0e-f59c-4f65-8c2c-91cdf9564c2f/GameImprove.wmv" length="20887679" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Roxanne Beaver</dc:creator>
      <itunes:author>Roxanne Beaver</itunes:author>
      <slash:comments>3</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/Introducing-Windows-8/Graphic-Improvements/RSS</wfw:commentRss>
      <category>Designer</category>
      <category>Developer</category>
      <category>Gaming</category>
      <category>Graphics</category>
      <category>Windows 8</category>
      <category>Windows Store App</category>
    </item>
  <item>
      <title>Windows 8 for Gaming</title>
      <description><![CDATA[<p>In Windows 8, we wanted to deliver the best possible experience for gamers as well as the best platform for game developers. We made improvements for game developers to ensure they have the right APIs to get what they need to build incredible game experiences. In Windows 8 your games will&nbsp;perform better than ever!</p><p>We think gamers are going to love the new features of Windows 8.</p><p>For additional information on developing games, please see the following links:</p><ul><li><a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh452744.aspx">Developing Games</a> </li><li><a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh465149.aspx">Creating a DirectX game</a> </li></ul><p>See also related videos here:</p><ul><li><a href="http://channel9.msdn.com/Series/Introducing-Windows-8/Graphic-Improvements">Graphic Improvements in Windows 8</a> </li></ul><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:1c0fcbaf52004e6c9aeaa0f50008ce70">]]></description>
      <comments>http://channel9.msdn.com/Series/Introducing-Windows-8/Gaming</comments>
      <itunes:summary>In Windows 8, we wanted to deliver the best possible experience for gamers as well as the best platform for game developers. We made improvements for game developers to ensure they have the right APIs to get what they need to build incredible game experiences. In Windows 8 your games will&amp;nbsp;perform better than ever! We think gamers are going to love the new features of Windows 8. For additional information on developing games, please see the following links: Developing Games Creating a DirectX game See also related videos here: Graphic Improvements in Windows 8 &amp;nbsp; </itunes:summary>
      <itunes:duration>474</itunes:duration>
      <link>http://channel9.msdn.com/Series/Introducing-Windows-8/Gaming</link>
      <pubDate>Thu, 25 Oct 2012 16:02:02 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/Introducing-Windows-8/Gaming</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming.mp3" expression="full" duration="474" fileSize="7588161" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming.mp4" expression="full" duration="474" fileSize="45184835" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming.webm" expression="full" duration="474" fileSize="16774022" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming.wma" expression="full" duration="474" fileSize="3841139" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming.wmv" expression="full" duration="474" fileSize="27689081" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming_high.mp4" expression="full" duration="474" fileSize="99000472" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming_mid.mp4" expression="full" duration="474" fileSize="68697926" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming_Source.wmv" expression="full" duration="474" fileSize="276586611" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming.ism/manifest" expression="full" duration="474" fileSize="7548" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/3fbf/d8166db3-2d63-4746-bb42-41a5531b3fbf/Gaming.wmv" length="27689081" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Roxanne Beaver</dc:creator>
      <itunes:author>Roxanne Beaver</itunes:author>
      <slash:comments>2</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/Introducing-Windows-8/Gaming/RSS</wfw:commentRss>
      <category>Gaming</category>
      <category>PC Gaming</category>
      <category>Windows 8</category>
      <category>Windows Store App</category>
    </item>
  <item>
      <title>Animations in a Windows Store Game using HTML and JavaScript</title>
      <description><![CDATA[<p>This screencast will look at creating Animations in your Windows Store Game using HTML and JavaScript. We do this in a fun, immersive way utilizing the free Windows 8 Game Kit (<a href="http://win8gamekit.codeplex.com">http://win8gamekit.codeplex.com</a>). Fore more videos check out <a href="http://blogs.msdn.com/davedev">http://blogs.msdn.com/davedev</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:c5bcbcbbe7034c99a9b4a0be00fdc2f8">]]></description>
      <comments>http://channel9.msdn.com/Shows/Devs4Devs/Animations-in-a-Windows-Store-Game-using-HTML-and-JavaScript</comments>
      <itunes:summary>This screencast will look at creating Animations in your Windows Store Game using HTML and JavaScript. We do this in a fun, immersive way utilizing the free Windows 8 Game Kit (http://win8gamekit.codeplex.com). Fore more videos check out http://blogs.msdn.com/davedev </itunes:summary>
      <itunes:duration>352</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Devs4Devs/Animations-in-a-Windows-Store-Game-using-HTML-and-JavaScript</link>
      <pubDate>Thu, 06 Sep 2012 09:05:39 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Devs4Devs/Animations-in-a-Windows-Store-Game-using-HTML-and-JavaScript</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript.mp3" expression="full" duration="352" fileSize="5646835" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript.mp4" expression="full" duration="352" fileSize="31414737" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript.webm" expression="full" duration="352" fileSize="10177621" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript.wma" expression="full" duration="352" fileSize="2861835" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript.wmv" expression="full" duration="352" fileSize="13501325" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript_high.mp4" expression="full" duration="352" fileSize="81480488" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript_mid.mp4" expression="full" duration="352" fileSize="53518045" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript_Source.wmv" expression="full" duration="352" fileSize="25879611" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript.ism/manifest" expression="full" duration="352" fileSize="6316" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/8e31/2c68d0aa-8dda-40ee-9647-12ae61f98e31/AnimationsWindowsStoreGameHTMLJavaScript.wmv" length="13501325" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Dave Isbitski</dc:creator>
      <itunes:author>Dave Isbitski</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Devs4Devs/Animations-in-a-Windows-Store-Game-using-HTML-and-JavaScript/RSS</wfw:commentRss>
      <category>Gaming</category>
      <category>HTML5</category>
      <category>JavaScript</category>
      <category>Windows 8</category>
    </item>
  <item>
      <title>Tools for creating a Windows Store Game using HTML and JavaScript</title>
      <description><![CDATA[<p>This screencast will share&nbsp;some free tools and tips I've picked up&nbsp;when creating my own Windows Store Games&nbsp;using HTML and JavaScript. We do this in a fun, immersive way utilizing the free Windows 8 Game Kit (<a href="http://win8gamekit.codeplex.com">http://win8gamekit.codeplex.com</a>). Fore more videos check out <a href="http://blogs.msdn.com/davedev">http://blogs.msdn.com/davedev</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:bdff1d17727d4b2c8faaa0be00fcaaba">]]></description>
      <comments>http://channel9.msdn.com/Shows/Devs4Devs/Tools-for-creating-a-Windows-Store-Game-using-HTML-and-JavaScript</comments>
      <itunes:summary>This screencast will share&amp;nbsp;some free tools and tips I&#39;ve picked up&amp;nbsp;when creating my own Windows Store Games&amp;nbsp;using HTML and JavaScript. We do this in a fun, immersive way utilizing the free Windows 8 Game Kit (http://win8gamekit.codeplex.com). Fore more videos check out http://blogs.msdn.com/davedev </itunes:summary>
      <itunes:duration>342</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Devs4Devs/Tools-for-creating-a-Windows-Store-Game-using-HTML-and-JavaScript</link>
      <pubDate>Mon, 03 Sep 2012 11:00:07 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Devs4Devs/Tools-for-creating-a-Windows-Store-Game-using-HTML-and-JavaScript</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript.mp3" expression="full" duration="342" fileSize="5485513" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript.mp4" expression="full" duration="342" fileSize="33264292" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript.webm" expression="full" duration="342" fileSize="10358403" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript.wma" expression="full" duration="342" fileSize="2780727" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript.wmv" expression="full" duration="342" fileSize="13184537" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript_high.mp4" expression="full" duration="342" fileSize="74352251" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript_mid.mp4" expression="full" duration="342" fileSize="52371832" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript_Source.wmv" expression="full" duration="342" fileSize="24295551" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript.ism/manifest" expression="full" duration="342" fileSize="6266" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/a958/d42c8a7a-ead6-46bc-8763-c00cba27a958/ToolsWindowsStoreGameHTMLJavaScript.wmv" length="13184537" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Dave Isbitski</dc:creator>
      <itunes:author>Dave Isbitski</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Devs4Devs/Tools-for-creating-a-Windows-Store-Game-using-HTML-and-JavaScript/RSS</wfw:commentRss>
      <category>Gaming</category>
      <category>HTML5</category>
      <category>JavaScript</category>
      <category>Windows 8</category>
    </item>
  <item>
      <title>Creating a Game Loop in a Windows Store Game using HTML and JavaScript</title>
      <description><![CDATA[<p>This screencast will show you how to&nbsp;create a simple Game Loop in&nbsp;your&nbsp;Windows Store&nbsp;Game using HTML and JavaScript. We do this in a fun, immersive way utilizing the free Windows 8 Game Kit (http://win8gamekit.codeplex.com). Fore more videos check out http://blogs.msdn.com/davedev</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:eaa58c05b4ea4742bffaa0be00fbceb0">]]></description>
      <comments>http://channel9.msdn.com/Shows/Devs4Devs/Creating-a-Game-Loop-in-a-Windows-Store-Game-using-HTML-and-JavaScript</comments>
      <itunes:summary>This screencast will show you how to&amp;nbsp;create a simple Game Loop in&amp;nbsp;your&amp;nbsp;Windows Store&amp;nbsp;Game using HTML and JavaScript. We do this in a fun, immersive way utilizing the free Windows 8 Game Kit (http://win8gamekit.codeplex.com). Fore more videos check out http://blogs.msdn.com/davedev </itunes:summary>
      <itunes:duration>368</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Devs4Devs/Creating-a-Game-Loop-in-a-Windows-Store-Game-using-HTML-and-JavaScript</link>
      <pubDate>Fri, 31 Aug 2012 16:32:40 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Devs4Devs/Creating-a-Game-Loop-in-a-Windows-Store-Game-using-HTML-and-JavaScript</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript.mp3" expression="full" duration="368" fileSize="5891361" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript.mp4" expression="full" duration="368" fileSize="28323326" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript.webm" expression="full" duration="368" fileSize="10125025" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript.wma" expression="full" duration="368" fileSize="2984999" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript.wmv" expression="full" duration="368" fileSize="13501415" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript_high.mp4" expression="full" duration="368" fileSize="77500204" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript_mid.mp4" expression="full" duration="368" fileSize="48349154" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript_Source.wmv" expression="full" duration="368" fileSize="22991701" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript.ism/manifest" expression="full" duration="368" fileSize="6296" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/a12c/e6f39046-9471-4560-b1c9-320e08b9a12c/GameLoopWindowsStoreGameHTMLJavaScript.wmv" length="13501415" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Dave Isbitski</dc:creator>
      <itunes:author>Dave Isbitski</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Devs4Devs/Creating-a-Game-Loop-in-a-Windows-Store-Game-using-HTML-and-JavaScript/RSS</wfw:commentRss>
      <category>Gaming</category>
      <category>HTML5</category>
      <category>JavaScript</category>
      <category>Windows 8</category>
    </item>
  <item>
      <title>Accessing the Accelerometer in a Windows Store App using HTML and JavaScript</title>
      <description><![CDATA[<p>This short screencast will show you how to access an Accelerometer sensor in your own Windows Store App using HTML and JavaScript. We do this in a fun, immersive way utilizing the free Windows 8 Game Kit (http://win8gamekit.codeplex.com). Fore more videos check out http://blogs.msdn.com/davedev</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:b3ffe84184a147088c70a0b8011937b1">]]></description>
      <comments>http://channel9.msdn.com/Shows/Devs4Devs/Accessing-the-Accelerometer-in-a-Windows-Store-App-using-HTML-and-JavaScript</comments>
      <itunes:summary>This short screencast will show you how to access an Accelerometer sensor in your own Windows Store App using HTML and JavaScript. We do this in a fun, immersive way utilizing the free Windows 8 Game Kit (http://win8gamekit.codeplex.com). Fore more videos check out http://blogs.msdn.com/davedev </itunes:summary>
      <itunes:duration>944</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Devs4Devs/Accessing-the-Accelerometer-in-a-Windows-Store-App-using-HTML-and-JavaScript</link>
      <pubDate>Tue, 28 Aug 2012 08:15:13 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Devs4Devs/Accessing-the-Accelerometer-in-a-Windows-Store-App-using-HTML-and-JavaScript</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS.mp3" expression="full" duration="944" fileSize="15109463" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS.mp4" expression="full" duration="944" fileSize="77192136" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS.webm" expression="full" duration="944" fileSize="26009421" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS.wma" expression="full" duration="944" fileSize="7644203" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS.wmv" expression="full" duration="944" fileSize="33291413" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS_high.mp4" expression="full" duration="944" fileSize="206856970" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS_mid.mp4" expression="full" duration="944" fileSize="133806585" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS_Source.wmv" expression="full" duration="944" fileSize="47747163" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS.ism/manifest" expression="full" duration="944" fileSize="6266" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/a18e/be6312ba-8954-4a98-be99-c7457c30a18e/AccessingAccelWindowsStoreAppHTMLJS.wmv" length="33291413" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Dave Isbitski</dc:creator>
      <itunes:author>Dave Isbitski</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Devs4Devs/Accessing-the-Accelerometer-in-a-Windows-Store-App-using-HTML-and-JavaScript/RSS</wfw:commentRss>
      <category>Gaming</category>
      <category>HTML5</category>
      <category>JavaScript</category>
      <category>Windows 8</category>
    </item>
  <item>
      <title>Adding Touch Support to a Windows Store App using HTML and JavaScript</title>
      <description><![CDATA[<p>This short screencast will show you how to add Touch Support in your own Windows Store App using HTML and JavaScript. We do this in a fun, immersive way utilizing the free Windows 8 Game Kit (http://win8gamekit.codeplex.com). Fore more videos check out http://blogs.msdn.com/davedev</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:e3083bc35b3348cdbcf5a0b800670274">]]></description>
      <comments>http://channel9.msdn.com/Shows/Devs4Devs/Adding-Touch-Support-to-a-Windows-Store-App-using-HTML-and-JavaScript</comments>
      <itunes:summary>This short screencast will show you how to add Touch Support in your own Windows Store App using HTML and JavaScript. We do this in a fun, immersive way utilizing the free Windows 8 Game Kit (http://win8gamekit.codeplex.com). Fore more videos check out http://blogs.msdn.com/davedev </itunes:summary>
      <itunes:duration>679</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Devs4Devs/Adding-Touch-Support-to-a-Windows-Store-App-using-HTML-and-JavaScript</link>
      <pubDate>Sat, 25 Aug 2012 12:40:26 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Devs4Devs/Adding-Touch-Support-to-a-Windows-Store-App-using-HTML-and-JavaScript</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript.mp3" expression="full" duration="679" fileSize="10872597" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript.mp4" expression="full" duration="679" fileSize="62787597" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript.webm" expression="full" duration="679" fileSize="20495668" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript.wma" expression="full" duration="679" fileSize="5505355" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript.wmv" expression="full" duration="679" fileSize="26901479" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript_high.mp4" expression="full" duration="679" fileSize="142863353" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript_mid.mp4" expression="full" duration="679" fileSize="99604091" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript_Source.wmv" expression="full" duration="679" fileSize="53385289" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript.ism/manifest" expression="full" duration="679" fileSize="6316" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/624a/165e9530-918b-4893-96db-dfc1df1b624a/AddingTouchWindowsStoreAppHTMLJavaScript.wmv" length="26901479" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Dave Isbitski</dc:creator>
      <itunes:author>Dave Isbitski</itunes:author>
      <slash:comments>2</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Devs4Devs/Adding-Touch-Support-to-a-Windows-Store-App-using-HTML-and-JavaScript/RSS</wfw:commentRss>
      <category>Gaming</category>
      <category>HTML5</category>
      <category>JavaScript</category>
      <category>Windows 8</category>
    </item>
  <item>
      <title>Show Us Your Tech: &#39;Softie Builds 737 Cockpit In His House</title>
      <description><![CDATA[ <p>Microsoft employees are often as passionate about their hobbies as they are with their work. Salvador Patuel is an&nbsp;ADM out of our UK office during the day, but he's a hobbiest commercial airline pilot at night. Salvador loves flying so much he decided to build an elaborate controller to make his flying a bit more realistic, except this&nbsp;controller includes a full flight deck. Salvador shot a short video tour of his pet project himself for&nbsp;Show Us Your Tech&nbsp;and he's answered some of my email questions below.</p><p><strong>Who are you? What do you do at Microsoft?<br></strong>My name is Salvador Alvarez Patuel, I am a Principal Application Development Manager (ADM). I am responsible for helping customers to develop better solutions using Microsoft technologies. I am currently based in the Microsoft campus in the United Kingdom.</p><p><strong>What’s your flight background that made you decide to do this? <br></strong>I have a private pilot license, obtained 15 years ago, always loved flying and had the opportunity to fly on several different birds, from single piston to multi turbo-prop engines. I have flown several jet planes on real simulators and I try to fly at least once a month on the B737 simulator at British Airways. I have used Microsoft Flight Simulator from the early 90s, always using different hardware devices to enhance my experience, to make it more real.</p><p><strong>How did&nbsp;you start this project? <br></strong>Well, my wife does not like me flying, as she is quite afraid of flying. When we got married she asked me to fly less hours so I tried to negotiate a win-win situation, I said to her “Ok, but can I develop my flight simulator in my studio?”, she obviously answered yes, thinking that I was going to buy some kind of joystick and a bigger monitor <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' />. I was aware that there was a small group of people around the world that have built some homemade cockpits in their houses, and started browsing for some ideas. At the beginning it was quite hard, as you can imagine there are not a lot of suppliers that offer affordable parts, so I decided to purchase what I could, and develop what it was missing.</p><p><strong>How long did this take you? <br></strong>I am not considered it done, but I started 3 years ago and started flying just a year ago. That means that it took me 2 years to get some decent parts ready to start experiencing the simulation!</p><p><strong>Where did you get all the hardware?<br></strong>As some parts where available, I try to leverage on affordable products, but sooner realized that I had to create some of the parts. The good thing is that the internet and the community provides most of the diagrams, with measures and materials so it wasn’t very difficult to get what I needed, but it was much harder to make those custom parts using new suppliers. For the structure, I have used <a href="http://www.flightdecksolutions.com">Flight Deck Solutions</a>, today they have a very rich set of parts but wasn’t like this when I first started, seems that the hobby is growing!. Some parts are actual real from airplanes, like the yoke which I rewire, add some potentiometers connected to a USB board to get the values from it. My latest addition, the throttles where custom made by a third party company called <a href="http://www.revolution-simproducts.com">Revolution Sim Products</a> as with my new baby boy I didn’t have time to build it myself.</p><p><strong>How did you get it all to work with FSX?<br></strong>That was the interesting part, as I am a software developer I had all the necessary skills. I started developing all the software by myself, reading real Boeing 737 manuals with more technical drawings than the space shuttle (trust me!) I coded the aircraft logic as I was just using the 737 models in flight simulator. I knew about <a href="http://www.schiratti.com/dowson.html">FSUIPC library</a>, written by Peter Dawson&nbsp;and I start interfacing my software with FSX using the available offsets. For the visual avionics I wrote components using DirectX, but rapidly found myself diverting a lot of energy getting the visual rights, and not enough time on the logic. Therefore, I decided to buy <a href="http://www.sim-avionics.com">a visual package from Sim Avionics</a>, at that time it was a very cheap option compared with <a href="http://www.projectmagenta.com/">Project Magenta</a>, one of the leaders on this area, now they are similar prices. I use my system logic to interact with Sim-Avionics using FSUIPC offsets, this is a very fast input/output model that allows me to link 3 computers in near real time. The other hard part was to write components that read USB values, from all my hardware. I have managed to connect everything together but trust me, it was quite hard</p><p><strong>What do you use for your primary displays?<br></strong>My first idea was to use a set of projectors, I bought one but I found that without a proper cockpit shell it didn’t look real, just a big image on the wall. So I decided to take a different approach, using several monitors. The problem was that a decent graphic accelerator card will have two outputs, and the performance degrades when you increase the resolution and detail, so I found another way to do it. I found the Matrox triple head device as an excellent alternative, as it takes the feed from one output and spread it across 3 screens, without degrading the performance, now it looks like I have proper cockpit windows!</p><p>As you may know, FSX is hungry for resources so I must admit that I have invested on the main machine that only runs FSX. It has an i7 processor, 8Gb DDR3 RAM , solid state drives and an nvidia GTX 570 graphic card. I am getting 40fps nearly full detail, sweet.</p><p><strong>How much of the controls actually work compared to just being “eye candy”?&nbsp;<br></strong>Practically everything I have works as the real plane, even the lights dimmer. The motored throttles have given it the final touch, as follows the autopilot logic that I have also coded. I have some dummy parts still, but just because I didn’t have the time, like the chronometer and the yaw dumper gauge. The other area where software is replacing hardware is the overhead panel and the pedestal area (with radio controls), I don’t have the space to do it but once I have more space I will definitely jump into them.</p><p><strong>What do you have left that you’d like to add?<br></strong>I want to add another computer to manage the CDU (as is quite intensive) and the lower display unit, just beside it. It will require a custom LCD screen (as the upper display unit that I already have) and some wiring. That will allow me to display secondary information, like tire pressure, doors, etc. Also I want to add the first officer side, not that I needed but it will look nicer. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p><strong>Do you think you could fly a real 737 </strong><strong>now after having this?</strong>&nbsp;&nbsp;<br>I already fly the real 737 simulators, therefore my answer will be “Probably yes”. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:76498881ba904dc38bdc9ea7015a32b2">]]></description>
      <comments>http://channel9.msdn.com/Series/Show-Us-Your-Tech/Softie-Builds-737-Cockpit-In-His-House</comments>
      <itunes:summary> Microsoft employees are often as passionate about their hobbies as they are with their work. Salvador Patuel is an&amp;nbsp;ADM out of our UK office during the day, but he&#39;s a hobbiest commercial airline pilot at night. Salvador loves flying so much he decided to build an elaborate controller to make his flying a bit more realistic, except this&amp;nbsp;controller includes a full flight deck. Salvador shot a short video tour of his pet project himself for&amp;nbsp;Show Us Your Tech&amp;nbsp;and he&#39;s answered some of my email questions below. Who are you? What do you do at Microsoft?My name is Salvador Alvarez Patuel, I am a Principal Application Development Manager (ADM). I am responsible for helping customers to develop better solutions using Microsoft technologies. I am currently based in the Microsoft campus in the United Kingdom. What’s your flight background that made you decide to do this? I have a private pilot license, obtained 15 years ago, always loved flying and had the opportunity to fly on several different birds, from single piston to multi turbo-prop engines. I have flown several jet planes on real simulators and I try to fly at least once a month on the B737 simulator at British Airways. I have used Microsoft Flight Simulator from the early 90s, always using different hardware devices to enhance my experience, to make it more real. How did&amp;nbsp;you start this project? Well, my wife does not like me flying, as she is quite afraid of flying. When we got married she asked me to fly less hours so I tried to negotiate a win-win situation, I said to her “Ok, but can I develop my flight simulator in my studio?”, she obviously answered yes, thinking that I was going to buy some kind of joystick and a bigger monitor . I was aware that there was a small group of people around the world that have built some homemade cockpits in their houses, and started browsing for some ideas. At the beginning it was quite hard, as you can imagine there are not a lot of suppliers that offer </itunes:summary>
      <itunes:duration>607</itunes:duration>
      <link>http://channel9.msdn.com/Series/Show-Us-Your-Tech/Softie-Builds-737-Cockpit-In-His-House</link>
      <pubDate>Tue, 26 Apr 2011 17:05:06 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/Show-Us-Your-Tech/Softie-Builds-737-Cockpit-In-His-House</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/32b2/76498881-ba90-4dc3-8bdc-9ea7015a32b2/MSFTFSXCockpit_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/32b2/76498881-ba90-4dc3-8bdc-9ea7015a32b2/MSFTFSXCockpit_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/32b2/76498881-ba90-4dc3-8bdc-9ea7015a32b2/MSFTFSXCockpit_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/32b2/76498881-ba90-4dc3-8bdc-9ea7015a32b2/MSFTFSXCockpit_2MB_ch9.wmv" expression="full" duration="607" fileSize="385027740" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/32b2/76498881-ba90-4dc3-8bdc-9ea7015a32b2/MSFTFSXCockpit_ch9.mp3" expression="full" duration="607" fileSize="4863939" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/32b2/76498881-ba90-4dc3-8bdc-9ea7015a32b2/MSFTFSXCockpit_ch9.wma" expression="full" duration="607" fileSize="4922527" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/32b2/76498881-ba90-4dc3-8bdc-9ea7015a32b2/MSFTFSXCockpit_ch9.wmv" expression="full" duration="607" fileSize="133977075" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/32b2/76498881-ba90-4dc3-8bdc-9ea7015a32b2/MSFTFSXCockpit_high_ch9.mp4" expression="full" duration="607" fileSize="266594172" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/32b2/76498881-ba90-4dc3-8bdc-9ea7015a32b2/MSFTFSXCockpit_low_ch9.mp4" expression="full" duration="607" fileSize="61418423" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/32b2/76498881-ba90-4dc3-8bdc-9ea7015a32b2/MSFTFSXCockpit.ism/manifest" expression="full" duration="607" fileSize="8458" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/32b2/76498881-ba90-4dc3-8bdc-9ea7015a32b2/MSFTFSXCockpit_ch9.wmv" length="133977075" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Larry Larsen</dc:creator>
      <itunes:author>Larry Larsen</itunes:author>
      <slash:comments>14</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/Show-Us-Your-Tech/Softie-Builds-737-Cockpit-In-His-House/RSS</wfw:commentRss>
      <category>DIY</category>
      <category>Flight Simulator</category>
      <category>Flight Sim</category>
      <category>Gaming</category>
      <category>Flight Simulator X</category>
    </item>
  <item>
      <title>Bytes by MSDN: Nickolas Landry and Rob Cameron on cool Apps for Windows Phone 7</title>
      <description><![CDATA[ <p>Don’t miss this dynamic interview with Nickolas Landry, Practice Manager for Infusion. Rob Cameron, Senior Architect Evangelist for Microsoft, has great dialog with Nick around enterprise mobility, location intelligence applications and Windows Phone 7. Nick’s team builds cool applications using Bing maps and is now bringing those apps to Windows Phone 7. And what does Nick do in his spare time? He’s also developing games for Windows Phone 7 and uploading them to Marketplace. Whether it’s locator, mobile or gaming applications you’re interested in, this is a good discussion to listen in on.</p><h3>About Nickolas Landry</h3><table border="0" cellspacing="2" cellpadding="0" width="100%"><tbody><tr align="left" valign="top"><td>&nbsp;</td><td>Nickolas Landry is a Principal Architect and Practice Manager in New York for Infusion Development, a Microsoft Gold Partner which offers quality software development services, developer training and consulting services for large corporations and agencies in the North America, the UK and Dubai (<a href="http://www.infusion.com/">www.infusion.com</a>). Known for his dynamic and engaging style, he is a frequent speaker at major software development conferences worldwide, a member of both the INETA and the MSDN Canada Speakers Bureaus, a Microsoft MVP on Device Application Development, and a former Microsoft Regional Director in Montreal. He is the Vice-President of IASA New York (<a href="http://www.iasahome.org/">www.iasahome.org</a>), and is a Founding Member of WWISA (<a href="http://www.wwisa.org/">www.wwisa.org</a>). His primary goal is to help businesses connect their information, systems, and people together in a seamless integration to achieve complete enterprise agility. Aside from his work in designing business solution architectures using .NET technologies, Nick provides mentoring services in architecture, design and .NET development, authors and teaches .NET classes, performs system audits, and profiles technologies for various enterprise scenarios. With over 17 years of professional experience – starting with Visual Basic 1.0 – and a career almost entirely dedicated to Microsoft technologies, Nick specializes in .NET mobility, Bing Maps, SOA, architecture &amp; design patterns, High-Performance Computing (HPC), game development with XNA, and smart clients. He wrote multiple articles for CODE Magazine and several .NET mobility courses for Microsoft, has been a technical editor for many books, and holds several professional certifications from Microsoft and IBM. Contact and blog: <a href="http://home.infusionblogs.com/nlandry">http://home.infusionblogs.com/nlandry</a>.</td></tr></tbody></table><p>&nbsp;</p><h3>About Rob Cameron</h3><table border="0" cellspacing="2" cellpadding="0" width="100%"><tbody><tr align="left" valign="top"><td>&nbsp;</td><td>Employed by Microsoft since 2001, Rob Cameron is an Industry Architect Evangelist with Microsoft Corporation based out of Atlanta, Georgia. As part of Microsoft's Communication Sector Developer &amp; Platform Evangelism team, Rob focuses on development tools and technologies focused on mobile devices, gaming, and embedded devices for telecommunications, cable, and media &amp; entertainment companies. Rob co-authored several titles including Building ASP.NET Server Controls, Pro ASP.NET 3.5 Server Controls and AJAX Components, Silverlight 2 Recipes, and most recently Silverlight 3 Recipes. He has a master's degree in information technology management and a bachelor's degree in computer science. Visit Rob's blog at <a href="http://blogs.msdn.com/RobCamer">http://blogs.msdn.com/RobCamer</a>.</td></tr></tbody></table><p>&nbsp;</p><h3>Nickolas Landry and Rob Cameron recommend you check out</h3><ul><li><a href="http://clk.atdmt.com/MRT/go/249592544/direct/01/">Download the Windows Phone 7 developer tools</a></li><li><a href="http://developer.windowsphone.com/Signup-Create-Account.aspx">Register for Marketplace and upload your app</a></li><li><a href="http://create.msdn.com/en-US/">App Hub Windows Phone 7 Developer Portal</a></li><li><a href="http://msdn.microsoft.com/en-us/gg243438.aspx">Learn more about Windows Phone 7 development with &quot;&quot;How Do I&quot;&quot; videos</a></li><li><a href="http://msdn.microsoft.com/en-us/wp7trainingcourse.aspx">Windows Phone 7 Developer Training Kit</a></li><li><a href="http://channel9.msdn.com/blogs/egibson/windows-phone-7-jump-start-session-1-of-12-introduction">Windows Phone 7 Jump Start video training</a></li><li><a href="http://www.silverlight.net/">Silverlight</a> </li><li><a href="http://www.microsoft.com/getsilverlight/Get-Started/Install/Default.aspx">Microsoft Silverlight 4 Download</a></li><li><a href="http://home.infusionblogs.com/nlandry/default.aspx">Nick's blog</a> </li><li><a href="http://www.infusion.com/Default.aspx">Infusion</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:4f2045510cea4490b50d9e8600ef616e">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Nickolas-Landry-and-Rob-Cameron-on-cool-Apps-for-Windows-Phone-7</comments>
      <itunes:summary> Don’t miss this dynamic interview with Nickolas Landry, Practice Manager for Infusion. Rob Cameron, Senior Architect Evangelist for Microsoft, has great dialog with Nick around enterprise mobility, location intelligence applications and Windows Phone 7. Nick’s team builds cool applications using Bing maps and is now bringing those apps to Windows Phone 7. And what does Nick do in his spare time? He’s also developing games for Windows Phone 7 and uploading them to Marketplace. Whether it’s locator, mobile or gaming applications you’re interested in, this is a good discussion to listen in on. About Nickolas Landry&amp;nbsp;Nickolas Landry is a Principal Architect and Practice Manager in New York for Infusion Development, a Microsoft Gold Partner which offers quality software development services, developer training and consulting services for large corporations and agencies in the North America, the UK and Dubai (www.infusion.com). Known for his dynamic and engaging style, he is a frequent speaker at major software development conferences worldwide, a member of both the INETA and the MSDN Canada Speakers Bureaus, a Microsoft MVP on Device Application Development, and a former Microsoft Regional Director in Montreal. He is the Vice-President of IASA New York (www.iasahome.org), and is a Founding Member of WWISA (www.wwisa.org). His primary goal is to help businesses connect their information, systems, and people together in a seamless integration to achieve complete enterprise agility. Aside from his work in designing business solution architectures using .NET technologies, Nick provides mentoring services in architecture, design and .NET development, authors and teaches .NET classes, performs system audits, and profiles technologies for various enterprise scenarios. With over 17 years of professional experience – starting with Visual Basic 1.0 – and a career almost entirely dedicated to Microsoft technologies, Nick specializes in .NET mobility, Bing Maps, SOA, architectu</itunes:summary>
      <itunes:duration>368</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Nickolas-Landry-and-Rob-Cameron-on-cool-Apps-for-Windows-Phone-7</link>
      <pubDate>Thu, 10 Feb 2011 14:57:01 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Nickolas-Landry-and-Rob-Cameron-on-cool-Apps-for-Windows-Phone-7</guid>
      <media:thumbnail url="http://files.ch9.ms/ch9/616e/4f204551-0cea-4490-b50d-9e8600ef616e/BytesbyMSDNNickolasLandry_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.ch9.ms/ch9/616e/4f204551-0cea-4490-b50d-9e8600ef616e/BytesbyMSDNNickolasLandry_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://files.ch9.ms/ch9/616e/4f204551-0cea-4490-b50d-9e8600ef616e/BytesbyMSDNNickolasLandry_320_ch9.jpg" height="240" width="320"></media:thumbnail>
      <media:thumbnail url="http://files.ch9.ms/ch9/616e/4f204551-0cea-4490-b50d-9e8600ef616e/BytesbyMSDNNickolasLandry_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:thumbnail url="http://files.ch9.ms/ch9/616e/4f204551-0cea-4490-b50d-9e8600ef616e/BytesbyMSDNNickolasLandry_85_ch9.jpg" height="64" width="85"></media:thumbnail>
      <media:group>
        <media:content url="http://files.ch9.ms/ch9/616e/4f204551-0cea-4490-b50d-9e8600ef616e/BytesbyMSDNNickolasLandry_2MB_ch9.wmv" expression="full" duration="368" fileSize="127247723" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://files.ch9.ms/ch9/616e/4f204551-0cea-4490-b50d-9e8600ef616e/BytesbyMSDNNickolasLandry_ch9.wmv" expression="full" duration="368" fileSize="67799639" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://files.ch9.ms/ch9/616e/4f204551-0cea-4490-b50d-9e8600ef616e/BytesbyMSDNNickolasLandry_high_ch9.mp4" expression="full" duration="368" fileSize="99815424" type="video/mp4" medium="video"></media:content>
        <media:content url="http://files.ch9.ms/ch9/616e/4f204551-0cea-4490-b50d-9e8600ef616e/BytesbyMSDNNickolasLandry_low_ch9.mp4" expression="full" duration="368" fileSize="32841858" type="video/mp4" medium="video"></media:content>
        <media:content url="http://files.ch9.ms/ch9/616e/4f204551-0cea-4490-b50d-9e8600ef616e/BytesbyMSDNNickolasLandry_Zune_ch9.wmv" expression="full" duration="368" fileSize="52215694" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://files.ch9.ms/ch9/616e/4f204551-0cea-4490-b50d-9e8600ef616e/BytesbyMSDNNickolasLandry_ch9.wmv" length="67799639" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Bytes by MSDN</dc:creator>
      <itunes:author>Bytes by MSDN</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Nickolas-Landry-and-Rob-Cameron-on-cool-Apps-for-Windows-Phone-7/RSS</wfw:commentRss>
      <category>Bytes by MSDN</category>
      <category>Gaming</category>
      <category>Rob Cameron</category>
      <category>Windows Phone 7</category>
      <category>Apps</category>
      <category>Application</category>
    </item>
  <item>
      <title>CES 2011: Beer, gaming rigs, and 3D everything with NVIDIA</title>
      <description><![CDATA[ <p>David Ragones, Director of Marketing at <a href="http://www.nvidia.com" target="_blank">NVIDIA</a>, took Ben through their booth to show all of the amazing things that you can do with NVIDIA’s new GPU lineup while at CES.&nbsp;Not only did he show Ben the 3D video wall that was playing 500 Windows-only 3D games, but he also poured him a cold one off of the liquid cooled, multi-GPU packing “Kegputer” gaming rig. </p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:0283922084c64edf824a9e6500534920">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Windows-Blog/Windows-at-CES-2011-NVIDIA</comments>
      <itunes:summary> David Ragones, Director of Marketing at NVIDIA, took Ben through their booth to show all of the amazing things that you can do with NVIDIA’s new GPU lineup while at CES.&amp;nbsp;Not only did he show Ben the 3D video wall that was playing 500 Windows-only 3D games, but he also poured him a cold one off of the liquid cooled, multi-GPU packing “Kegputer” gaming rig.  </itunes:summary>
      <itunes:duration>277</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Windows-Blog/Windows-at-CES-2011-NVIDIA</link>
      <pubDate>Sat, 08 Jan 2011 05:49:54 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Windows-Blog/Windows-at-CES-2011-NVIDIA</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA_custom_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA_2MB_ch9.wmv" expression="full" duration="277" fileSize="125876324" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA_ch9.mp3" expression="full" duration="277" fileSize="2220575" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA_ch9.wma" expression="full" duration="277" fileSize="2248967" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA_ch9.wmv" expression="full" duration="277" fileSize="60951095" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA_high_ch9.mp4" expression="full" duration="277" fileSize="74539109" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA_low_ch9.mp4" expression="full" duration="277" fileSize="28068079" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA_Zune_ch9.wmv" expression="full" duration="277" fileSize="32151150" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA.ism/manifest" expression="full" duration="277" fileSize="8554" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/4920/02839220-84C6-4EDF-824A-9E6500534920/WindowsCES2011NVIDIA_ch9.wmv" length="60951095" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Brandon LeBlanc</dc:creator>
      <itunes:author>Brandon LeBlanc</itunes:author>
      <slash:comments>3</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Windows-Blog/Windows-at-CES-2011-NVIDIA/RSS</wfw:commentRss>
      <category>CES</category>
      <category>Gaming</category>
      <category>PC</category>
      <category>Windows 7</category>
      <category>Windows7</category>
      <category>NVIDIA</category>
    </item>
  <item>
      <title>Halo Madness Starts in NYC</title>
      <description><![CDATA[ <p>The launch of the next installment in the popular Halo series is almost upon us. At 12:10 AM on Tuesday, September 14th, millions of fans will at last be able to purchase Halo:Reach, the prequel to the trilogy of Halo games already released. But for those fans who live in New York City, there’s an event that can’t be missed: the Best Buy Theater in Times Square will be hosting a marquee event where fans will get to play the game just before it goes on sale, meet the creators of “Halo,” win Halo-themed prizes and experience a “surprise” musical performance. </p><p>West coast fans won’t be missing out though – at the Music Project | Science Fiction Museum and Hall of Fame in Seattle, Bungie developers will greet fans on Sept. 13th during the countdown to launch. There will also be prizes and fans will get to play the game early there, too. </p><p>Even if you’re not located in one of these cities, a number of retailers will be holding their own celebrations, including Best Buy, GameStop, Wal-Mart, Toys”R”Us and many others, so check out your own local shops for details. </p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:391ff7029d1743dab5709e0e00fd1a41">]]></description>
      <comments>http://channel9.msdn.com/Blogs/coolstuff/Halo-Madness-Starts-in-NYC</comments>
      <itunes:summary> The launch of the next installment in the popular Halo series is almost upon us. At 12:10 AM on Tuesday, September 14th, millions of fans will at last be able to purchase Halo:Reach, the prequel to the trilogy of Halo games already released. But for those fans who live in New York City, there’s an event that can’t be missed: the Best Buy Theater in Times Square will be hosting a marquee event where fans will get to play the game just before it goes on sale, meet the creators of “Halo,” win Halo-themed prizes and experience a “surprise” musical performance.  West coast fans won’t be missing out though – at the Music Project | Science Fiction Museum and Hall of Fame in Seattle, Bungie developers will greet fans on Sept. 13th during the countdown to launch. There will also be prizes and fans will get to play the game early there, too.  Even if you’re not located in one of these cities, a number of retailers will be holding their own celebrations, including Best Buy, GameStop, Wal-Mart, Toys”R”Us and many others, so check out your own local shops for details.  </itunes:summary>
      <link>http://channel9.msdn.com/Blogs/coolstuff/Halo-Madness-Starts-in-NYC</link>
      <pubDate>Wed, 08 Sep 2010 15:21:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/coolstuff/Halo-Madness-Starts-in-NYC</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/on10_70529_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/on10_70529_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/320/on10_1297c387-b9f1-4bd6-bf26-ab02a7a14551.jpg" height="336" width="512"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/85/on10_4322b131-9f04-4b35-9354-c29a769f09f7.jpg" height="64" width="85"></media:thumbnail>      
      <dc:creator>Sarah Perez</dc:creator>
      <itunes:author>Sarah Perez</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/coolstuff/Halo-Madness-Starts-in-NYC/RSS</wfw:commentRss>
      <category>Gaming</category>
      <category>Halo</category>
    </item>
  <item>
      <title>Flight Simulator Returns!</title>
      <description><![CDATA[
<p>Microsoft’s classic game Flight Simulator is returning 28 years after its debut, then called “Microsoft Flight Simulator 1.0.” Today, it will just be known as “Microsoft Flight.” In the new vision, Flight will reinvent itself for the era of modern PC gaming,
 inviting both long-time fans and new users to “experience the magic of flight,” reads the teaser on the website at
<a shape="rect" href="http://www.microsoft.com/games/flight" shape="rect">www.microsoft.com/games/flight</a>.
</p>
<p>The game is still in development, but an alpha version is almost ready for internal testing, Kevin Unangst, a senior director in Microsoft's game unit, recently told CNET News. But don’t expect a public beta this year, he said.
</p>
<p>Details on gameplay are few, as are screenshots, but the “Flight” website does have
<a shape="rect" href="http://www.microsoft.com/games/flight/" shape="rect">a&nbsp; teaser video</a> available which shows a prop plane soaring over sparkling water as the sun rises, casting everything with a an orange-ish glow.
</p>
<p>“Flight” isn’t the only game to be resurrected. Another classic, “Age of Empires,” is also returning in a new online version and
<a shape="rect" href="http://www.ageofempiresonline.com/" shape="rect">it is taking sign ups</a> for its beta launching in 2010. According to the news release, Age of Empires invites players to watch their own Greek civilization grow from village to empire,
 while embarking on quests and adventures, either solo or with friends. </p>
<p>You can learn more about all these games and other new releases at microsoft.com/games.
</p>
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:7959bea54ef9456b9dde9dec0026a538">]]></description>
      <comments>http://channel9.msdn.com/Blogs/coolstuff/Flight-Simulator-Returns</comments>
      <itunes:summary>
Microsoft’s classic game Flight Simulator is returning 28 years after its debut, then called “Microsoft Flight Simulator 1.0.” Today, it will just be known as “Microsoft Flight.” In the new vision, Flight will reinvent itself for the era of modern PC gaming,
 inviting both long-time fans and new users to “experience the magic of flight,” reads the teaser on the website at
www.microsoft.com/games/flight.
 
The game is still in development, but an alpha version is almost ready for internal testing, Kevin Unangst, a senior director in Microsoft&#39;s game unit, recently told CNET News. But don’t expect a public beta this year, he said.
 
Details on gameplay are few, as are screenshots, but the “Flight” website does have
a&amp;nbsp; teaser video available which shows a prop plane soaring over sparkling water as the sun rises, casting everything with a an orange-ish glow.
 
“Flight” isn’t the only game to be resurrected. Another classic, “Age of Empires,” is also returning in a new online version and
it is taking sign ups for its beta launching in 2010. According to the news release, Age of Empires invites players to watch their own Greek civilization grow from village to empire,
 while embarking on quests and adventures, either solo or with friends.  
You can learn more about all these games and other new releases at microsoft.com/games.
 
</itunes:summary>
      <link>http://channel9.msdn.com/Blogs/coolstuff/Flight-Simulator-Returns</link>
      <pubDate>Fri, 20 Aug 2010 13:50:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/coolstuff/Flight-Simulator-Returns</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/320/on10_060d9d5e-d284-4eb9-9c91-3c5abc867504.jpg" height="0" width="0"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/85/on10_7b7ad380-8f6d-4eb3-a95c-4af80b7a050e.jpg" height="64" width="85"></media:thumbnail>      
      <dc:creator>Sarah Perez</dc:creator>
      <itunes:author>Sarah Perez</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/coolstuff/Flight-Simulator-Returns/RSS</wfw:commentRss>
      <category>Games</category>
      <category>Gaming</category>
      <category>game</category>
    </item>
  <item>
      <title>Settlers of Catan on Microsoft Surface</title>
      <description><![CDATA[ <p>The popular “Settlers of Catan” board game has been transported to Microsoft Surface, according to <a shape="rect" href="http://blog.seattlepi.com/microsoft/archives/216807.asp?source=rss" shape="rect">SeattlePi</a>. The game, which typically involves a physical board, die and cards, has been made entirely digital thanks to Vectorform, a multi-platform design company and Microsoft partner. Reporter Nick Eaton got to see the Surface-enabled game up close and personal in Seattle, after stopping by the Vectorform offices for a demo. </p><p>The traditional analog elements of the game are now touchable, interactive graphics appearing on the Surface computer’s screen. And the game also hooks up to the Web, allowing for gamer accounts, leader boards and more. Users can even play each other over the Internet. </p><p>To see what Catan looks like on Surface, check out this <a shape="rect" href="http://www.seattlepi.com/photos/gallery.asp?SubID=5959&amp;page=1&amp;GTitle=%27Settlers%20of%20Catan%27%20for%20Microsoft%20Surface&amp;pubdate=7/28/2010" shape="rect">photo gallery</a> or this <a shape="rect" href="http://www.youtube.com/watch?v=sdUFT01vzyI&amp;feature=player_embedded" shape="rect">YouTube video</a>. It definitely looks like fun!</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:6a16298a400848fea9399e0e007a9099">]]></description>
      <comments>http://channel9.msdn.com/Blogs/coolstuff/Settlers-of-Catan-on-Microsoft-Surface</comments>
      <itunes:summary> The popular “Settlers of Catan” board game has been transported to Microsoft Surface, according to SeattlePi. The game, which typically involves a physical board, die and cards, has been made entirely digital thanks to Vectorform, a multi-platform design company and Microsoft partner. Reporter Nick Eaton got to see the Surface-enabled game up close and personal in Seattle, after stopping by the Vectorform offices for a demo.  The traditional analog elements of the game are now touchable, interactive graphics appearing on the Surface computer’s screen. And the game also hooks up to the Web, allowing for gamer accounts, leader boards and more. Users can even play each other over the Internet.  To see what Catan looks like on Surface, check out this photo gallery or this YouTube video. It definitely looks like fun! </itunes:summary>
      <link>http://channel9.msdn.com/Blogs/coolstuff/Settlers-of-Catan-on-Microsoft-Surface</link>
      <pubDate>Wed, 11 Aug 2010 13:40:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/coolstuff/Settlers-of-Catan-on-Microsoft-Surface</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/320/on10_e8c913fc-5b9b-4eca-b260-45b5408e376a.jpg" height="0" width="0"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/85/on10_47cc8b7f-b096-43e5-913f-61666fecf59c.jpg" height="64" width="85"></media:thumbnail>      
      <dc:creator>Sarah Perez</dc:creator>
      <itunes:author>Sarah Perez</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/coolstuff/Settlers-of-Catan-on-Microsoft-Surface/RSS</wfw:commentRss>
      <category>Games</category>
      <category>Gaming</category>
      <category>Surface</category>
      <category>Surface Computer</category>
      <category>surface computing</category>
    </item>
  <item>
      <title>Bing Gets Games</title>
      <description><![CDATA[ <p>As promised, the Bing “<a shape="rect" href="http://www.bing.com/community/blogs/search/archive/2010/06/22/a-new-entertainment-experience-for-bing.aspx" shape="rect">entertainment experience</a>” is getting into gear with updates for music, tv, movies, and now more games, too. According to <a shape="rect" href="http://www.bing.com/community/blogs/search/archive/2010/07/27/new-games-come-to-bing.aspx" shape="rect">this post</a> on the Bing blog, those searching for free games on Bing have several new options, including <a shape="rect" href="http://www.bing.com/games/online/gb/bing/belles/default/en-us?q=belle's&#43;beauty&#43;boutique&amp;form=DTPGAA" shape="rect">Belle's Beauty Boutique</a>, <a shape="rect" href="http://www.bing.com/games/online/gb/bing/carnib/default/en-us?q=Carniball&amp;form=DTPGAA" shape="rect">Carniball</a>,<a shape="rect" href="http://www.bing.com/games/online/gb/bing/fispsp/default/en-us?q=Fishdom&#43;Spooky&#43;Splash&amp;form=DTPGAA" shape="rect">Fishdom Spooky Splash</a>, <a shape="rect" href="http://www.bing.com/games/online/gb/bing/jigsaw/default/en-us?q=Jigsaw&amp;form=DTPGAA" shape="rect">Jigsaw</a>, <a shape="rect" href="http://www.bing.com/games/online/gb/bing/pool/default/en-us?q=8&#43;ball&#43;champion&amp;form=DTPGAA" shape="rect">8 Ball Champion</a>, <a shape="rect" href="http://www.bing.com/games/online/gb/bing/pyrsol/default/en-us?q=Pyramid&#43;Solitaire&amp;form=DTPGAA" shape="rect">Pyramid Solitaire</a> and <a shape="rect" href="http://www.bing.com/games/online/gb/bing/garsca/default/en-us?q=Gardenscapes&amp;form=DTPGAA" shape="rect">Gardenscapes</a>. </p><p>But don’t worry if you’re not sure what game to search for by name – I discovered that you can simply type in “games” into Bing and the top result will link you directly to the Games themselves (click either the link’s heading or just “Play Now.”) Here you’ll find all the games housed on Bing, like the ever-popular Bejeweled, for example, and Plants vs. Zombies, just to name a couple. </p><p>The <a shape="rect" href="http://www.bing.com/games" shape="rect">bing.com/games</a> site also groups games into categories like “most popular,” “action favorites,” “puzzle favorites,” “word favorites,” and more, so you can find just the sort of game you’re looking for, even&nbsp; if you don’t know what it’s called. </p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:34c466e7e815471e87469e0e007a3880">]]></description>
      <comments>http://channel9.msdn.com/Blogs/coolstuff/Bing-Gets-Games</comments>
      <itunes:summary> As promised, the Bing “entertainment experience” is getting into gear with updates for music, tv, movies, and now more games, too. According to this post on the Bing blog, those searching for free games on Bing have several new options, including Belle&#39;s Beauty Boutique, Carniball,Fishdom Spooky Splash, Jigsaw, 8 Ball Champion, Pyramid Solitaire and Gardenscapes.  But don’t worry if you’re not sure what game to search for by name – I discovered that you can simply type in “games” into Bing and the top result will link you directly to the Games themselves (click either the link’s heading or just “Play Now.”) Here you’ll find all the games housed on Bing, like the ever-popular Bejeweled, for example, and Plants vs. Zombies, just to name a couple.  The bing.com/games site also groups games into categories like “most popular,” “action favorites,” “puzzle favorites,” “word favorites,” and more, so you can find just the sort of game you’re looking for, even&amp;nbsp; if you don’t know what it’s called.  </itunes:summary>
      <link>http://channel9.msdn.com/Blogs/coolstuff/Bing-Gets-Games</link>
      <pubDate>Wed, 28 Jul 2010 15:52:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/coolstuff/Bing-Gets-Games</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/320/on10_c6b1110f-0e12-40ba-a6fe-64e5c22ec9fc.jpg" height="0" width="0"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/85/on10_5eab6cb2-2841-4c15-acf1-8f1351b082d7.jpg" height="64" width="85"></media:thumbnail>      
      <dc:creator>Sarah Perez</dc:creator>
      <itunes:author>Sarah Perez</itunes:author>
      <slash:comments>2</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/coolstuff/Bing-Gets-Games/RSS</wfw:commentRss>
      <category>Bing</category>
      <category>Games</category>
      <category>Gaming</category>
      <category>casual games</category>
      <category>game</category>
    </item>
  <item>
      <title>Bing Gets into Entertainment with Music, TV, Movies and Games</title>
      <description><![CDATA[ <p>Bing’s <a shape="rect" href="http://www.bing.com/community/blogs/search/archive/2010/06/22/a-new-entertainment-experience-for-bing.aspx" shape="rect">latest update</a> expands the search service from being a simple “decision engine” to being a Web destination in and of itself. With the new upgrade, rolling out now, Bing has added an entertainment vertical featuring music, TV shows, movies and games. You can land on Bing’s new entertainment offering via a traditional search or you can browse through them at <a shape="rect" href="http://www.bing.com/entertainment" shape="rect">www.bing.com/entertainment</a>. </p><p>In the music section, you can find lyrics, photos, videos and tour dates for your favorite artist or band, but even more notable, you can <em>stream music</em>. By integrating Zune into Bing, there’s access to over 5 million songs available for your listening pleasure. And if you want to buy a track, Bing points you to Zune, iTunes and Amazon.com’s MP3 store.</p><p>A second integration from Microsoft Games provides access to detailed information on over 35,000 games including reviews, cheats, walkthroughs and more. Plus, almost 100 casual games are available to play right from within Bing. Just search for a game and then click the “Play Now” button that appears under the listing. </p><p><a shape="rect" href="http://on10.net/Link/22c6be14-0b99-49de-959d-93f9ef3ff2c8/" shape="rect"><img width="345" height="247" width="345" height="247" title="5270.bejeweled2_thumb_4A0AFE7C" alt="5270.bejeweled2_thumb_4A0AFE7C" src="http://on10.net/Link/64e49e8a-dd1b-4a81-a017-a13267104a57/" border="0"></a></p><p>Finally, there’s video. Bing now offers thousands of episodes from 1500&#43; shows, thanks to new partnerships with Hulu, Viacom and CBS. This “Bing TV” section will serve as a one-stop-shop for online TV viewing, offering everything from clips to full episodes and even local listings. </p><p>Movies aren’t left out either: reviews from critics, Facebook and Twitter sentiment, and other info from Bing Maps that helps you navigate to your favorite theater are included here. </p><p>Everything except the TV listings should be <a shape="rect" href="http://www.bing.com/entertainment" shape="rect">live now</a> – those will come over the next couple of weeks. Zune music playback is also ramping up now – more songs will be available in a few days. </p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:9820510ed3f34069b0c69e0e00240cc4">]]></description>
      <comments>http://channel9.msdn.com/Blogs/coolstuff/Bing-Gets-into-Entertainment-with-Music-TV-Movies-and-Games</comments>
      <itunes:summary> Bing’s latest update expands the search service from being a simple “decision engine” to being a Web destination in and of itself. With the new upgrade, rolling out now, Bing has added an entertainment vertical featuring music, TV shows, movies and games. You can land on Bing’s new entertainment offering via a traditional search or you can browse through them at www.bing.com/entertainment.  In the music section, you can find lyrics, photos, videos and tour dates for your favorite artist or band, but even more notable, you can stream music. By integrating Zune into Bing, there’s access to over 5 million songs available for your listening pleasure. And if you want to buy a track, Bing points you to Zune, iTunes and Amazon.com’s MP3 store. A second integration from Microsoft Games provides access to detailed information on over 35,000 games including reviews, cheats, walkthroughs and more. Plus, almost 100 casual games are available to play right from within Bing. Just search for a game and then click the “Play Now” button that appears under the listing.   Finally, there’s video. Bing now offers thousands of episodes from 1500&amp;#43; shows, thanks to new partnerships with Hulu, Viacom and CBS. This “Bing TV” section will serve as a one-stop-shop for online TV viewing, offering everything from clips to full episodes and even local listings.  Movies aren’t left out either: reviews from critics, Facebook and Twitter sentiment, and other info from Bing Maps that helps you navigate to your favorite theater are included here.  Everything except the TV listings should be live now – those will come over the next couple of weeks. Zune music playback is also ramping up now – more songs will be available in a few days.  </itunes:summary>
      <link>http://channel9.msdn.com/Blogs/coolstuff/Bing-Gets-into-Entertainment-with-Music-TV-Movies-and-Games</link>
      <pubDate>Wed, 23 Jun 2010 14:34:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/coolstuff/Bing-Gets-into-Entertainment-with-Music-TV-Movies-and-Games</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/320/on10_2b34aecd-1fc7-47e0-bd59-d3ea86ac084a.jpg" height="0" width="0"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/85/on10_42136e7f-f0e8-4172-98df-0d54768516d3.jpg" height="64" width="85"></media:thumbnail>      
      <dc:creator>Sarah Perez</dc:creator>
      <itunes:author>Sarah Perez</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/coolstuff/Bing-Gets-into-Entertainment-with-Music-TV-Movies-and-Games/RSS</wfw:commentRss>
      <category>Bing</category>
      <category>Bing Maps</category>
      <category>Gaming</category>
      <category>TV</category>
      <category>Movies</category>
    </item>
  <item>
      <title>Creating a Shuffleboard Game using Silverlight</title>
      <description><![CDATA[<p>In this walkthrough, we will create a <a href="http://en.wikipedia.org/wiki/Table_shuffleboard">
table shuffleboard</a> style game for Windows Phone 7 using Silverlight. Many bars feature these long wooden table games, in which players slide metal pucks down the length of the table, attempting to get as close as possible to the far end without sliding
 off the edge.</p>

<h3><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/6378.image_5F00_28FB581F.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/2086.image_5F00_thumb_5F00_2F422EAD.png" width="223" height="435"></a>
 Multi-Targeting</h3>
<p>Windows Phone 7 uses a version of Silverlight 3 with a few bonus features. Because this version of Silverlight is so close to the Web version of Silverlight 3, we'll take the approach of
<i>Multitargeting</i> a solution for both platforms. To do so, start with a Silverlight 3 (web) application template, and then add in a Windows Phone project with linked files that re-use the Silverlight 3 solution. This allows us to deploy to many different
 platforms using the same code base.</p>
<p>Let's get started by creating our Solution in this way.</p>
<h3>Creating the Solution and MainPage</h3>
<ol>
<li>In Expression Blend 4, create a new Silverlight Application &#43; Website template named Shuffleboard. Be sure to select “3.0” from the Version dropdown, as this is what is supported by Windows Phone (in a little bit we'll add in the Windows Phone project template
 as well). <br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/4721.image_5F00_740E52E1.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/3731.image_5F00_thumb_5F00_2599C077.png" width="465" height="427"></a>
</li><li>In the Objects and Timeline Panel, select the main UserControl and set its Width to 480 and its Height to 800. This is the size of a Windows Phone UI in Portrait mode.
</li><li>Select the LayoutRoot Grid and set its Width to 480 and its Height to 800. </li><li>For games, a Canvas layout container is better than a Grid, so let's change the LayoutRoot container type. Right-click LayoutRoot and select Change Layout Type/Canvas.
<br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/0820.image_5F00_57252E0C.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/8865.image_5F00_thumb_5F00_5DD8378F.png" width="299" height="304"></a>
</li><li>Since some parts of our UI can appear outside of the game area, we want to add a Clip to this main canvas so that the user does not see these outside elements. Add the following just under the LayoutRoot Canvas:
<br>
This XAML is snippet “<b>MainPage Clip</b>” inside snippets.txt.
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">Canvas.Clip</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">RectangleGeometry</span> <span class="attr">Rect</span><span class="kwrd">=&quot;0,0,480,800&quot;</span><span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">Canvas.Clip</span><span class="kwrd">&gt;</span></pre>
<style type="text/css">
<!--
.csharpcode, .csharpcode 
 {font-size:small;
 color:black;
 font-family:consolas,"Courier New",courier,monospace;
 background-color:#ffffff}
.csharpcode 
 {margin:0em}
.csharpcode .rem
 {color:#008000}
.csharpcode .kwrd
 {color:#0000ff}
.csharpcode .str
 {color:#006080}
.csharpcode .op
 {color:#0000c0}
.csharpcode .preproc
 {color:#cc6633}
.csharpcode .asp
 {background-color:#ffff00}
.csharpcode .html
 {color:#800000}
.csharpcode .attr
 {color:#ff0000}
.csharpcode .alt
 {background-color:#f4f4f4;
 width:100%;
 margin:0em}
.csharpcode .lnum
 {color:#606060}
-->
</style></li><li>We'll be using some pre-built Behaviors that make it easy to introduce physics into Silverlight using the Farseer Physics Library. Right-click the Silverlight project and select Add Reference. Select the following assemblies, located in the sample download:
<br>
<br>
\ShuffleBoard\Bin\Debug\FarseerPhysics.dll <br>
\ShuffleBoard\Bin\Debug\Spritehand.FarseerHelper.dll <br>
\ShuffleBoard\Bin\Debug\Spritehand.PhysicsBehaviors.dll <br>
<br>
<strong>NOTE: </strong>To learn more about the Physics Helper Library, visit <a href="http://physicshelper.codeplex.com">
http://physicshelper.codeplex.com</a> </li></ol>
<p align="center"><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384">
<param name="source" value="http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap" />
<param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/8/9/1/6/5/5/ShuffleboardPart1_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://ecn.channel9.msdn.com/o9/ch9/8/9/1/6/5/5/ShuffleboardPart1_512_ch9.png, postid=556198" />
<param name="background" value="#00FFFFFF" />
<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" />
</a>
</object></p>
<h3>Creating the Game User Control</h3>
<p>Next we'll create a separate user control that will contain the core game logic. By creating a separate user control, we can easily target different platforms by placing the user control inside different MainPage elements.
</p>
<ol>
<li>Right-click the Shuffleboard Silverlight project and select Add New Item. Select UserControl and name the control “ucMainGame”.
<br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/0523.image_5F00_127893CB.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/7701.image_5F00_thumb_5F00_1616AEA8.png" width="299" height="324"></a>
</li><li>Change the LayoutRoot element from a Grid to a Canvas. </li><li>Set the Width to 480 and the Height to 800 for both the UserControl and LayoutRoot Canvas elements.
</li><li>Set the Background color to Black for the LayoutRoot Canvas. </li><li>Build the project by pressing Ctrl&#43;Shift&#43;B. </li><li>Back on MainPage, add an instance of ucMainGame to the page by going to the Assets Panel and expanding Controls/All. Drag an instance of ucMainGame to the artboard.
<br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/1513.image_5F00_5C939EB0.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/6305.image_5F00_thumb_5F00_432B9B76.png" width="496" height="296"></a>
</li><li>Rename the ucMainGame control to ucMainGame1. </li><li>Set the Left and Top properties of ucMainGame1 to 0. </li></ol>
<h3>Creating the Table</h3>
<p>We'll use a pre-rendered PNG image for the shuffleboard table.</p>
<ol>
<li>Create a new subfolder in the Silverlight project named “images”. </li><li>Add the following JPG image into the new images subfolder, located in the sample download:
<br>
\ShuffleBoard\images\shuffleboardTable.jpg </li><li>Open the ucMainGame user control. </li><li>Insert a new Canvas element named cnvTable, and set the following attributes:
<ol>
<li>Width = 480 </li><li>Height = 800 </li><li>Left = 0 </li><li>Top = 0 </li></ol>
</li><li>In the Assets Panel, expand the Behaviors category and drag a PhysicsControllerBehavior on the cnvTable. This behavior introduces the core physics simulation into the game. Set the properties of the Physics Contoller as follows (this turns of gravity and
 sets some other physics parms): <br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/1512.image_5F00_14D215C9.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/7701.image_5F00_thumb_5F00_49727204.png" width="333" height="293"></a>
</li><li>Inside the cnvTable Canvas, add a second Canvas named cnvTableInner, which will hold the table image. Set the following properties on cnvTableInner:
<ol>
<li>Width = 360 </li><li>Height = 1077 </li><li>Left = 60 </li><li>Top = -277 </li></ol>
</li><li>Drag the shuffleboardTable.jpg image from the Projects Panel into cnvTableInner. Set the following properties on the image:
<ol>
<li>Width = 360 </li><li>Height = 1077 </li><li>Left = 0 </li><li>Top = 0 </li></ol>
</li><li>The Objects and Timeline Panel should look like so: <br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/0042.image_5F00_223828CF.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/8468.image_5F00_thumb_5F00_0144B628.png" width="278" height="221"></a>
</li><li>We will need to detect when a puck hits the edge of the table and “falls off.” Let's add in some Rectangle elements and add Physics Behaviors to them.
</li><li>Add a new Rectangle named rectSensorLeft and size it so that it covers the entire left side of the table. Set the following properties:<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/0042.image_5F00_6EFBEF65.png"><img title="image" border="0" alt="image" align="right" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/7701.image_5F00_thumb_5F00_5FE5108B.png" width="122" height="240"></a>
<ol>
<li>Width = 60 </li><li>Height = 1190 </li><li>Left = -40 </li><li>Top = -334 </li><li>Opacity = 20% </li></ol>
</li><li>Drag a PhysicsObjectBehavior from the Assets Panel Behaviors onto rectSensorLeft, and then set its IsStatic property to true.
</li><li>Add three more Rectangles by copying rectSensorLeft, so that they surround the borders of the table:
<ol>
<li>rectSensorRight </li><li>rectSensorTop </li><li>rectSensorBottom </li></ol>
</li><li>Your artboard should look similar to the following: <br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/8054.image_5F00_467D0D51.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/2110.image_5F00_thumb_5F00_4C57B0EA.png" width="195" height="412"></a>
</li><li>Now we'll add in the goal Rectangles at the end of the table. These will be used to determine the number of points a puck receives. Draw out three Rectangles that cover the width of the board and are 100 pixels high. Name these rectPoints3, rectPoints2,
 and rectPoints1. Set their Stroke to Red and their Fill to No brush. </li><li>Add a TextBlock element inside each Rectangle to depict the points. Set the text properties to 3, 2, and 1 so that the artboard looks similar to the following:
<br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/7416.image_5F00_647B1B45.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/3603.image_5F00_thumb_5F00_099865B2.png" width="430" height="353"></a>
</li><li>We'll also need a Rectangle representing the “slide zone” where players can legally slide a puck (we don't want to allow sliding all of the way down the table!). Add a Rectangle named rectInBounds and position it at the lower end of the table:
<ol>
<li>Width=360 </li><li>Height=292 </li><li>Left = 60 </li><li>Top = 508 </li><li>Fill = No Brush </li><li>Stroke = Red </li></ol>
</li></ol>
<p align="center"><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384">
<param name="source" value="http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap" />
<param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/9/9/1/6/5/5/ShuffleboardPart2_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://ecn.channel9.msdn.com/o9/ch9/9/9/1/6/5/5/ShuffleboardPart2_512_ch9.png, postid=556199" />
<param name="background" value="#00FFFFFF" />
<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" />
</a>
</object></p>
<h3>Adding the Pucks</h3>
<p>For the pucks, we are going to add in an existing control which has the artwork completed.
</p>
<ol>
<li>Right-click the project and select Add Existing Item. </li><li>Browse to the following two files in the sample code download: <br>
\ShuffleBoard\ucPuck.xaml <br>
\ShuffleBoard\ucPuck.xaml.cs </li><li>Open ucPuck.xaml on the artboard and notice the following in the Objects and Timeline Panel:
<br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/4572.image_5F00_286ED990.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/8308.image_5F00_thumb_5F00_1A3060A0.png" width="494" height="179"></a>
<ol>
<li>There is a Canvas named Puck that has a PhysicsObjectBehavior applied to it. This allows each instance of this Canvas to behave like a Physics Object so it animates with velocity and force and participates in collisions. Note that this Behavior has a large
 MomentOfInertia value. This keeps the object from rotating due to torque and collisions. Also note the RestitutionCoefficient, which gives the object some “bounce.”
<br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/6330.image_5F00_67CC8D20.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/3108.image_5F00_thumb_5F00_7289E475.png" width="328" height="198"></a>
</li><li>There is a “cnvInner” Canvas that defines the look of the Puck. </li><li>There is a StoryBoard defined, sbLostPuck, which we will execute when the puck “falls off the edge” of the table.
</li><li>Open the code-behind file, ucPuck.xaml.cs, and note the get / set property for the color of the puck. This will allow us to create both Red and Blue pucks for each player.
</li></ol>
</li><li>Build the project by hitting Ctrl&#43;Shift&#43;F5 and go back to ucMainGame. </li><li>From the Assets Panel, expand Controls/All and find the ucPuck control. Drag an instance of this onto the artboard. Name this
<b>bluePuck1</b>. </li><li>Copy and paste bluePuck1 twice so that you have three blue pucks. Name the new pucks
<b>bluePuck2</b> and <b>bluePuck3</b>. </li><li>Copy and paste a fourth puck and name it <b>redPuck1</b>. In the Properties Panel, go to the Miscellaneous Category and change the ColorHighlight and ColorMain properties to a Red color:
<br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/5340.image_5F00_4B4F9B40.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/2438.image_5F00_thumb_5F00_66F42736.png" width="334" height="217"></a>
</li><li>Copy and Paste <b>redPuck1</b> two times and rename these new pucks <b>redPuck2</b> and
<b>redPuck3</b>. </li><li>Let's test our table. Find the PhysicsControllerBehavior just under the cnvTable Canvas in the Objects and Timeline Panel and set the MousePickEnabled property to true.
</li><li>Run the project by clicking F5. Try dragging some pucks around with the mouse.
</li></ol>
<p align="center"><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384">
<param name="source" value="http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap" />
<param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/1/0/2/6/5/5/ShuffleboardPart3_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://ecn.channel9.msdn.com/o9/ch9/1/0/2/6/5/5/ShuffleboardPart3_512_ch9.png, postid=556201" />
<param name="background" value="#00FFFFFF" />
<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" />
</a>
</object></p><h3>Adding the Scoreboard</h3>
<p>We need a way of tracking players' scores, so let's add in a simple scoreboard for Blue vs. Red.</p>
<ol>
<li>Right-click the project and select Add Existing Item. </li><li>Browse to the following two files in the download: <br>
\ShuffleBoard\ShuffleBoard\ucScoreBoard.xaml <br>
\ShuffleBoard\ShuffleBoard\ucScoreBoard.xaml.cs </li><li>Open ucScoreBoard and notice the following:
<ol>
<li>It has a TextBlock for Red scores and a TextBlock for Blue scores. </li><li>In the code-behind, there are setters and getters to set the score. </li></ol>
</li><li>Build the project by selecting Ctrl&#43;Shift&#43;B. </li><li>Switch back to ucMainGame. </li><li>Drag an instance of ucScoreBoard from the Assets Panel onto into LayoutRoot. </li><li>Name the element <b>ucScoreBoard1</b>, and position it at the top left of the Canvas like so:
</li></ol>
<p><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/3286.image_5F00_2AC85B8E.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/8080.image_5F00_thumb_5F00_257974DD.png" width="227" height="373"></a>
</p>
<h3>Adding a Player Up Display</h3>
<p>We'll need a simple control that displays which player's turn it is. </p>
<ol>
<li>Right-click the Silverlight project and select Add/Existing Item. </li><li>Browse to and select the following two files in the sample folder: <br>
\ShuffleBoard\ucPlayerUp.xaml <br>
\ShuffleBoard\ucPlayerUp.xaml.cs </li><li>Note the following about ucPlayerUp:
<ol>
<li>The code-behind file has a simple property, IsBlueTurn, which shows the appropriate message in the UI.
</li></ol>
</li><li>Build the project by clicking Ctrl&#43;Shift&#43;B </li><li>Back on ucMainGame, drag an instance of ucPlayerUp into cnvTableInner. </li><li>Name the control <b>ucPlayerUp1</b> , and set the following properties: <br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/5661.image_5F00_4F797305.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/5672.image_5F00_thumb_5F00_43E3B5C6.png" width="296" height="229"></a>
</li></ol>
<h3>Adding a 3D Look</h3>
<p>Let's give our table a bit of a 3D look by adding a Perspective transform so the table appears to go off into the distance.
</p>
<ol>
<li>Create a new StoryBoard named sbRotateTable. <br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/2541.image_5F00_4781D0A3.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/2134.image_5F00_thumb_5F00_4E34DA26.png" width="388" height="151"></a>
</li><li>Select the cnvTable Canvas element. </li><li>Advance the timeline ahead one second. </li><li>In the Properties Panel, under Projection, set the X value to -40. <br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/0871.image_5F00_54E7E3A9.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/1464.image_5F00_thumb_5F00_46A96AB9.png" width="327" height="138"></a>
</li><li>Your artboard should now look something like this: <br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/8802.image_5F00_3460A3F7.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/3531.image_5F00_thumb_5F00_01909D83.png" width="352" height="428"></a>
</li><li>Close the Storyboard to end recording. <br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/3124.image_5F00_59EA2158.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/0003.image_5F00_thumb_5F00_04C2856B.png" width="300" height="129"></a>
</li><li>We want to rotate the table after the PhysicsController is initialized so the Physics Helper can determine the boundaries of the physics objects properly. Start by adding in some Using statements at the top of ucMainGame.xaml.cs:
<br>
This code is snippet “<b>ucMainGame Imports</b>” inside snippets.txt.
<pre class="csharpcode"><span class="kwrd">using</span> System.Collections.Generic;
<span class="kwrd">using</span> Spritehand.FarseerHelper;
<span class="kwrd">using</span> FarseerGames.FarseerPhysics.Mathematics;
<span class="kwrd">using</span> System.ComponentModel;</pre>
</li><li>Next, let's add in some class-level declarations, which will store the physics controller, list of pucks, and some variables used to track shooting and scoring:
<br>
This code is snippet “<b>ucMainGame Declarations</b>” inside snippets.txt.
<pre class="csharpcode">PhysicsControllerMain _physicsController;
List&lt;PhysicsSprite&gt; _pucks = <span class="kwrd">new</span> List&lt;PhysicsSprite&gt;();
List&lt;PhysicsSprite&gt; _redPucks = <span class="kwrd">new</span> List&lt;PhysicsSprite&gt;();
Point _ptStartShot;
<span class="kwrd">bool</span> _draggingPuck;
<span class="kwrd">int</span> _draggingStartTick;

<span class="kwrd">int</span> _currentPuckToShoot = 0;
<span class="kwrd">int</span> _currentPuckShot = -1;
<span class="kwrd">int</span> _gameOverScore = 15;</pre>
</li><li>In the ucMainGame() constructor, add some code to set the MaxFrameRate to 30 (Windows Phone will be limited to 30 FPS) and wire up the Loaded event handler.
<br>
This code is snippet “<b>ucMainGame Constructor</b>” inside snippets.txt.
<pre class="csharpcode"><span class="kwrd">this</span>.Loaded &#43;= <span class="kwrd">new</span> RoutedEventHandler(ucMainGame_Loaded);
Application.Current.Host.Settings.MaxFrameRate = 30;</pre>
</li><li>Implement the ucMainGame_Loaded event handler, which gets a reference to the Physics Controller and wires up our event handlers.
<br>
This code is snippet “<b>ucMainGame Loaded</b>” inside snippets.txt.
<pre class="csharpcode"><span class="kwrd">void</span> ucMainGame_Loaded(<span class="kwrd">object</span> sender, RoutedEventArgs e)
{
    <span class="kwrd">if</span> (DesignerProperties.GetIsInDesignMode(<span class="kwrd">this</span>))
        <span class="kwrd">return</span>;

    _physicsController = 
        cnvTable.GetValue(
            PhysicsControllerMain.PhysicsControllerProperty
        ) <span class="kwrd">as</span> PhysicsControllerMain;
    _physicsController.Initialized &#43;= _physicsController_Initialized;
    _physicsController.Collision &#43;= _physicsController_Collision;
    _physicsController.TimerLoop &#43;= _physicsController_TimerLoop;
}</pre>
</li><li>Next, we'll add in the event handlers that we just wired up in the loaded event. Note that the Initialized event starts the Rotate Table StoryBoard.
<br>
This code is “<b>ucMainGame Event Handlers</b>” inside snippets.txt.
<pre class="csharpcode"><span class="kwrd">void</span> _physicsController_Initialized(<span class="kwrd">object</span> source)
{
    sbRotateTable.Begin();
}

<span class="kwrd">void</span> _physicsController_Collision(<span class="kwrd">string</span> sprite1, <span class="kwrd">string</span> sprite2)
{ }

<span class="kwrd">void</span> _physicsController_TimerLoop(<span class="kwrd">object</span> source)
{ }</pre>
</li><li>Run the Project by clicking F5. Note the 3D look and try manipulating the pucks with the mouse.
</li></ol>
<h3>Controlling the Pucks</h3>
<p>Next, we'll add logic to control the player's turn and control and along with score. Note that, when we implement the Windows Phone version in a bit, we can take advantage of Multitouch Manipulation events. But since these events are not available in the
 Web version of Silverlight 3, we'll use a simple mouse input mechanism.</p>
<ol>
<li>Let's turn off the default mouse manipulation. Select the PhysicsControllerBehavior just under the cnvTable Canvas and set the MousePickEnabled property to false.
</li><li>We need to get references to our Pucks, which the Physics Helper has translated into PhysicsSprite objects. A Physics Sprite contains the XAML UI for the Physics Object, plus the Physics Engine attributes for the underlying physics objects–including boundary
 shape, mass, velocity, etc. <br>
This code is “<b>ucMainGame Initialized</b>” inside snippets.txt. </li><li>Now we need to handle the Mouse events on the pucks in order to control the player's shot. When the player clicks the mouse down on a puck, we track the position along with time that they clicked. When the player moves the mouse, we update the puck position
 and also check if the player paused or moved backwards. We do this in case the player is just adjusting the puck position and not yet sliding the puck for a shot. Finally, in the Mouse up event, we release the puck in the specified direction and apply an appropriate
 amount of force to it.&nbsp; Copy in the snippet “<b>Puck Mouse Control</b>” from snippets.txt.&nbsp; Code is not shown here for brevity.
</li><li>When the Physics Helper Library does its magic, it translates existing UI Elements into PhysicsSprite objects. So what if we want to get at the original controls, perhaps to execute a StoryBoard that we defined on them? We can do this by using the FindName
 method to get the original user control instance. So, add the code below, which we'll use to get a reference to the Puck Storyboard “sbLostPuck”.
<pre class="csharpcode">ucPuck GetPuckControl(<span class="kwrd">string</span> spriteName)
{
    ucPuck puck;
    var parent = PhysicsControllerMain.ParentCanvas;
    <span class="kwrd">switch</span> (spriteName)
    {
        <span class="kwrd">case</span> <span class="str">&quot;Puck&quot;</span>:
            puck = parent.FindName(<span class="str">&quot;bluePuck1&quot;</span>) 
                    <span class="kwrd">as</span> ucPuck;
            <span class="kwrd">break</span>;
        <span class="kwrd">case</span> <span class="str">&quot;Puck_1&quot;</span>:
            puck = parent.FindName(<span class="str">&quot;bluePuck2&quot;</span>) 
                    <span class="kwrd">as</span> ucPuck;
            <span class="kwrd">break</span>;
        <span class="kwrd">case</span> <span class="str">&quot;Puck_2&quot;</span>:
            puck = parent.FindName(<span class="str">&quot;bluePuck3&quot;</span>) 
                    <span class="kwrd">as</span> ucPuck;
            <span class="kwrd">break</span>;
        <span class="kwrd">case</span> <span class="str">&quot;Puck_3&quot;</span>:
            puck = parent.FindName(<span class="str">&quot;redPuck1&quot;</span>) 
                    <span class="kwrd">as</span> ucPuck;
            <span class="kwrd">break</span>;
        <span class="kwrd">case</span> <span class="str">&quot;Puck_4&quot;</span>:
            puck = parent.FindName(<span class="str">&quot;redPuck2&quot;</span>) 
                    <span class="kwrd">as</span> ucPuck;
            <span class="kwrd">break</span>;
        <span class="kwrd">default</span>:
            puck = parent.FindName(<span class="str">&quot;redPuck3&quot;</span>) 
                    <span class="kwrd">as</span> ucPuck;
            <span class="kwrd">break</span>;
    }

    <span class="kwrd">return</span> puck;
}</pre>
</li><li>Finally, to score, we'll determine if the puck lies between any of the Rectangles in the end zone.
<br>
This code is the snippet “Get Points for Puck” in snippets.txt.
<pre class="csharpcode"><span class="kwrd">int</span> GetPointsForPuck(PhysicsSprite puck)
{
    <span class="kwrd">int</span> score = 0;
    Vector2 puckPos = puck.BodyObject.Position;

    <span class="kwrd">double</span> left = Convert.ToDouble(
        rectPoints3.GetValue(Canvas.LeftProperty));
    <span class="kwrd">double</span> top = Convert.ToDouble(
        rectPoints3.GetValue(Canvas.TopProperty));

    <span class="kwrd">if</span> ((puckPos.X &gt; left &amp;&amp; puckPos.X &lt; left &#43; rectPoints3.Width) 
     &amp;&amp; (puckPos.Y &gt; top &amp;&amp; puckPos.Y &lt; top &#43; rectPoints3.Height))
        score = 3;

    left = Convert.ToDouble(rectPoints2.GetValue(Canvas.LeftProperty));
    top = Convert.ToDouble(rectPoints2.GetValue(Canvas.TopProperty));
    <span class="kwrd">if</span> ((puckPos.X &gt; left &amp;&amp; puckPos.X &lt; left &#43; rectPoints2.Width) 
     &amp;&amp; (puckPos.Y &gt; top &amp;&amp; puckPos.Y &lt; top &#43; rectPoints2.Height))
        score = 2;

    left = Convert.ToDouble(rectPoints1.GetValue(Canvas.LeftProperty));
    top = Convert.ToDouble(rectPoints1.GetValue(Canvas.TopProperty));
    <span class="kwrd">if</span> ((puckPos.X &gt; left &amp;&amp; puckPos.X &lt; left &#43; rectPoints1.Width) 
     &amp;&amp; (puckPos.Y &gt; top &amp;&amp; puckPos.Y &lt; top &#43; rectPoints1.Height))
        score = 1;

    <span class="kwrd">return</span> score;
}</pre>
</li></ol>
<h3>Implement the “Game Loop”</h3>
<p>Most games are controlled by a “Game Loop” that executes many times per second. Within this Game Loop, we can check for collisions, perform enemy AI, and scoring. The PhysicsController fires an event called “TimerLoop” that we can use for this purpose.</p>
<ol>
<li>Replace the existing TimerLoop and Collision events with the following code snippet, which checks to see if any pucks have been shot and if we are ready for the next shot. Do this by seeing if the puck velocity has slowed down to nearly a stop…
<br>
This code is snippet “<b>Timer Loop</b>” inside snippets.txt.
<pre class="csharpcode"><span class="kwrd">void</span> _physicsController_TimerLoop(<span class="kwrd">object</span> source)
{
    <span class="rem">// check to see if the current shot is completed</span>
    <span class="kwrd">if</span> (_currentPuckShot &gt;= 0)
    {
    var puck = _pucks[_currentPuckShot].BodyObject;

        <span class="kwrd">if</span> (puck.Enabled == <span class="kwrd">false</span> ||
          Math.Abs(puck.LinearVelocity.X) &lt; 3                                   
          &amp;&amp; 
          Math.Abs(puck.LinearVelocity.Y) &lt; 3)
        {
            <span class="rem">// did the shot clear the end zone?</span>
            <span class="kwrd">if</span> (!PointWithinBounds(
              <span class="kwrd">new</span> Point(puck.Position.X, 
                       puck.Position.Y)))
            {
                _currentPuckShot = -1;
                _currentPuckToShoot&#43;&#43;;
                SetupThePuck();
            }
        }
    }
}

<span class="kwrd">void</span> _physicsController_Collision(<span class="kwrd">string</span> sprite1, <span class="kwrd">string</span> sprite2)
{
    <span class="rem">// check for puck off sides</span>
    <span class="kwrd">if</span> (sprite1.StartsWith(<span class="str">&quot;rectSensor&quot;</span>) &amp;&amp; sprite2.StartsWith(<span class="str">&quot;Puck&quot;</span>))
    {
        ucPuck puck = GetPuckControl(sprite2);

        _physicsController.PhysicsObjects[sprite2].
            BodyObject.Enabled = <span class="kwrd">false</span>;

        puck.sbLostPuck.Begin();
    }
}</pre>
</li></ol>
<h3>Targeting Windows Phone</h3>
<p>So far, we've created a Silverlight 3, web-based version of a shuffleboard game. Next we'll quickly port this to Windows Phone, taking advantage of some of the platform's capabilities, such as multitouch. We'll do this by using
<i>linked files</i> that point back to our existing Silverlight 3 project.</p>
<ol>
<li>Right-click the Silverlight solution in Blend and select Add New Project. </li><li>Select Windows Phone Application and enter <b>ShuffleBoard.WindowsPhone</b> for the name.
<br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/6266.image_5F00_0B758EEE.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/8738.image_5F00_thumb_5F00_51F27EF6.png" width="416" height="382"></a>
</li><li>Delete the <b>TitleGrid</b> and <b>ContentGrid</b> elements from the Objects and Timeline Panel.
</li><li>Convert LayoutRoot to a Canvas by right-clicking it and selecting Change Layout Type/Canvas.
</li><li>Right-click the project and select Add Reference. Browse to the following assemblies located in the sample download (these are the WindowsPhone versions of the Physics Helper and Farseer):
<br>
<br>
\ShuffleBoard.WindowsPhone\Bin\Debug\FarseerPhysics.dll <br>
\ShuffleBoard.WindowsPhone\Bin\Debug\Spritehand.FarseerHelper.dll <br>
\ShuffleBoard.WindowsPhone\Bin\Debug\Spritehand.PhysicsBehaviors.dll <br>
</li><li>We need references to the assemblies used for Behaviors. An easy way to do this is to add a Behavior to an element and then delete it. From the Assets panel, drag a PhysicsControllerBehavior onto LayoutRoot and then delete it. Note that this adds a reference
 to System.Windows.Interactivity to the project. </li><li>Next, we'll add in the linked files from the existing Silverlight 3 project. Right-click the ShuffleBoard.WindowsPhone project and select Add/Link to Existing Item. Select the following files:
<ol>
<li>ucMainGame.xaml </li><li>ucMainGame.xaml.cs </li><li>ucPlayerUp.xaml </li><li>ucPlayerUp.xaml.cs </li><li>ucPuck.xaml </li><li>ucPuck.xaml.cs </li><li>ucScoreBoard.xaml </li><li>ucScoreBoard.xaml.cs </li></ol>
</li><li>8. Add a new folder to the project named images. </li><li>9. Right-click the images folder and select Link to Existing item, then navigate to the following image in the sample folder:
<br>
\ShuffleBoard\images\shuffleboardTable.jpg <br>
</li><li>Build the project by clicking Ctrl&#43;Shift&#43;B. </li><li>From the Assets Panel, under Controls/All, find ucMainGame and drag an instance onto LayoutRoot. Set the Left and Top properties to 0.
</li><li>Right-click the WindowsPhone project and select “Startup” to set this as the startup project.
</li><li>Run the project by clicking F5. </li></ol><p align="center"><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384">
<param name="source" value="http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap" />
<param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/5/0/2/6/5/5/ShuffleboardPart4_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://ecn.channel9.msdn.com/o9/ch9/5/0/2/6/5/5/ShuffleboardPart4_512_ch9.png, postid=556205" />
<param name="background" value="#00FFFFFF" />
<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" />
</a>
</object></p><h3>Windows Phone Touch Input</h3>
<p>So far, we've used a simple mouse-event-based input mechanism for shooting the pucks. But on the Windows Phone 7 platform, we can do better than that by using Multitouch events. These events include an inertia property that will make our puck physics more
 realistic.</p>
<ol>
<li>Since we are going to need to support two different platforms now (Web and Windows Phone), we need to introduce a Conditional Compilation Symbol so that the compiler can differentiate between each platform's code.
</li><li>Open the solution inside Visual Studio by right-clicking it in the Projects Panel and then select “Edit in Visual Studio”
<br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/0410.image_5F00_7F739EB9.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/4604.image_5F00_thumb_5F00_78546241.png" width="215" height="189"></a>
</li><li>Right-click the ShuffleBoard.WindowsPhone Project and select Properties. </li><li>4. Add in a new compilation symbol for WINDOWS_PHONE. <br>
NOTE: Future releases of WP7 Tools will likely define a default compilation symbol, so you may already see one defined here.
<br>
<a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/6366.image_5F00_713525C9.png"><img title="image" border="0" alt="image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10025512/8726.image_5F00_thumb_5F00_09C4C31A.png" width="550" height="128"></a>
</li><li>Now we'll add in the Windows Phone-specific events for manipulation using touch. Open ucMainGame.xaml.cs and find the _physicsController_Initialized event handler. Replace the events for the mouse events with the following, which will wire up either the
 manipulation events (for Windows Phone) or the mouse events (for Silverlight Web):
<br>
This code is snippet “<b>Manipulation Events</b>” inside snippets.txt.
<pre class="csharpcode"><span class="preproc">#if</span> WINDOWS_PHONE
    puck.ManipulationStarted &#43;= 
      <span class="kwrd">new</span> EventHandler&lt;ManipulationStartedEventArgs&gt;
      (puck_ManipulationStarted);
    puck.ManipulationCompleted &#43;= 
      <span class="kwrd">new</span> EventHandler&lt;ManipulationCompletedEventArgs&gt;
      (puck_ManipulationCompleted);
    puck.ManipulationDelta &#43;= 
      <span class="kwrd">new</span> EventHandler&lt;ManipulationDeltaEventArgs&gt;
      (puck_ManipulationDelta);
<span class="preproc">#else</span>
    puck.MouseLeftButtonDown &#43;= 
      <span class="kwrd">new</span> MouseButtonEventHandler(puck_MouseLeftButtonDown);
    puck.MouseMove &#43;= 
      <span class="kwrd">new</span> MouseEventHandler(puck_MouseMove);
    puck.MouseLeftButtonUp &#43;= 
      <span class="kwrd">new</span> MouseButtonEventHandler(puck_MouseLeftButtonUp);
<span class="preproc">#endif</span></pre>
</li><li>Now we just need to implement those event handlers for manipulation. The main consideration here is that the ManipulationCompleted event passes in a FinalVelocity.LinearVelocity parameter, which we can use to create realistic physics from the user's shot:
<p>Add the code snippet “Manipulation Event Handlers” from snippets.txt</p>
<pre class="csharpcode">Vector2 force = <span class="kwrd">new</span> Vector2(
    (<span class="kwrd">float</span>)(e.FinalVelocities.LinearVelocity.X * scalePower), 
    (<span class="kwrd">float</span>)(e.FinalVelocities.LinearVelocity.Y * scalePower));</pre>
</li><li>Run the project by clicking F5, and try sliding some pucks. </li></ol>
<h3>Performance</h3>
<p>Depending on your configuration, you may experience poor performance for the shuffleboard game when running it in the Windows Phone emulator. There are different reasons for this, including video card drivers and virtualization settings. Please refer to
<a href="http://www.andybeaulieu.com/Home/tabid/67/EntryID/196/Default.aspx">this blog post</a>, which details these performance considerations.</p>
<ol>
<li>1. Inside the ucMainGame constructor, let's turn on the Frame Rate counter so we can see our current frame rate. This code is snippet “Frame Rate Counter” inside snippets.txt
<pre class="csharpcode">Application.Current.Host.Settings.EnableFrameRateCounter = <span class="kwrd">true</span>;</pre>
</li><li>Run the project by hitting F5, and note the current frame rate. <br>
<b>NOTE: Your development configuration may prevent you from having an adequate framerate in the Windows Phone Emulator! Please refer to
</b><a href="http://www.andybeaulieu.com/Home/tabid/67/EntryID/196/Default.aspx"><b>this blog post</b></a><b> for tips on emulator performance.</b>
</li></ol>
<p>One performance tweak we can easily make is taking advantage of hardware acceleration. Silverlight enables us to use the video card to render elements, which can greatly increase performance. To do this, we add a Cachemode=”BitmapCache” attribute to any
 elements we want to hardware accelerate.</p>
<ol>
<li>Open ucPuck.xaml and note that there is a CacheMode attribute on the Puck Canvas.
</li><li>Open ucMainGame.xaml and add a CacheMode attribute to the cnvTable Canvas element.
<pre class="csharpcode">&lt;Canvas x:Name=<span class="str">&quot;cnvTable&quot;</span> Width=<span class="str">&quot;480&quot;</span> Height=<span class="str">&quot;800&quot;</span> 
d:LayoutOverrides=<span class="str">&quot;Width, Height&quot;</span> CacheMode=<span class="str">&quot;BitmapCache&quot;</span>&gt;</pre>
</li><li>Run the project and note the frame rate change. </li></ol>
<p align="center"><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384">
<param name="source" value="http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap" />
<param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/5/1/2/6/5/5/ShuffleboardPart6_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://ecn.channel9.msdn.com/o9/ch9/5/1/2/6/5/5/ShuffleboardPart6_512_ch9.png, postid=556215" />
<param name="background" value="#00FFFFFF" />
<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" />
</a>
</object></p>
<h3>Adding Sound</h3>
<p>Sound is one area where Windows Phone and Web Silverlight differ a bit. Under Silverlight for Web, we can use the MediaElement class to play back WMA and MP3 format audio. Multiple instances of the MediaElement class can be played simultaneously, and the
 sound output will be automatically mixed.</p>
<p>However, on Windows Phone we have access to the XNA game libraries, including sound support. This is a much more efficient way to add mixed sound to a Silverlight game on Windows Phone, but it only supports WAV format sound files.
</p>
<p>The Physics Helper Library has a useful class wrapper for sounds, which we'll use to play a “hit puck” sound on both platforms.</p>
<ol>
<li>In the ShuffleBoard (Silverlight Web) project, right-click and select Add Folder.
</li><li>Name the folder sounds. </li><li>Add an existing item to the sounds folder from this location: <br>
\ShuffleBoard\ShuffleBoard\sounds\hitPuck.wma </li><li>Set the Build Action of the file to Content. </li><li>In the ShuffleBoard.WindowsPhone project, right-click and select Add Folder. </li><li>Name the folder sounds. </li><li>Add an existing item to the sounds folder from this location: <br>
\ShuffleBoard.WindowsPhone\sounds\hitPuck.wav </li><li>Set the Build Action of the file to Content. </li><li>Inside ucMainGame.xaml.cs, add a class-level declaration for a SoundMain class (this is defined in the Physics Helper Library):
<br>
This snippet is “<b>Declare the Sound</b>” inside snippets.txt.
<pre class="csharpcode">SoundMain _soundPuckHit;</pre>
</li><li>10. Inside the ucMainGame_Loaded event, add code to declare the two sounds. Note that Windows Phone uses a WAV format sound without a “/” prefix for the root.
<br>
This snippet is “<b>Declare the Sound</b>” inside snippets.txt.
<pre class="csharpcode"><span class="preproc">#if</span> WINDOWS_PHONE
    _soundPuckHit = <span class="kwrd">new</span> SoundMain(<span class="kwrd">this</span>.LayoutRoot,
                   <span class="str">&quot;sounds/hitPuck.wav&quot;</span>, 2, 0);
<span class="preproc">#else</span>
    _soundPuckHit = <span class="kwrd">new</span> SoundMain(<span class="kwrd">this</span>.LayoutRoot, 
                   <span class="str">&quot;/sounds/hitPuck.wma&quot;</span>, 2, 0);
<span class="preproc">#endif</span></pre>
</li><li>Inside the _physicscontroller_collision event, add code to play the sound if a puck-to-puck collision occurs and the velocity is &gt; 10:
<br>
This snippet is “<b>Play the Sound</b>” inside snippets.txt.
<pre class="csharpcode"><span class="rem">// check for puck to puck collsion</span>
<span class="kwrd">if</span> (sprite1.StartsWith(<span class="str">&quot;Puck&quot;</span>) &amp;&amp; sprite2.StartsWith(<span class="str">&quot;Puck&quot;</span>))
{
    PhysicsSprite sprite = _physicsController.PhysicsObjects[sprite1];

    <span class="kwrd">if</span> (Math.Abs(sprite.BodyObject.LinearVelocity.X) &gt; 10
        || Math.Abs(sprite.BodyObject.LinearVelocity.Y) &gt; 10)
    {
        _soundPuckHit.Play();
    }
}</pre>
</li><li>Run the project and try hitting pucks together. </li></ol>
<p align="center"><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384">
<param name="source" value="http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap" />
<param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/9/0/2/6/5/5/ShuffleboardPart5_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://ecn.channel9.msdn.com/o9/ch9/9/0/2/6/5/5/ShuffleboardPart5_512_ch9.png, postid=556209" />
<param name="background" value="#00FFFFFF" />
<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" />
</a>
</object></p>
<h3>Summary</h3>
<p>Since the 1.1 Alpha release, Silverlight has offered a compelling casual game development environment. With the addition of Windows Phone, along with demos of Silverlight running on other embedded devices, you can bet the future of Silverlight for gaming
 is bright.</p>
<p>Here are a few resources for more information:</p>
<blockquote>
<p>Andy's blog <br>
<a href="http://www.andybeaulieu.com">http://www.andybeaulieu.com</a></p>
<p>Andy's Silverlight Demos <br>
<a href="http://www.spritehand.com">http://www.spritehand.com</a></p>
<p>The Physics Helper Library <br>
<a href="http://physicshelper.codeplex.com">http://physicshelper.codeplex.com</a></p>
<p>Great free resource for learning Expression Blend and Silverlight <br>
<a href="http://www.microsoft.com/design/toolbox/">http://www.microsoft.com/design/toolbox/</a></p>
</blockquote>
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:30175390e92d402d81c69e7600c925c0">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/articles/Creating-a-Shuffleboard-Game-using-Silverlight</comments>
      <itunes:summary>In this walkthrough, we will create a 
table shuffleboard style game for Windows Phone 7 using Silverlight. Many bars feature these long wooden table games, in which players slide metal pucks down the length of the table, attempting to get as close as possible to the far end without sliding
 off the edge. 


 Multi-Targeting
Windows Phone 7 uses a version of Silverlight 3 with a few bonus features. Because this version of Silverlight is so close to the Web version of Silverlight 3, we&#39;ll take the approach of
Multitargeting a solution for both platforms. To do so, start with a Silverlight 3 (web) application template, and then add in a Windows Phone project with linked files that re-use the Silverlight 3 solution. This allows us to deploy to many different
 platforms using the same code base. 
Let&#39;s get started by creating our Solution in this way. 
Creating the Solution and MainPage

In Expression Blend 4, create a new Silverlight Application &amp;#43; Website template named Shuffleboard. Be sure to select “3.0” from the Version dropdown, as this is what is supported by Windows Phone (in a little bit we&#39;ll add in the Windows Phone project template
 as well). 

In the Objects and Timeline Panel, select the main UserControl and set its Width to 480 and its Height to 800. This is the size of a Windows Phone UI in Portrait mode.
Select the LayoutRoot Grid and set its Width to 480 and its Height to 800. For games, a Canvas layout container is better than a Grid, so let&#39;s change the LayoutRoot container type. Right-click LayoutRoot and select Change Layout Type/Canvas.


Since some parts of our UI can appear outside of the game area, we want to add a Clip to this main canvas so that the user does not see these outside elements. Add the following just under the LayoutRoot Canvas:

This XAML is snippet “MainPage Clip” inside snippets.txt.
&amp;lt;Canvas.Clip&amp;gt;
    &amp;lt;RectangleGeometry Rect=&amp;quot;0,0,480,800&amp;quot;/&amp;gt;
&amp;lt;/Canvas.Clip&amp;gt;


We&#39;ll be using some pre-built Behavior</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/articles/Creating-a-Shuffleboard-Game-using-Silverlight</link>
      <pubDate>Tue, 15 Jun 2010 21:23:23 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/articles/Creating-a-Shuffleboard-Game-using-Silverlight</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/c4f/images/10025512_100.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/c4f/images/10025512_220.jpg" height="165" width="220"></media:thumbnail>      
      <dc:creator>Andy Beaulieu </dc:creator>
      <itunes:author>Andy Beaulieu </itunes:author>
      <slash:comments>8</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/articles/Creating-a-Shuffleboard-Game-using-Silverlight/RSS</wfw:commentRss>
      <category>Expression Blend</category>
      <category>Gaming</category>
      <category>Mobile</category>
      <category>Physics</category>
      <category>Silverlight</category>
      <category>Windows Phone</category>
      <category>XAML</category>
    </item>
  <item>
      <title>E3 on MTV</title>
      <description><![CDATA[ <p>Can’t make it to the upcoming video game mecca that is the E3 Expo 2010? Not to worry, MTV Networks has you covered. According to <a shape="rect" href="http://www.microsoft.com/presspass/press/2010/may10/05-13msmtvxboxpr.mspx?rss_fdn=Press%20Releases" shape="rect">this recent announcement</a>, MTV is partnering with Microsoft to deliver coverage of the event’s key moments, including the premiere of Project Natal, the innovative controller-free add-on for Xbox 360. </p><p>MTV properties will also cover Xbox 360 game announcements, world premieres and other breaking news throughout the conference.&nbsp; </p><p>But wait, it gets even better: Cirque du Soleil will be there too, turning E3’s media circus into a real one. Apparently, the Cirque du Soleil performers will be helping to introduce Natal, which captures body motions via sensors and a camera and translates those into in-game actions. That should be interesting! </p><p>On Monday June 14th, Spike TV will cover E3 media briefings and game launches live at 10:30 AM PDT. On Tuesday, June 15th, MTV will cover Natal’s launch starting at 12:30 PM PDT. That coverage will be rebroadcast on Nick at Nite, mtvU, MTV Hits and Logo at 6 PM PDT later that day.&nbsp; Also, MTV Networks’ <a shape="rect" href="http://www.gametrailers.com/" shape="rect">GameTrailers.com</a> will provide live, high-definition video streams of both these events and more. </p><p>Or if you must be there in person, E3 will be held at the Los Angeles Convention Center from June 13th to 18th. </p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:bf2f158eceee427190a39e0e0021faa0">]]></description>
      <comments>http://channel9.msdn.com/Blogs/coolstuff/E3-on-MTV</comments>
      <itunes:summary> Can’t make it to the upcoming video game mecca that is the E3 Expo 2010? Not to worry, MTV Networks has you covered. According to this recent announcement, MTV is partnering with Microsoft to deliver coverage of the event’s key moments, including the premiere of Project Natal, the innovative controller-free add-on for Xbox 360.  MTV properties will also cover Xbox 360 game announcements, world premieres and other breaking news throughout the conference.&amp;nbsp;  But wait, it gets even better: Cirque du Soleil will be there too, turning E3’s media circus into a real one. Apparently, the Cirque du Soleil performers will be helping to introduce Natal, which captures body motions via sensors and a camera and translates those into in-game actions. That should be interesting!  On Monday June 14th, Spike TV will cover E3 media briefings and game launches live at 10:30 AM PDT. On Tuesday, June 15th, MTV will cover Natal’s launch starting at 12:30 PM PDT. That coverage will be rebroadcast on Nick at Nite, mtvU, MTV Hits and Logo at 6 PM PDT later that day.&amp;nbsp; Also, MTV Networks’ GameTrailers.com will provide live, high-definition video streams of both these events and more.  Or if you must be there in person, E3 will be held at the Los Angeles Convention Center from June 13th to 18th.  </itunes:summary>
      <link>http://channel9.msdn.com/Blogs/coolstuff/E3-on-MTV</link>
      <pubDate>Mon, 17 May 2010 15:03:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/coolstuff/E3-on-MTV</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/320/on10_274d8df4-3b9d-4d7d-b508-33c4f3c86ad3.jpg" height="0" width="0"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/85/on10_65f5ff84-6b76-44fd-abb1-bf2fc83bda7b.jpg" height="64" width="85"></media:thumbnail>      
      <dc:creator>Sarah Perez</dc:creator>
      <itunes:author>Sarah Perez</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/coolstuff/E3-on-MTV/RSS</wfw:commentRss>
      <category>E3</category>
      <category>Gaming</category>
      <category>project natal</category>
      <category>Xbox</category>
      <category>Xbox 360</category>
      <category>Video Games</category>
      <category>video game</category>
    </item>
  <item>
      <title>Augmented Reality Domino Knock-Down Game</title>
      <description><![CDATA[
<p>This article provides step-by-step instructions about how to create a simple, yet interesting, augmented reality game called “domino knock-down game” using an open source framework called Goblin XNA.
</p>
<h3>Introduction</h3>
<p>This is an advanced tutorial, and as such we expect that you are already familiar with XNA and scene graph based 3D programming. The game is a single player game in which the player shoots virtual balls into a real-world environment to knock down all of
 the virtual dominos overlaid on top of a board. The player holds a webcam in one hand and shoots the virtual ball by clicking a mouse using the other hand. Before the game starts, the player is allowed to add virtual dominos or modify the positions and orientations
 of the existing ones overlaid on the board as desired.</p>
<p><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10012840/clip_image002_5B4_5D.jpg"><img title="clip_image002[4]" border="0" alt="clip_image002[4]" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10012840/clip_image002_5B4_5D_thumb.jpg" width="499" height="372"></a></p>
<h3>How To Compile and Run The Game</h3>
<p>After you download the Goblin XNA distribution from <a href="http://goblinxna.codeplex.com">
http://goblinxna.codeplex.com</a>, as well as all other necessary libraries indicated in the installation guide, compile the Goblin XNA project under the /src directory. If you're not familiar with Goblin XNA framework, it is strongly recommended that you first
 go through the tutorials in the /tutorials directory. Then, find the ARDominos directory under /projects directory and open up the solution file in order to build and run the game.</p>
<h3>How To Play</h3>
<p>Before you run the application, you need to print out the marker array. The marker array can be found in the DominoGroud.ppt file. The 1<sup>st</sup> slide is for the ARTag library, and the 2<sup>nd</sup> one is for the ALVAR library. The size of the PowerPoint
 slide is set to 25.6 x 17.52 inches, so if you want the entire marker array to fit in A4 size paper, you should choose &quot;Scale to fit&quot; option when you print. Once you have the print out, you're ready to run the game.</p>
<p>The virtual dominos are overlaid around the center of the marker array (referred to as ‘game board' from now on), so you need to aim your webcam around the center of the game board. If you move your mouse cursor around on top of the game window, you will
 see a yellow-green cross-hair cursor, and this cursor position will be used to control the game play. All of the mouse-based interactions are handled by the left mouse button.
</p>
<p>The initial game mode is ‘Add' (as indicated on the upper-right corner of the game window), so if you click on any part on the game board, a new domino will be added. If you press-and-hold, then you can move the newly added domino around, and once you release
 the mouse the domino will be added at the released position. While the domino is rendered in transparent, you are allowed to modify its orientation along the normal vector of the game board by using the ‘Left' and ‘Right' arrow keys. You are not, however,
 allowed to add a domino outside of the gameboard, and you are initially limited to maximum of 40 dominos on the game board (you can change this limit in the code if you want).
</p>
<p>If you want to edit the current position or orientation of an existing domino on the game board, change the game mode to ‘Edit' by clicking the ‘E' key. To modify the position, press-and-hold the mouse on the desired domino, and drag it around (again, it
 won't allow you to place the domino outside of the game board). The selected domino is rendered transparent, and it remains selected until you select another domino or change to a different game mode. If a domino is selected, you can change its orientation
 by using the ‘Left' and ‘Right' arrow keys. If you want to delete a domino, select the domino you want to delete and press the ‘D' or ‘Delete' key.</p>
<p>Once you are satisfied with the current domino configuration, start the game by pressing the ‘P' key. If you want to reset the configuration to the original one, then press the ‘R' key. Once the game starts, the elapsed time will display in the upper-right
 corner and the number of balls shot will display in the lower-right corner. The goal of the game is to knock all of the virtual dominos off the game board by shooting as many virtual balls as necessary, and you will get different trophies based on the elapsed
 time. </p>
<p>The virtual ball is shot from the cursor location when you click the mouse. You can move the webcam around to move closer to certain dominos and improve your chances of hitting your target. However, if the game board becomes invisible to the camera, the
 game doesn't allow you to shoot any balls. </p>
<p>Once you win, you need to press the ‘P' key to restart the game. </p>
<p><b><u>List of command keys used in the game:</u></b></p>
<p>· 'H' -- Display short-cut key help menu</p>
<p>· 'A' -- Switch to &quot;Add&quot; mode</p>
<p>· 'E' -- Switch to &quot;Edit&quot; mode</p>
<p>· 'P' -- Switch to &quot;Play&quot; mode. If pressed during &quot;Play&quot; mode, it restarts the game.</p>
<p>· 'R' -- Reset the game to the initial state</p>
<p>· 'S' -- Toggles the shadow mapping (NOTE: On non-NVidia graphics cards, the shadow mapping may have some aliasing problem)</p>
<p>· 'G' -- Toggles the GUI</p>
<p>· 'D' -- Delete selected dominos during &quot;Edit&quot; mode</p>
<p>· 'C' -- Toggle center cursor mode during &quot;Play&quot; mode</p>
<h3>Step 1. Setup Scene Basics</h3>
<p>First, you need to setup the basics for the scene, such as lighting and ground plane where the virtual dominos will be placed. Usually, you also need to setup a camera for the scene, but since you will setup the marker tracking system later on, the camera
 will be created and added to the scene automatically.</p>
<p>NOTE: Before going through this part, we strongly recommend that you go through Tutorial 1 and Tutorial 5 that comes with the Goblin XNA distribution.
</p>
<h4>Add Lighting Sources</h4>
<p>We will add two directional lights to the scene, each coming from different directions. We also set the ambient light color to a dark gray color so that none of the objects in the scene will appear totally black.
</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="rem">// Create a directional light source</span>
LightSource lightSource = <span class="kwrd">new</span> LightSource();
lightSource.Direction = <span class="kwrd">new</span> Vector3(-1, -1, -1);
lightSource.Diffuse = Color.White.ToVector4();
lightSource.Specular = <span class="kwrd">new</span> Vector4(0.6f, 0.6f, 0.6f, 1);

LightSource lightSource2 = <span class="kwrd">new</span> LightSource();
lightSource2.Direction = <span class="kwrd">new</span> Vector3(1, -1, -1);
lightSource2.Diffuse = Color.White.ToVector4();
lightSource2.Specular = <span class="kwrd">new</span> Vector4(0.6f, 0.6f, 0.6f, 1);

<span class="rem">// Create a light node to hold the light source</span>
LightNode lightNode = <span class="kwrd">new</span> LightNode();
lightNode.AmbientLightColor = <span class="kwrd">new</span> Vector4(0.3f, 0.3f, 0.3f, 1);
lightNode.LightSources.Add(lightSource);
lightNode.LightSources.Add(lightSource2);

<span class="rem">// Add this light node to the root node</span>
scene.RootNode.AddChild(lightNode);</pre>
<style type="text/css">
<!--
.csharpcode, .csharpcode 
	{font-size:small;
	color:black;
	font-family:consolas,"Courier New",courier,monospace;
	background-color:#ffffff}
.csharpcode 
	{margin:0em}
.csharpcode .rem
	{color:#008000}
.csharpcode .kwrd
	{color:#0000ff}
.csharpcode .str
	{color:#006080}
.csharpcode .op
	{color:#0000c0}
.csharpcode .preproc
	{color:#cc6633}
.csharpcode .asp
	{background-color:#ffff00}
.csharpcode .html
	{color:#800000}
.csharpcode .attr
	{color:#ff0000}
.csharpcode .alt
	{background-color:#f4f4f4;
	width:100%;
	margin:0em}
.csharpcode .lnum
	{color:#606060}
-->
</style>
<p></p>
<h4>Create a Ground Plane</h4>
<p>Since the game will have physics simulation, we will need a ground plane where the dominos will be placed. We will create a GeometryNode to hold the cubic geometry that represents a flat ground plane, and assign physics properties to this ground. Since we
 want to show the game board rather than this virtual ground plane, we set <b>IsOcculder</b> property to true. If this property is set to true, this geometry won't be rendered in the frame buffer; rather, it will be used for z-buffer testing. This means that
 you won't see this ground plane, but if any virtual objects go behind this ground plane, those virtual objects won't be rendered. Since this ground plane won't be visible, we won't assign any materials to it. Finally, we add this ground to the marker node
 that tracks the game board. </p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">GeometryNode groundNode = <span class="kwrd">new</span> GeometryNode(<span class="str">&quot;Ground&quot;</span>);
groundNode.Model = <span class="kwrd">new</span> Box(129.5f, 99, 0.2f);

groundNode.Physics.Collidable = <span class="kwrd">true</span>;
groundNode.Physics.Shape = ShapeType.Box;
groundNode.Physics.MaterialName = <span class="str">&quot;Ground&quot;</span>;
groundNode.Physics.Pickable = <span class="kwrd">true</span>;
groundNode.AddToPhysicsEngine = <span class="kwrd">true</span>;

groundNode.IsOccluder = <span class="kwrd">true</span>;

groundNode.Model.ReceiveShadows = <span class="kwrd">true</span>;

markerNode.AddChild(groundNode);</pre>
<p></p>
<h3>Step 2. Setup Capture Device and Marker Tracker</h3>
<p>We need to have a video capture device (e.g., a webcam) to capture the real-world environment, and an optical marker tracking system to track the marker array printed on the game board.
</p>
<p>NOTE: Before going through this part, we strongly recommend that you go through Tutorial 8, which comes with the Goblin XNA distribution.</p>
<h4>Setup Capture Device</h4>
<p>Since we're using a webcam to capture the live video, we'll use the DirectShowCapture class. We then initialize this capture device with deviceID = 0, 30Hz framerate, and 640-by-480 resolution, and attach it to our scene. Since we want to show the live video
 stream in the background, we set <b>ShowCameraImage</b> to true.</p>
<p>If your computer has only one webcam attached (including the embedded cameras on laptop computers), then using deviceID = 0 will work fine. However, if you have more than one webcam, then you need to change this ID to indicate which webcam you want to use.
</p>
<p><b>C# </b></p>
<pre class="csharpcode">DirectShowCapture captureDevice = <span class="kwrd">new</span> DirectShowCapture();
captureDevice.InitVideoCapture(0, FrameRate._30Hz, 
    Resolution._640x480, ImageFormat.R8G8B8_24, <span class="kwrd">false</span>);

scene.AddVideoCaptureDevice(captureDevice);

scene.ShowCameraImage = <span class="kwrd">true</span>;</pre>
<p></p>
<h4>Setup Optical Marker Tracking System</h4>
<p>We will use the ALVAR optical marker tracking library from VTT (<a href="http://virtual.vtt.fi/virtual/proj2/multimedia/alvar.html">http://virtual.vtt.fi/virtual/proj2/multimedia/alvar.html</a>). We initialize the tracker with the size of the image we'll
 be passing for the tracker to analyze, the camera calibration file generated by SampleCamCalib project that comes with ALVAR (you should perform calibration for each of your webcams in order to achieve optimal tracking performance), and the pixel size of the
 square marker (9.0 means that if you overlay a cube with size of 9x9x9 pixels, then the cube will overlay exactly on top of the marker square). Finally, we assign this tracking system to our scene.
</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">ALVARMarkerTracker tracker = <span class="kwrd">new</span> ALVARMarkerTracker();
tracker.MaxMarkerError = 0.02f;
tracker.InitTracker(captureDevice.Width, captureDevice.Height, <span class="str">&quot;calib.xml&quot;</span>, 9.0);
scene.MarkerTracker = tracker;</pre>
<p></p>
<h4>Create a MarkerNode To Track Gameboard</h4>
<p>Since we want to overlay the dominos on top of a game board with marker arrays printed on it, we need to create a MarkerNode that holds the information of the marker configuration we want to track. Then, any geometry attached to this node will be overlaid
 on top the game board. We create a MarkerNode by denoting which marker tracker will be used to track this marker, the marker configuration file, and a list of marker IDs in this marker configuration. Finally, we add this node to our scene's root node.</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="rem">// Create a marker node to track the ground plane</span>
<span class="kwrd">int</span>[] ids = <span class="kwrd">new</span> <span class="kwrd">int</span>[54];
<span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i &lt; ids.Length; i&#43;&#43;)
    ids[i] = i;

markerNode = <span class="kwrd">new</span> MarkerNode(
scene.MarkerTracker, <span class="str">&quot;ARDominoALVAR.txt&quot;</span>, ids);

scene.RootNode.AddChild(markerNode);</pre>
<p></p>
<h3>Step 3. Create 3D Dominos and Balls</h3>
<p>Now, we are ready to add 3D objects on top of the game board.</p>
<h4>Create 3D Dominos</h4>
<p>We'll add textured mapped cubic geometries that represent dominos, and lay them out in a circle. We also need to assign appropriate physics properties to each domino so that they will behave correctly in the physics simulation. Finally, we add all dominos
 to the marker node that tracks the game board. </p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">dominoModel = <span class="kwrd">new</span> DominoBox(
    <span class="kwrd">new</span> Vector3(dominoSize.X, dominoSize.Z, dominoSize.Y),
    <span class="kwrd">new</span> Vector2(0.663f, 0.707f));

dominoModel.CastShadows = <span class="kwrd">true</span>;
dominoModel.ReceiveShadows = <span class="kwrd">true</span>;

<span class="kwrd">float</span> radius = 18;
<span class="kwrd">for</span> (<span class="kwrd">int</span> x = 0; x &lt; 360; x &#43;= 30)
{
    GeometryNode dominoNode = 
        <span class="kwrd">new</span> GeometryNode(<span class="str">&quot;Domino &quot;</span> &#43; dominos.Count);
    dominoNode.Model = dominoModel;

    dominoNode.Physics.Mass = 20;
    dominoNode.Physics.Shape = ShapeType.Box;
    dominoNode.Physics.MaterialName = <span class="str">&quot;Domino&quot;</span>;
    dominoNode.Physics.Pickable = <span class="kwrd">true</span>;
    dominoNode.AddToPhysicsEngine = <span class="kwrd">true</span>;

    Material dominoMaterial = <span class="kwrd">new</span> Material();
    dominoMaterial.Diffuse = Color.White.ToVector4();
    dominoMaterial.Specular = Color.White.ToVector4();
    dominoMaterial.SpecularPower = 10;
    dominoMaterial.Texture = cguiLogoTexture;

    dominoNode.Material = dominoMaterial;

    TransformNode dominoTransNode = <span class="kwrd">new</span> TransformNode();
    dominoTransNode.Translation = <span class="kwrd">new</span> Vector3(
        (<span class="kwrd">float</span>)(radius * Math.Cos(MathHelper.ToRadians(x))),
        radius * (<span class="kwrd">float</span>)(Math.Sin(MathHelper.ToRadians(x))), 
        dominoSize.Y / 2);
    dominoTransNode.Rotation = 
        Quaternion.CreateFromAxisAngle(Vector3.UnitZ, 
            MathHelper.ToRadians(x &#43; 90));

    markerNode.AddChild(dominoTransNode);

    dominoTransNode.AddChild(dominoNode);

    dominos.Add(dominoNode);
}</pre>
<h4>Create 3D Balls</h4>
<p>We will create a list of 3D balls and add them to the scene even before the player shoots the ball in order to have best performance. Since we don't want to show these balls yet, we'll add them outside of the view frustum. When the player shoots a ball,
 we'll simply pick a ball from this list and give it a new position and velocity. Since the code is quite similar to creating 3D dominos, we will omit the codes here (see CreateBalls() function from line 1459)</p>
<h3>Step 4. Setup Physics Simulation and Sound Effect</h3>
<p>It is very easy to setup the physics simulation using Goblin XNA as well as use a sound effect when two objects collide into each other. The physics properties set to the GeometryNode in the previous steps are used by the physics engine. There are many properties
 associated with GeometryNode.Physics, but there are only few properties that you really have to define to make the simulation work.
</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">dominoNode.Physics.Mass = 20;
dominoNode.Physics.Shape = ShapeType.Box;
dominoNode.Physics.MaterialName = <span class="str">&quot;Domino&quot;</span>;
dominoNode.Physics.Pickable = <span class="kwrd">true</span>;
dominoNode.AddToPhysicsEngine = <span class="kwrd">true</span>;</pre>
<p></p>
<p>Taking the domino geometry as an example, we need to define its mass, the shape primitive used in the physics simulation, the material name is necessary only if we're going to modify its physics material later on, which is the case for this game), and whether
 this geometry can be picked (we want to pick and manipulate the dominos in certain game modes, so we set this to true). Actually, we also need to set
<b>Collidable</b> and <b>Interactable</b> properties to true for the geometry to collide and have physical response when other geometry hits this geometry. However, the game mode starts with ‘Add' mode, which will be explained later, and we don't want the geometry
 to collide and react on the collision when we move the selected domino around on the game board using mouse. So we leave them as false when we create them, and then set those two properties to true once the game starts.</p>
<p>NOTE: Before going through this part, we strongly recommend that you go through Tutorial 5 and Tutorial 9, which come with the Goblin XNA distribution.</p>
<h4>Setup Physics Simulation</h4>
<p>Since Goblin XNA supports Newton dynamics library, we will use NewtonPhysics implementation for our physics simulation. The default simulation space defined by Newton library is 200x200x200 centered at the origin, and if any objects go outside of this bound,
 those objects won't be simulated for optimization purposes. Since our scene is larger than this default space size, we'll set it to 500x500x500 centered at the center. The default gravity is 9.8, but this is quite slow for a realistic simulation, so we'll
 increase the gravity to 30. We will also increase the maximum simulation sub-steps to 5 so that even if the frame rate gets below 60 FPS, the physics engine will simulate as many as 5 sub-steps to simulate at least 60 FPS.</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">scene.PhysicsEngine = <span class="kwrd">new</span> NewtonPhysics();
<span class="rem">// Make the physics simulation space larger </span>
<span class="rem">// to 500x500x500 centered at the origin</span>
((NewtonPhysics)scene.PhysicsEngine).WorldSize =
    <span class="kwrd">new</span> BoundingBox(Vector3.One * -250, Vector3.One * 250);
<span class="rem">// Increase the gravity</span>
scene.PhysicsEngine.Gravity = 30.0f;

((NewtonPhysics)scene.PhysicsEngine).MaxSimulationSubSteps = 5;</pre>
<style type="text/css">
<!--
.csharpcode, .csharpcode 
	{font-size:small;
	color:black;
	font-family:consolas,"Courier New",courier,monospace;
	background-color:#ffffff}
.csharpcode 
	{margin:0em}
.csharpcode .rem
	{color:#008000}
.csharpcode .kwrd
	{color:#0000ff}
.csharpcode .str
	{color:#006080}
.csharpcode .op
	{color:#0000c0}
.csharpcode .preproc
	{color:#cc6633}
.csharpcode .asp
	{background-color:#ffff00}
.csharpcode .html
	{color:#800000}
.csharpcode .attr
	{color:#ff0000}
.csharpcode .alt
	{background-color:#f4f4f4;
	width:100%;
	margin:0em}
.csharpcode .lnum
	{color:#606060}
-->
</style>
<p></p>
<h4>Setup Physics Material and Sound Effect</h4>
<p>We will setup some material properties for each physics entity that define how each entity will behave when they collide. Each entity is defined by a material name (for example, “Domino” for domino geometries), and in the example code below, this material
 definition is applied between “Ground” and “Ball” entities. For detailed explanation of each material properties (e.g., elasticity, friction, etc), please see the user manual that comes with the Goblin XNA distribution. When we set the material properties
 between two physics entities, we can also define a callback function, which will be invoked when the two entities collide. For our game, we want to add a sound effect to indicate the collision. For better performance, we limit the number of concurrent sound
 effects, and we only play a sound effect if the contact speed between the two entities is greater than certain speed (e.g., in the code example below, it will only play sound effect if the contact speed is above 3 pixels/sec). We also change the volume of
 the sound effect based on its contact speed. </p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">NewtonMaterial physMat2 = <span class="kwrd">new</span> NewtonMaterial();
<span class="rem">// Gound to ball material interaction</span>
physMat2.MaterialName1 = <span class="str">&quot;Ground&quot;</span>;
physMat2.MaterialName2 = <span class="str">&quot;Ball&quot;</span>;
physMat2.Elasticity = 0.7f;
physMat2.ContactProcessCallback = <span class="kwrd">delegate</span>(Vector3 contactPosition, 
    Vector3 contactNormal, <span class="kwrd">float</span> contactSpeed, 
    <span class="kwrd">float</span> colObj1ContactTangentSpeed, <span class="kwrd">float</span> colObj2ContactTangentSpeed,
    Vector3 colObj1ContactTangentDirection, 
    Vector3 colObj2ContactTangentDirection)
{
    <span class="kwrd">if</span> (contactSpeed &gt; 3f)
    {
        <span class="kwrd">if</span> (soundsPlaying.Count &gt;= SOUND_LIMIT)
            <span class="kwrd">return</span>;

        <span class="kwrd">try</span>
        {
            Sound.SetVolume(<span class="str">&quot;Default&quot;</span>, contactSpeed * volume);
        }
        <span class="kwrd">catch</span> (Exception exp) { }
        <span class="kwrd">try</span>
        {
            Sound.Play(<span class="str">&quot;rubber_ball_01&quot;</span>);
            soundsPlaying.Add(DateTime.Now.TimeOfDay.TotalMilliseconds);
        }
        <span class="kwrd">catch</span> (Exception exp) { }
    }

};
((NewtonPhysics)scene.PhysicsEngine).AddPhysicsMaterial(physMat2);</pre>
<p>The above code only defines the material properties between “Ground” and “Ball” entities. In the actual game code, however, it defines the material properties for each pair of existing physics entities.
</p>
<h3>Step 5. Add User Interaction System</h3>
<p>Now, we have all of the components necessary to start playing the AR domino knock-down game except for a way of interacting with the game for the player. Ideally, we want to play the game using a touch-sensitive mobile device with an embedded camera, such
 as an iPhone or an Ultra-Mobile-PC. Due to platform restriction and the high cost of those devices, we will use a webcam with mouse and keyboard based interaction for this demo. But first, we will add several callback functions for mouse and keyboard events.</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">MouseInput.Instance.MousePressEvent &#43;= 
    <span class="kwrd">new</span> HandleMousePress(MousePressHandler);
MouseInput.Instance.MouseDragEvent &#43;= <span class="kwrd">new</span> HandleMouseDrag(MouseDragHandler);
MouseInput.Instance.MouseReleaseEvent &#43;= 
    <span class="kwrd">new</span> HandleMouseRelease(MouseReleaseHandler);
MouseInput.Instance.MouseMoveEvent &#43;= <span class="kwrd">new</span> HandleMouseMove(MouseMoveHandler);

KeyboardInput.Instance.KeyPressEvent &#43;= <span class="kwrd">new</span> HandleKeyPress(KeyPressHandler);
KeyboardInput.Instance.KeyReleaseEvent &#43;= 
    <span class="kwrd">new</span> HandleKeyRelease(KeyReleaseHandler); </pre>
<p>For this game, we have implemented three different modes, “Add”, “Edit”, and “Play”.
</p>
<h4>Add Mode</h4>
<p>In “Add” mode, we want the players to be able to add dominoes anywhere on the game board by clicking the mouse and dragging the newly added domino around to finalize its position. We also want the players to be able to rotate the added domino along the normal
 vector of the game board by pressing “Left” and “Right” arrow keys. </p>
<p>NOTE: The following codes are in the MousePressHandler function.</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">Vector3 nearSource = 
    <span class="kwrd">new</span> Vector3(mouseLocation.X, mouseLocation.Y, 0);
Vector3 farSource = 
    <span class="kwrd">new</span> Vector3(mouseLocation.X, mouseLocation.Y, 1);

Matrix viewMatrix = 
    markerNode.WorldTransformation * State.ViewMatrix;

Vector3 nearPoint = 
    graphics.GraphicsDevice.Viewport.Unproject(
        nearSource, State.ProjectionMatrix, 
        viewMatrix, Matrix.Identity);
Vector3 farPoint = 
    graphics.GraphicsDevice.Viewport.Unproject(farSource, 
        State.ProjectionMatrix, viewMatrix, Matrix.Identity);
<span class="rem">// Cast a ray to the scene to pick a point on the ground where </span>
<span class="rem">// the domino will be added</span>
List&lt;PickedObject&gt; pickedObjects = 
    ((NewtonPhysics)scene.PhysicsEngine).PickRayCast(nearPoint, farPoint);

<span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i &lt; pickedObjects.Count; i&#43;&#43;)
{
    <span class="kwrd">if</span> (((GeometryNode)pickedObjects[i].PickedPhysicsObject.Container).
        Name.Equals(<span class="str">&quot;Ground&quot;</span>))
    {
        Vector3 intersectPoint = nearPoint * (1 – 
            pickedObjects[i].IntersectParam) &#43;
            pickedObjects[i].IntersectParam * farPoint;

        dominoTransNode.Translation = intersectPoint &#43; Vector3.UnitZ * 
            dominoSize.Y / 2;
        <span class="kwrd">break</span>;
    }
}</pre>
<p>Before we add a domino, we need to figure out the 3D point on the gameboard that corresponds to the 2D mouse click point on the screen. To do this, we need to create a 3D ray originating from the 3D point on the near clipping plane to the 3D point on the
 far clipping plane, both of which correspond to the clicked 2D point on the screen. XNA's Viewport class supports the Unproject function that performs this 2D to 3D mapping, which requires the 3D plane to map to (in this case, it's the nearSource and farSource),
 the projection matrix, the view matrix, and the world matrix. The tricky part here is the concept of the computation of the view matrix. In Goblin XNA, to make things simple, we decided not to have the marker transformation affect the physics simulation by
 default, so even if the marker transformation changes, nothing changes in the physics simulation world. However, if we want to figure out the actual view matrix in the physics simulation world, we need to multiply the marker transformation with the current
 view matrix, which is the State.ViewMatrix. </p>
<p>Once we get the 3D ray, we simply pass it to Newton library to perform the picking and then it will return a list of intersecting objects. We then check to see if there is an intersecting geometry named “Ground,” which is the gameboard. If the game board
 is intersected, then we calculate the 3D intersection point on the game board and put the newly added domino in that intersection point. In the MouseDragHandler function, you will see similar areas of code that let the player drag the newly added domino around
 on the game board. </p>
<p>There are also codes that let the player rotate the new domino along the normal vector of the game board in KeyPressHandler and Update functions, but we will omit the explanation here since the codes are self-explanatory.</p>
<h4>Edit Mode</h4>
<p>In “Edit” mode, we want the players to be able to pick an existing domino on the gameboard and drag it around. We also want the players to be able to rotate the selected domino along the normal vector of the game board by pressing “Left” or “Right” arrow
 keys. </p>
<p>NOTE: The following codes are in the MousePressHandler function.</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="rem">// Cast a ray to the scene to select the closest </span>
<span class="rem">// object (to the eye location) that hits the ray</span>
List&lt;PickedObject&gt; pickedObjects =   
    ((NewtonPhysics)scene.PhysicsEngine).PickRayCast(nearPoint, farPoint);

<span class="rem">// If one or more objects intersect with our ray vector</span>
<span class="kwrd">if</span> (pickedObjects.Count &gt; 0)
{
    <span class="rem">// Sort the picked objects in ascending order of intersection parameter</span>
    <span class="rem">// (the closest to the eye is the first one in the sorted list)</span>
    pickedObjects.Sort();

    <span class="rem">// If the closest object is the ground, then don't do anything</span>
    <span class="kwrd">if</span> (((GeometryNode)pickedObjects[0].PickedPhysicsObject.Container).
        Name.Equals(<span class="str">&quot;Ground&quot;</span>))
        <span class="kwrd">return</span>;

    selectedDominos.Add(
        (GeometryNode)pickedObjects[0].PickedPhysicsObject.Container);
    
    GeometryNode domino = selectedDominos[0];
    Vector4 mod = domino.Material.Diffuse;
    domino.Material.Diffuse = 
        <span class="kwrd">new</span> Vector4(mod.X, mod.Y, mod.Z, 0.5f);
}</pre>
<p>The picking codes are the same as before, but now we want to pick an existing domino instead of the game board. Since there are multiple dominoes on the game board, it is possible that the picking ray intersects with more than one domino (and most likely
 the game board as well). Thus, we need to sort the intersected geometries based on their distances from the camera, and then we want to select the one closest to the camera. If the closest geometry is not the game board, then we add this domino to the list
 of selected dominoes and set its transparency to half-transparent to indicate the selection. Then, in the MouseDragHandler function, we will see similar codes with “Add” mode that let the player drag the selected domino around.</p>
<h4>Play Mode</h4>
<p>In “Play” mode, we want the players to be able to shoot balls from the clicked location. We allow the player to shoot either heavy or normal balls depending on whether the click was on the right or left mouse button.
</p>
<p>NOTE: The following code snippets are in the MouseReleaseHandler function since we allow the player to inject additional speed when pushing the camera forward while press-and-holding the mouse button, and then releasing the button (this interaction makes
 more sense when the game is played on an UMPC).</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="kwrd">bool</span> heavy = (button == MouseInput.RightButton);

<span class="kwrd">float</span> additionalSpeed = 0;

<span class="rem">// Add extra speed to the ball being shot if the camera point is moved from </span>
<span class="rem">// far point to closer point (to the ground)</span>
<span class="kwrd">float</span> ballReleaseDistance = 
    markerNode.WorldTransformation.Translation.Length();

<span class="kwrd">if</span> (ballReleaseDistance &lt; ballPressDistance)
    additionalSpeed = ballPressDistance - ballReleaseDistance;

Vector3 nearSource = 
    <span class="kwrd">new</span> Vector3(uiManager.CrossHairPoint.X, 
        uiManager.CrossHairPoint.Y, 0);
Vector3 farSource = 
    <span class="kwrd">new</span> Vector3(uiManager.CrossHairPoint.X, 
        uiManager.CrossHairPoint.Y, 1);

Matrix viewMatrix = markerNode.WorldTransformation * State.ViewMatrix;

Vector3 nearPoint = 
    graphics.GraphicsDevice.Viewport.Unproject(nearSource,
        State.ProjectionMatrix, viewMatrix, Matrix.Identity);
Vector3 farPoint = 
    graphics.GraphicsDevice.Viewport.Unproject(farSource,
        State.ProjectionMatrix, viewMatrix, Matrix.Identity);

ballCount&#43;&#43;;
uiManager.BallCount&#43;&#43;;
<span class="rem">// Create a ball and shoot it</span>
CreateBallCharactor(nearPoint, farPoint, additionalSpeed, heavy);</pre>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">Vector3 linVel = far - near;
linVel.Normalize();

GeometryNode ballNode = (heavy) ? heavyBalls[curHeavyBall] : balls[curBall];
ballNode.Model.CastShadows = <span class="kwrd">true</span>;
ballNode.Model.ReceiveShadows = <span class="kwrd">true</span>;
Vector4 orig = ballNode.Material.Diffuse;
ballNode.Material.Diffuse = 
    <span class="kwrd">new</span> Vector4(orig.X, orig.Y, orig.Z, 1);

Vector3 v = near &#43; linVel * 10;

<span class="rem">// Forces the physics engine to 'transport' </span>
<span class="rem">// this ball to the location 'v' in the simulation world</span>
((NewtonPhysics)scene.PhysicsEngine).SetTransform(
    ballNode.Physics, Matrix.CreateTranslation(v));

<span class="rem">// Apply a linear velocity to this ball</span>
((NewtonPhysics)scene.PhysicsEngine).ApplyLinearVelocity(
    ballNode.Physics, linVel * (50f &#43; additionalSpeed));

<span class="kwrd">if</span> (heavy)
{
    curHeavyBall&#43;&#43;;
    <span class="rem">// Circles through if we run out of heavy balls</span>
    <span class="kwrd">if</span> (curHeavyBall &gt;= BALL_NUM / 2)
        curHeavyBall = 0;
}
<span class="kwrd">else</span>
{
    curBall&#43;&#43;;
    <span class="rem">// Circles through if we run out of normal balls</span>
    <span class="kwrd">if</span> (curBall &gt;= BALL_NUM / 2)
        curBall = 0;
}</pre>
<p></p>
<h3>Step 6. Add Heads-Up-Display (HUD)</h3>
<p>Finally, we add a HUD for displaying information such as elapsed game time, number of balls used, and a victory message when the game is over. We also add a cross hair to indicate the position of the mouse on the screen.</p>
<p>NOTE: The above codes are in the Draw function of UIManager class.</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="rem">// Count the time elapsed in the play mode if game is not over yet</span>
<span class="kwrd">if</span> (gameState.CurrentGameMode == GameState.GameMode.Play &amp;&amp;  
    !gameState.GameOver)
{
    gameState.ElapsedSecond &#43;= gameTime.ElapsedRealTime.TotalSeconds;
    <span class="kwrd">if</span> (gameState.ElapsedSecond &gt;= 60)
    {
        gameState.ElapsedMinute&#43;&#43;;
        gameState.ElapsedSecond = 0;
    }
    <span class="rem">// Update the time elapsed label with the new elapsed time</span>
    modeStatusLabel = <span class="str">&quot;Play: &quot;</span> &#43; (<span class="kwrd">int</span>)gameState.ElapsedMinute &#43; <span class="str">&quot;:&quot;</span> &#43;  
        String.Format(<span class="str">&quot;{0:D2}&quot;</span>, (<span class="kwrd">int</span>)gameState.ElapsedSecond) &#43; <span class="str">&quot;  &quot;</span>;
}

<span class="rem">// Draws the cross hair mark to indicate the mouse position which is used for</span>
<span class="rem">// ball shooting, domino addition, domino edition, and GUI interaction (if </span>
<span class="rem">// GUI is shown)</span>
UI2DRenderer.FillRectangle(<span class="kwrd">new</span> Rectangle(crossHairPoint.X - 10, 
    crossHairPoint.Y, 23, 3), <span class="kwrd">null</span>, <span class="kwrd">new</span> Color(50, 205, 50, 150));
UI2DRenderer.FillRectangle(<span class="kwrd">new</span> Rectangle(crossHairPoint.X, crossHairPoint.Y -  
    10, 3, 23), <span class="kwrd">null</span>, <span class="kwrd">new</span> Color(50, 205, 50, 150));

UI2DRenderer.WriteText(Vector2.Zero, modeStatusLabel, 
    Color.White, labelFont,
    GoblinEnums.HorizontalAlignment.Right, 
    GoblinEnums.VerticalAlignment.Top);

<span class="rem">// Displays how many balls are used so far</span>
<span class="kwrd">if</span> (gameState.CurrentGameMode == GameState.GameMode.Play)
{
    UI2DRenderer.WriteText(Vector2.Zero, 
        <span class="str">&quot;Balls Used: &quot;</span> &#43; ballCount, Color.Red, 
        labelFont, GoblinEnums.HorizontalAlignment.Right,       
        GoblinEnums.VerticalAlignment.Bottom);
}

<span class="rem">// Shows the victory texts as well as play the victory sound if won</span>
<span class="kwrd">if</span> (gameState.GameOver)
{
    UI2DRenderer.WriteText(<span class="kwrd">new</span> Vector2(0, 130), <span class="str">&quot;Victory!! You Won!!&quot;</span>, 
        Color.Red, victoryFont, GoblinEnums.HorizontalAlignment.Center, 
        GoblinEnums.VerticalAlignment.None);

    UI2DRenderer.WriteText(<span class="kwrd">new</span> Vector2(0, 180), 
        <span class="str">&quot;Time: &quot;</span> &#43; (<span class="kwrd">int</span>)gameState.ElapsedMinute &#43; <span class="str">&quot;:&quot;</span> &#43; 
        String.Format(<span class="str">&quot;{0:D2}&quot;</span>, (<span class="kwrd">int</span>)gameState.ElapsedSecond), 
        Color.Red,victoryFont, 
        GoblinEnums.HorizontalAlignment.Center, 
        GoblinEnums.VerticalAlignment.None);

    UI2DRenderer.WriteText(<span class="kwrd">new</span> Vector2(0, 220), 
        <span class="str">&quot;Balls Used: &quot;</span> &#43; ballCount, Color.Red, 
        victoryFont, GoblinEnums.HorizontalAlignment.Center, 
        GoblinEnums.VerticalAlignment.None);

    Texture2D trophy = <span class="kwrd">null</span>;
    <span class="kwrd">if</span> (gameState.ElapsedMinute &lt; 1 &amp;&amp; 
        gameState.ElapsedSecond &lt;= 14)
        trophy = trophyGold;
    <span class="kwrd">else</span> <span class="kwrd">if</span> (gameState.ElapsedMinute &lt; 1 &amp;&amp; 
        gameState.ElapsedSecond &lt;= 25)
        trophy = trophySilver;
    <span class="kwrd">else</span>
        trophy = trophyBronze;

    UI2DRenderer.FillRectangle(<span class="kwrd">new</span> Rectangle(
        (State.Width - trophy.Width) / 2, 280, 
        trophy.Width, trophy.Height), 
        trophy, Color.White);
}</pre>
<h3>Conclusion</h3>
<p>This article demonstrated how to implement a simple yet interesting interactive AR game. Since this article is rather advanced, and most of the codes are specific to Goblin XNA framework, you will have a better understanding of the source codes if you go
 through some of the suggested tutorials first. If you have an UMPC (Ultra-Mobile-PC) with you, then you can also run the same code, and you can shoot the balls by tapping on the screen rather than using a mouse.
</p>
<p>If you want to try this out, download the source code via the link at the top of the article!</p>
<h3>About The Author</h3>
<p><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10012840/clip_image004_5B4_5D.jpg"><img title="clip_image004[4]" border="0" hspace="12" alt="clip_image004[4]" align="right" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10012840/clip_image004_5B4_5D_thumb.jpg" width="132" height="175"></a>Ohan
 Oda is a Ph.D student at Columbia University studying Computer Science. He specializes in designing systems and user interaction techniques for entertainment in Augmented Reality. He is the lead developer of Goblin XNA framework, and has worked on several
 Augmented Reality projects using this framework. Please contact <a href="mailto:ohan@cs.columbia.edu">
ohan@cs.columbia.edu</a> for any questions.</p>
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:4c989aa298ab4222a2219e7600c952e8">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/articles/Augmented-Reality-Domino-Knock-Down-Game</comments>
      <itunes:summary>
This article provides step-by-step instructions about how to create a simple, yet interesting, augmented reality game called “domino knock-down game” using an open source framework called Goblin XNA.
 
Introduction
This is an advanced tutorial, and as such we expect that you are already familiar with XNA and scene graph based 3D programming. The game is a single player game in which the player shoots virtual balls into a real-world environment to knock down all of
 the virtual dominos overlaid on top of a board. The player holds a webcam in one hand and shoots the virtual ball by clicking a mouse using the other hand. Before the game starts, the player is allowed to add virtual dominos or modify the positions and orientations
 of the existing ones overlaid on the board as desired. 
 
How To Compile and Run The Game
After you download the Goblin XNA distribution from 
http://goblinxna.codeplex.com, as well as all other necessary libraries indicated in the installation guide, compile the Goblin XNA project under the /src directory. If you&#39;re not familiar with Goblin XNA framework, it is strongly recommended that you first
 go through the tutorials in the /tutorials directory. Then, find the ARDominos directory under /projects directory and open up the solution file in order to build and run the game. 
How To Play
Before you run the application, you need to print out the marker array. The marker array can be found in the DominoGroud.ppt file. The 1st slide is for the ARTag library, and the 2nd one is for the ALVAR library. The size of the PowerPoint
 slide is set to 25.6 x 17.52 inches, so if you want the entire marker array to fit in A4 size paper, you should choose &amp;quot;Scale to fit&amp;quot; option when you print. Once you have the print out, you&#39;re ready to run the game. 
The virtual dominos are overlaid around the center of the marker array (referred to as ‘game board&#39; from now on), so you need to aim your webcam around the center of the game board. If you move your</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/articles/Augmented-Reality-Domino-Knock-Down-Game</link>
      <pubDate>Thu, 13 May 2010 21:06:44 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/articles/Augmented-Reality-Domino-Knock-Down-Game</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/c4f/images/10012840_100.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/c4f/images/10012840_220.jpg" height="165" width="220"></media:thumbnail>      
      <dc:creator>Ohan Oda</dc:creator>
      <itunes:author>Ohan Oda</itunes:author>
      <slash:comments>8</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/articles/Augmented-Reality-Domino-Knock-Down-Game/RSS</wfw:commentRss>
      <category>Augmented  Reality</category>
      <category>Gaming</category>
      <category>XNA</category>
      <category>XNA framework</category>
    </item>
  <item>
      <title>XNA Effects – ASCII Art in 3D</title>
      <description><![CDATA[
<p>In this article, I'll demonstrate how to create a post-processing effect to turn 3D renders into ASCII Art.
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="157">
<p><strong>Louis Ingenthron <br>
FV Productions</strong></p>
</td>
<td valign="top" width="481">
<p><b>Code It:</b> <a href="http://xnaascii.codeplex.com/">http://xnaascii.codeplex.com/</a>
<br>
<b>Run It:</b> <a href="http://xnaascii.codeplex.com/">http://xnaascii.codeplex.com/</a></p>
<p><b>Difficulty:</b> Intermediate <br>
<b>Time Required:</b> 1-4 hours <br>
<b>Cost:</b> FREE <br>
<b>Software Needed: </b><a href="http://www.microsoft.com/express/download/">Visual C# Express</a>,
<a href="http://msdn.microsoft.com/en-us/netframework/default.aspx">.NET Framework 3.5</a>,
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=80782277-D584-42D2-8024-893FCD9D3E82&amp;displaylang=en">
XNA Game Studio 3.1</a> <br>
<b>Hardware:</b> Windows PC</p>
</td>
</tr>
</tbody>
</table>
</p>
<h3>Introduction</h3>
<p>Back in November of 2009, I was met with an interesting challenge. Those of you who frequent the XNA Community Forums have probably heard of Nick Gravelyn. He was an XNA MVP, and now he works for the XNA team. He started a little contest called xna7day,
 which was designed to challenge developers to make a game in 7 days using a pre-defined theme.</p>
<p>The theme in November was “Text Based” and its rule was that you were only allowed to use text in the visuals of your game. I saw some of the cool stuff other developers were working on, including one that looked like it had text characters that could walk
 and talk, like people. But my mind immediately went to a different solution: I wanted to make a game that was fully 3D (effectively breaking the rule of rendering text), but then post-process the render into ASCII art, so it would look like it was text.</p>
<p>In this article, I'm going to show you how to do just that:</p>
<p align="center"><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image002_2.jpg"><img title="clip_image002" border="0" alt="clip_image002" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image002_thumb.jpg" width="240" height="180"></a><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image004_2.jpg"><img title="clip_image004" border="0" alt="clip_image004" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image004_thumb.jpg" width="240" height="180"></a></p>
<h4>Setup</h4>
<p>Alright, let's dive right in. Open up the base project. It should compile and run as is. It's a simple, if ugly, first-person shooter. Play through the first level. Go ahead, I'll wait. Bonus points to anyone who recognizes the level design!</p>
<p>Okay, got a playthrough? Let's start! I separated this into three projects so the ASCII stuff can be extracted into other games. We'll be doing most of our work in the ASCII_Renderer project, so let's open that up and add a new class to the Source\ascii
 folder called “Renderer.” I use the namespace “ASCII3D” for all files in this project, so get rid of the extra folder sub-namespaces. Add these using statements, too:</p>
<p><b>C# </b></p>
<pre class="csharpcode"><span class="kwrd">using</span> Microsoft.Xna.Framework;
<span class="kwrd">using</span> Microsoft.Xna.Framework.Content;
<span class="kwrd">using</span> Microsoft.Xna.Framework.Graphics; </pre>
<style type="text/css">
<!--
.csharpcode, .csharpcode 
	{font-size:small;
	color:black;
	font-family:consolas,"Courier New",courier,monospace;
	background-color:#ffffff}
.csharpcode 
	{margin:0em}
.csharpcode .rem
	{color:#008000}
.csharpcode .kwrd
	{color:#0000ff}
.csharpcode .str
	{color:#006080}
.csharpcode .op
	{color:#0000c0}
.csharpcode .preproc
	{color:#cc6633}
.csharpcode .asp
	{background-color:#ffff00}
.csharpcode .html
	{color:#800000}
.csharpcode .attr
	{color:#ff0000}
.csharpcode .alt
	{background-color:#f4f4f4;
	width:100%;
	margin:0em}
.csharpcode .lnum
	{color:#606060}
-->
</style>
<p>This is going to be a post-processing effect, so we'll try to make it portable. Add the following empty function declarations:</p>
<p><b>C# </b></p>
<pre class="csharpcode"><span class="kwrd">public</span> Renderer(ContentManager content, <span class="kwrd">int</span> xRes, <span class="kwrd">int</span> yRes)
{ }

<span class="kwrd">public</span> <span class="kwrd">void</span> StartScene()
{ }

<span class="kwrd">public</span> <span class="kwrd">void</span> EndScene()
{ }</pre>
<p>The constructor takes three arguments: The ContentManager, which we will use to load in our font and post-processing shader, and the resolution variables, which will basically tell us how many lines of text to draw and how many characters in each line. Since
 we have these prototyped, we'll make our only edits to the ASCIIFPS project in the Source\Game1.cs file. But first, we need to define and initialize a new Renderer object. Add a new class variable:<b></b></p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="rem">/// &lt;summary&gt;</span>
<span class="rem">/// This is what handles the ASCII conversion</span>
<span class="rem">/// &lt;/summary&gt;</span>
<span class="kwrd">private</span> Renderer renderer; </pre>
<p>And at the end of the LoadContent function:</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="rem">// and initialize our ASCII renderer</span>
<span class="rem">// the variables we pass make each character</span>
<span class="rem">// appx 10x14 which seems to be the smallest</span>
<span class="rem">// readable size</span>
renderer = <span class="kwrd">new</span> Renderer(Content, Global.ScreenWidth/10,Global.ScreenHeight/14);</pre>
<p></p>
<p>Finally, call the BeginScene and EndScene functions. Modify Game1's Draw function to look like this:<b></b></p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="kwrd">protected</span> <span class="kwrd">override</span> <span class="kwrd">void</span> Draw(GameTime gameTime)
{
    <span class="rem">// notice we only wrap StartScene and</span>
    <span class="rem">// EndScene if we are UsingASCII</span>
    <span class="kwrd">if</span> (UsingASCII)
        renderer.StartScene();

    currentState.Draw(gameTime);

    <span class="kwrd">if</span> (UsingASCII)
        renderer.EndScene();

    <span class="kwrd">base</span>.Draw(gameTime);
}</pre>
<p>The Boolean variable UsingASCII is defined for us. It defaults to false and can be toggled any time in-game by pressing the [M] key. If you want to default it to true for testing purposes, just change its value in Game1's Initialize function. At this point,
 the Renderer is all hooked up, so changes will go right in.</p>
<p>I skimmed over the other classes earlier in the article, but I need to touch on a few of them. Almost everything in GlobalModules is fairly standard utility stuff. We'll be using it, so you might want to glance at the Global class. The ASCIIFPS has the FPS
 engine in it and is almost entirely irrelevant to this article, except that it offers a fun test-bed for our effect. Feel free to go through the code, but I'll warn you: I wrote it for a 7-day contest, so some of it looks like gibberish and is only incidentally
 functional. Finally, we have the ASCII_Renderer project. This already has two files in it: BitmapFontGenerator and Letter. The latter are for generating a bitmap font map that we'll use in a bit.</p>
<p>The functionality isn't specific to this article, since any artist could easily make this. But I'm no artist, which is why I had the computer do it for me. Basically, BitmapFontGenerator has a static function that will take a texture of letters (see the
 Content project in ASCII_Renderer), trim them, sort them by how much they fill their space, and print them into a new Texture for our functions. Feel free to read through the code for this process; I commented it pretty well.</p>
<h4>Post-Processing Basics</h4>
<p>We need to cover the basics of post-processing before we start coding the next part. When post-processing a scene, you first render the entire scene off-screen on a RenderTarget. Then, you can apply any effects you want to the resolved texture before putting
 it on the screen. That's it. Here's how in XNA:<b></b></p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">class</span> Renderer
{
    <span class="kwrd">private</span> RenderTarget2D SrcImage;

    <span class="kwrd">public</span> Renderer(ContentManager content, <span class="kwrd">int</span> xRes, <span class="kwrd">int</span> yRes)
    {
        SrcImage = <span class="kwrd">new</span> RenderTarget2D(Global.Graphics, 
            xRes, yRes, 1, SurfaceFormat.Color);
    }

    <span class="kwrd">public</span> <span class="kwrd">void</span> StartScene()
    {
        Global.Graphics.SetRenderTarget(0, SrcImage);
        Global.Graphics.Clear(Color.Black);
    }

    <span class="kwrd">public</span> <span class="kwrd">void</span> EndScene()
    {
        Global.Graphics.SetRenderTarget(0, <span class="kwrd">null</span>);
        Global.Graphics.Clear(Color.Black);

        <span class="rem">// TODO: draw the texture from the RenderTarget</span>
    }
}</pre>
<p>We create the RenderTarget2D we need in the constructor. Notice that the size of the RenderTarget is the same as the number of ASCII characters we plan to draw on screen. I'll explain that in the next section. In the StartScene function, we set the RenderTarget
 on the device so that all draw calls will actually draw to it. Then we clear the buffer, because RenderTargets' content from frame to frame is undefined. In EndScene, the RenderTarget is set to null, which is DirectX's way of saying “use the screen's framebuffer.”
 Now we need to actually draw the rendered image. XNA requires shaders for all draw calls, even if they're veiled by BasicEffect and SpriteBatch. We need to create a very simple shader to draw the texture to screen. Create a new Effect file in ASCII_Renderer's
 Content project and name it TextEffect. We'll start it out with this:<b></b></p>
<p><b>HLSL <br>
</b></p>
<pre class="csharpcode">texture2D sourceTex;
sampler2D SourceTextureSampler = sampler_state
{
    Texture = &lt;sourceTex&gt;;
    MinFilter = point;
    MagFilter = point;
    MipFilter = point;
    AddressU = wrap;
    AddressV = wrap;
};

<span class="kwrd">struct</span> VertexShaderInput
{
    float4 Position : POSITION0;
    float2 TexCoords : TEXCOORD0;
};

<span class="kwrd">struct</span> VertexShaderOutput
{
    float4 Position : POSITION0;
    float2 TexCoords : TEXCOORD0;
};

VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
{
    VertexShaderOutput output;
    
    output.Position = input.Position;
    output.TexCoords = input.TexCoords;

    <span class="kwrd">return</span> output;
}

float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0
{
    float4 sourceColor = tex2D(SourceTextureSampler,input.TexCoords);
    
    <span class="kwrd">return</span> sourceColor;
}

technique Technique1
{
    pass Pass1
    {
        VertexShader = compile vs_2_0 VertexShaderFunction();
        PixelShader = compile ps_2_0 PixelShaderFunction();
    }
}</pre>
<p>There are a couple things I want to note about the base shader. First, notice that we use point filtering. I'll explain why in the next section, but it's important to see where we did it. Next, notice that we took out all the default transformation matrices.
 We're going to be drawing a single full screen quad, so we can just pass in the coordinates in screen-space—no processing required. Now we need to make a few changes to the Renderer class to use this Effect and draw the rendered game. First, we need to add
 some new class variables:<b></b></p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="kwrd">private</span> Effect effect;

<span class="kwrd">private</span> VertexPositionTexture[] verts;
<span class="kwrd">private</span> VertexDeclaration vd;</pre>
<p></p>
<p>The vertices are going to be for a simple quad that takes up the whole screen. They should be initialized in the LoadContent function like this:<b>
</b></p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">effect = content.Load&lt;Effect&gt;(<span class="str">&quot;TextEffect&quot;</span>);

verts = <span class="kwrd">new</span> VertexPositionTexture[6];
verts[0] = <span class="kwrd">new</span> VertexPositionTexture(
    <span class="kwrd">new</span> Vector3(-1, -1, 0), <span class="kwrd">new</span> Vector2(0, 1));
verts[1] = <span class="kwrd">new</span> VertexPositionTexture(
    <span class="kwrd">new</span> Vector3(1, -1, 0), <span class="kwrd">new</span> Vector2(1, 1));
verts[2] = <span class="kwrd">new</span> VertexPositionTexture(
    <span class="kwrd">new</span> Vector3(-1, 1, 0), <span class="kwrd">new</span> Vector2(0, 0));
verts[3] = verts[1];
verts[4] = verts[2];
verts[5] = <span class="kwrd">new</span> VertexPositionTexture(
    <span class="kwrd">new</span> Vector3(1, 1, 0), <span class="kwrd">new</span> Vector2(1, 0));

vd = <span class="kwrd">new</span> VertexDeclaration(
    Global.Graphics, VertexPositionTexture.VertexElements);</pre>
<p></p>
<p>And finally, we add our draw code to the Draw function:<b></b></p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">effect.Begin();
effect.CurrentTechnique.Passes[0].Begin();

effect.Parameters[<span class="str">&quot;sourceTex&quot;</span>].SetValue(SrcImage.GetTexture());
effect.CommitChanges();
Global.Graphics.RenderState.CullMode = CullMode.None;

Global.Graphics.VertexDeclaration = vd;
Global.Graphics.DrawUserPrimitives&lt;VertexPositionTexture&gt;
     (PrimitiveType.TriangleList, verts, 0, 2);

effect.CurrentTechnique.Passes[0].End();
effect.End();</pre>
<p></p>
<p>We set the texture we got from the RenderTarget, turn off culling (what would be culled in this geometry?), and draw it. Run the project. You should be able to toggle a difference in-game with the [M] key.<b></b></p>
<p><b><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image006_2.jpg"><img title="clip_image006" border="0" alt="clip_image006" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image006_thumb.jpg" width="322" height="242"></a></b></p>
<h3>Drawing Some Text</h3>
<p>“Okay,” you say, “it runs at a lower resolution with the [M] key. So what?” Remember what we set the resolution to in the RenderTarget? Yes, every pixel on this low-resolution version will be a character in the final image. How do we turn these big pixels
 into characters? First we need to define a texture bitmap font. Let's add a Texture2D class variable to Renderer and a const int for the BitmapFontGenerator:
</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="kwrd">public</span> Texture2D text; 
<span class="kwrd">private</span> <span class="kwrd">const</span> <span class="kwrd">int</span> NUM_SLOTS = 256;</pre>
<p></p>
<p>Then we'll use the BitmapFontGenerator to construct this texture:</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">text = BitmapFontGenerator.GenerateTextTexture(content, NUM_SLOTS);</pre>
<p></p>
<p>Okay, that's all for now. Let's go back to the TextEffect.fx. We need to add a few variables:<b></b></p>
<p><b>HLSL <br>
</b></p>
<pre class="csharpcode">float2 dstLetterSize;

<span class="kwrd">int</span> numLetters;

texture2D textTex;
sampler2D TextTextureSampler = sampler_state
{
    Texture = &lt;textTex&gt;;
    MinFilter = point;
    MagFilter = point;
    MipFilter = point;
    AddressU = wrap;
    AddressV = wrap;
};</pre>
<p>The variable “dstLetterSize” will tell us how big the letters on the screen are. The “numLetters” variable will tell us how many letters are in the font texture. And then there's the font texture itself. Here's how we draw actual characters in the Pixel
 Shader:<b></b></p>
<p><b>HLSL <br>
</b></p>
<pre class="csharpcode">float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0
{
     float4 sourceColor = tex2D(SourceTextureSampler,input.TexCoords);
    
     float2 texCoords = float2(
          input.TexCoords.x-((<span class="kwrd">int</span>)
               (input.TexCoords.x/dstLetterSize.x)*dstLetterSize.x),
          input.TexCoords.y-((<span class="kwrd">int</span>)
               (input.TexCoords.y/dstLetterSize.y)*dstLetterSize.y));
     texCoords /= dstLetterSize;
     texCoords.x /= numLetters;
    
     float4 letterColor = tex2D(TextTextureSampler,texCoords);
    
     <span class="kwrd">return</span> letterColor;
}</pre>
<p></p>
<p>We've already seen the source color line. The next line will get the offset into the letter in letter size by subtracting the rounded-down (or integer-casted) texture coordinates scaled down. The line after that scales it back up to a 0-1 range. So now we
 have the new variable texCoords that is filled with the texture coordinates of the letter in 0-1 terms. We divide the x by numLetters because our texture is one long horizontal line of letters. Finally we get the letter color with these new texture coordinates.
 This letter color is grayscale, and when multiplied by the source color, we've assured that each letter is rendered in its own slot with the color from the original 3D render. The last thing we have to do is set those effect variables we defined from Renderer's
 EndScene function. Where we once just set the source texture, we now set these:<b></b></p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">effect.Parameters[<span class="str">&quot;dstLetterSize&quot;</span>].SetValue(
     <span class="kwrd">new</span> Vector2(1.0f/(<span class="kwrd">float</span>)SrcImage.Width, 1.0f/(<span class="kwrd">float</span>)SrcImage.Height));
effect.Parameters[<span class="str">&quot;numLetters&quot;</span>].SetValue(NUM_SLOTS);
effect.Parameters[<span class="str">&quot;sourceTex&quot;</span>].SetValue(SrcImage.GetTexture());
effect.Parameters[<span class="str">&quot;textTex&quot;</span>].SetValue(text);
effect.CommitChanges();</pre>
<p></p>
<p>Most of these are self explanatory, but the dstLetterSize is a bit more complicated. To get the size of the letter in the 0-1 texture space, you take the total size (0 to 1) divided by the number of letters in that axis which, in our case, is the RenderTarget
 size.<b></b></p>
<p><b></b></p>
<p><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image008_2.jpg"><img title="clip_image008" border="0" alt="clip_image008" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image008_thumb.jpg" width="322" height="242"></a></p>
<h3>Wheel of Fortune</h3>
<p>‘M's aren't very interesting. In traditional ASCII art, the whole point is that you use characters that take more space or less space to handle shading. Let's add this code after the multiplication of the texCoords.x:<b></b></p>
<p><b>HLSL <br>
</b></p>
<pre class="csharpcode"><span class="kwrd">float</span> lum = (sourceColor.r&#43;sourceColor.g&#43;sourceColor.b)/3.0; 
<span class="kwrd">float</span> val = max(fullValueColor.r,
     max(fullValueColor.g,fullValueColor.b));
    
<span class="kwrd">int</span> ind = ((numLetters-1)-
     max(0,min((numLetters-1),(<span class="kwrd">int</span>)(lum*numLetters))));

texCoords.x &#43;= ind*(1.0/numLetters);</pre>
<p></p>
<p><b></b></p>
<p>The first line gets the luminosity of the source color. The next gets the value. The next line gets the letter index from the luminosity. Subtracting it from (numLetters-1) reverses the index, because we want luminosity=1 to equate to index=0, because that
 has the letter that takes up the most space. Run the game. You'll see it now shows value, but it's still pretty hard to tell what's on the screen:</p>
<p><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image010_2.jpg"><img title="clip_image010" border="0" alt="clip_image010" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image010_thumb.jpg" width="322" height="242"></a></p>
<p>The last thing we can do is colorize it. You could just multiply it by the source color and get something like this…</p>
<p><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image012_2.jpg"><img title="clip_image012" border="0" alt="clip_image012" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image012_thumb.jpg" width="322" height="242"></a></p>
<p>…but everything looks too dark because the source color still has its value. Plus we're already practically multiplying it by choosing the letter. So we need to get the full value color first:</p>
<p><b></b></p>
<p><b>HLSL <br>
</b></p>
<pre class="csharpcode">float4 fullValueColor = sourceColor * (1.0/val);</pre>
<p></p>
<p>We just multiply the original color by the inverse of the value. And then multiply that fullValueColor by the letter color in the return:<b></b></p>
<p><b>HLSL <br>
</b></p>
<pre class="csharpcode"><span class="kwrd">return</span> fullValueColor * letterColor;</pre>
<p></p>
<p>That should produce a nice result:</p>
<p><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image014_2.jpg"><img title="clip_image014" border="0" alt="clip_image014" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/9994745/clip_image014_thumb.jpg" width="407" height="305"></a><b></b></p>
<h3>Conclusion</h3>
<p>And there it is! We have a real-time 3D render transformed into ASCII art. It's difficult to see and it's not very useful, but it's sure neat, eh? Why not add it as an unlockable easter egg in your next XBL Indie Game? I'm looking forward to seeing how people
 use this effect! If you use it, please <a href="mailto:louisingenthron@fvproductions.org">
send me an email</a> with a screenshot!</p>
<h3>About The Author</h3>
<p>Louis Ingenthron is a Game Developer in Orlando, FL. He works on commercial Console and PC titles, but runs his own Indie Games company, FV Productions, on the side. He is best known for his open source XNA rhythm game Unsigned and specializes in real-time
 Graphics programming. He has been working with XNA since the 2.0 Beta and with .NET C# for just as long. He is also familiar with several other development languages, such as C, C&#43;&#43;, and Java. Occasionally, he can even be found doing web development and Flash.
 Louis also writes for MSDN's Coding4Fun website, contributing articles on a monthly basis.</p>
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:bfa52c016c3640c7a8699e7600c99302">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/articles/XNA-Effects--ASCII-Art-in-3D</comments>
      <itunes:summary>
In this article, I&#39;ll demonstrate how to create a post-processing effect to turn 3D renders into ASCII Art.




Louis Ingenthron 
FV Productions 


Code It: http://xnaascii.codeplex.com/

Run It: http://xnaascii.codeplex.com/ 
Difficulty: Intermediate 
Time Required: 1-4 hours 
Cost: FREE 
Software Needed: Visual C# Express,
.NET Framework 3.5,

XNA Game Studio 3.1 
Hardware: Windows PC 




 
Introduction
Back in November of 2009, I was met with an interesting challenge. Those of you who frequent the XNA Community Forums have probably heard of Nick Gravelyn. He was an XNA MVP, and now he works for the XNA team. He started a little contest called xna7day,
 which was designed to challenge developers to make a game in 7 days using a pre-defined theme. 
The theme in November was “Text Based” and its rule was that you were only allowed to use text in the visuals of your game. I saw some of the cool stuff other developers were working on, including one that looked like it had text characters that could walk
 and talk, like people. But my mind immediately went to a different solution: I wanted to make a game that was fully 3D (effectively breaking the rule of rendering text), but then post-process the render into ASCII art, so it would look like it was text. 
In this article, I&#39;m going to show you how to do just that: 
 
Setup
Alright, let&#39;s dive right in. Open up the base project. It should compile and run as is. It&#39;s a simple, if ugly, first-person shooter. Play through the first level. Go ahead, I&#39;ll wait. Bonus points to anyone who recognizes the level design! 
Okay, got a playthrough? Let&#39;s start! I separated this into three projects so the ASCII stuff can be extracted into other games. We&#39;ll be doing most of our work in the ASCII_Renderer project, so let&#39;s open that up and add a new class to the Source\ascii
 folder called “Renderer.” I use the namespace “ASCII3D” for all files in this project, so get rid of the extra folder sub-namespaces. Add these using statemen</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/articles/XNA-Effects--ASCII-Art-in-3D</link>
      <pubDate>Wed, 14 Apr 2010 13:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/articles/XNA-Effects--ASCII-Art-in-3D</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/c4f/images/9994745_100.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/c4f/images/9994745_220.jpg" height="165" width="220"></media:thumbnail>      
      <dc:creator>Louis Ingenthron </dc:creator>
      <itunes:author>Louis Ingenthron </itunes:author>
      <slash:comments>11</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/articles/XNA-Effects--ASCII-Art-in-3D/RSS</wfw:commentRss>
      <category>Gaming</category>
      <category>Media</category>
      <category>XNA</category>
      <category>Mash Up</category>
      <category>XNA framework</category>
    </item>
  <item>
      <title>Surface + Dungeons and Dragons = Surfacescapes</title>
      <description><![CDATA[I met with the folks from Carnegie Mellon who created the Dungeons and Dragons game
<a shape="rect" href="http://blogs.msdn.com/surface/archive/2009/10/19/dungeons-dragons-done-right-on-microsoft-surface.aspx" shape="rect">
on Microsoft Surface</a>&nbsp;called <a shape="rect" href="http://www.etc.cmu.edu/projects/surfacescapes/index.html" shape="rect">
Surfacescapes</a>, which is a double helping of geek. I asked them about some of the challenges they faced, some of the decisions they made (like virtual dice), and where they hope to go with it in the future. If you're a D&amp;D or Surface fan, don't miss it at&nbsp;<a shape="rect" href="http://www.paxsite.com/paxeast/index.php" shape="rect">Penny
 Arcade</a> on March 26th. <br /><br />In this game, the DM sits off to the side with a laptop or touch slate while the application tracks combat states and statistics. Best of all you can still use your favorite miniatures on the table!
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/gaming/RSS&WT.dl=0&WT.entryid=Entry:RSSView:8a165d9a016d4253a4949deb000d62cc">]]></description>
      <comments>http://channel9.msdn.com/Blogs/LarryLarsen/Surface--Dungeons-and-Dragons--Surfacescapes</comments>
      <itunes:summary>I met with the folks from Carnegie Mellon who created the Dungeons and Dragons game

on Microsoft Surface&amp;nbsp;called 
Surfacescapes, which is a double helping of geek. I asked them about some of the challenges they faced, some of the decisions they made (like virtual dice), and where they hope to go with it in the future. If you&#39;re a D&amp;amp;D or Surface fan, don&#39;t miss it at&amp;nbsp;Penny
 Arcade on March 26th. In this game, the DM sits off to the side with a laptop or touch slate while the application tracks combat states and statistics. Best of all you can still use your favorite miniatures on the table!
</itunes:summary>
      <itunes:duration>924</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/LarryLarsen/Surface--Dungeons-and-Dragons--Surfacescapes</link>
      <pubDate>Mon, 22 Mar 2010 01:54:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/LarryLarsen/Surface--Dungeons-and-Dragons--Surfacescapes</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/536217_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/536217_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/7/1/2/6/3/5/DNDSurface_320_ch9.png" height="240" width="320"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/7/1/2/6/3/5/DNDSurface_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/7/1/2/6/3/5/DNDSurface_85_ch9.png" height="64" width="85"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/1/2/6/3/5/DNDSurface_2MB_ch9.wmv" expression="full" duration="924" fileSize="282187234" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/1/2/6/3/5/DNDSurface_ch9.mp3" expression="full" duration="924" fileSize="7397513" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/1/2/6/3/5/DNDSurface_ch9.mp4" expression="full" duration="924" fileSize="121759049" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/1/2/6/3/5/DNDSurface_ch9.wma" expression="full" duration="924" fileSize="7481933" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/1/2/6/3/5/DNDSurface_ch9.wmv" expression="full" duration="924" fileSize="180066469" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/1/2/6/3/5/DNDSurface_Zune_ch9.wmv" expression="full" duration="924" fileSize="128962521" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/7/1/2/6/3/5/DNDSurface_ch9.wmv" length="180066469" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Larry Larsen</dc:creator>
      <itunes:author>Larry Larsen</itunes:author>
      <slash:comments>5</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/LarryLarsen/Surface--Dungeons-and-Dragons--Surfacescapes/RSS</wfw:commentRss>
      <category>Game Design</category>
      <category>Gaming</category>
      <category>Surface</category>
    </item>    
</channel>
</rss>