<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Antimail : gaming</title><link>http://blogs.msdn.com/adioltean/archive/tags/gaming/default.aspx</link><description>Tags: gaming</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>The evolution of customer support</title><link>http://blogs.msdn.com/adioltean/archive/2006/12/09/the-evolution-of-customer-support.aspx</link><pubDate>Sat, 09 Dec 2006 11:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1244514</guid><dc:creator>AdiOltean</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/adioltean/comments/1244514.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adioltean/commentrss.aspx?PostID=1244514</wfw:commentRss><description>&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2000 - You call their customer support. “Wait a second – did you actually install an application after installing our sound card? We don’t support this configuration. &amp;lt;hang&amp;gt;” (and that guy will likely get promoted for solving most support calls in record time).&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2001 – You call their customer support. Nobody answers because the company is out of business due to the .com fallout. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2002 – You call their customer support. But you get someone with a think non-English accent which keeps asking you about completely unrelated stuff.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2003 – You finally figure out that if you put your problem on the newsgroups you will get help. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2004 - You complain about the problem in your blog, and you eventually get suggestions in comments section.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2005 - You complain about the problem in your blog, get instant notoriety, and wait for someone from that company to reply in the comments section :-)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;2006 – You post a video on YouTube with your problem,&amp;nbsp;get instant notoriety, and wait for someone from that company to reply in the comments section. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;An example in the last category: Here is a guy describing his problem with the Xbox 360 wireless headset.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;A href="http://www.joystiq.com/2006/12/09/todays-hottest-game-video-360-headset-woes/" mce_href="http://www.joystiq.com/2006/12/09/todays-hottest-game-video-360-headset-woes/"&gt;&lt;FONT face=Calibri size=3&gt;http://www.joystiq.com/2006/12/09/todays-hottest-game-video-360-headset-woes/&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Today's most-watched YouTube game video shows a gamer who is unable to connect his original Xbox 360 controller and Wireless Headset together on channel one. The demonstration implies that this is a widespread issue with no fix yet from Microsoft, &lt;A href="http://www.joystiq.com/2006/11/09/joystiq-video-xbox-360-wireless-headset-review/" mce_href="http://www.joystiq.com/2006/11/09/joystiq-video-xbox-360-wireless-headset-review/"&gt;&lt;FONT color=#0000ff&gt;although we haven't had&lt;/FONT&gt;&lt;/A&gt; any issues.&lt;BR&gt;&lt;BR&gt;The gamer shows the process of activating the headset and having a conflict with his original controller. He then repeats the steps with a new, extra controller and has no problem.&lt;BR&gt;&lt;BR&gt;It's like the I-Team without having to sit through the rest of the made-up local news. See the video after the break.&lt;/SPAN&gt;&lt;/I&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;I don't know the solution to his problem, but I notified the XBox team anyway... &amp;nbsp;I hope that they will respond! &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;[&lt;A class="" href="http://digg.com/submit?phase=2&amp;amp;url=http%3A%2F%2Fblogs.msdn.com%2Fadioltean%2Farchive%2F2006%2F12%2F09%2Fthe-evolution-of-customer-support.aspx&amp;amp;title=The%20evolution%20of%20customer%20support&amp;amp;bodytext=Your%20comments%20here!&amp;amp;topic=software" mce_href="http://digg.com/submit?phase=2&amp;amp;url=http%3A%2F%2Fblogs.msdn.com%2Fadioltean%2Farchive%2F2006%2F12%2F09%2Fthe-evolution-of-customer-support.aspx&amp;amp;title=The%20evolution%20of%20customer%20support&amp;amp;bodytext=Your%20comments%20here!&amp;amp;topic=software"&gt;Submit this story to digg.com&lt;/A&gt;]&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;P.S. By the way, for any problems, please call the Microsoft support - they provide an excellent service, (as they always did), won't hang on you :-), and if it is our problem, the call is free.] &amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1244514" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adioltean/archive/tags/Click+or+miss/default.aspx">Click or miss</category><category domain="http://blogs.msdn.com/adioltean/archive/tags/gaming/default.aspx">gaming</category><category domain="http://blogs.msdn.com/adioltean/archive/tags/XBox/default.aspx">XBox</category></item><item><title>Lock-free programming: used now in games!</title><link>http://blogs.msdn.com/adioltean/archive/2006/11/08/lock-free-programming-used-now-in-games.aspx</link><pubDate>Thu, 09 Nov 2006 03:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1041910</guid><dc:creator>AdiOltean</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/adioltean/comments/1041910.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adioltean/commentrss.aspx?PostID=1041910</wfw:commentRss><description>&lt;P&gt;&lt;A class="" href="http://en.wikipedia.org/wiki/Lock-free_and_wait-free_algorithms" mce_href="http://en.wikipedia.org/wiki/Lock-free_and_wait-free_algorithms"&gt;Lock-free programming&lt;/A&gt; is a performant multi-threaded synchronization technique that allows you to safely&amp;nbsp;manage in-memory data in a controlled manner. In its essence, the idea is to write your multi-threaded programs &lt;STRONG&gt;without &lt;/STRONG&gt;using locks. Why is this better? For one thing, using&amp;nbsp;OS constructs like mutexes will sometime induce an additional performance penalty. &lt;/P&gt;
&lt;P&gt;For example,&amp;nbsp;the occasional user-mode/kernel-mode transition for acquiring or releasing a lock induces an additional, unpredictable&amp;nbsp;delay in the course of things. This additional delay causes other threads (waiting for the resource) to be delayed as well, causing a cascade effect which in the end slows down the whole program. This special situation is called &lt;STRONG&gt;lock convoy&lt;/STRONG&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The name lock convoy comes from the bottleneck that appears on a highway when a car performs a full stop on a lane. All the cars in the back will stop as well, creating a larger and larger bottleneck. The interesting thing is that the bottleneck continues to stay there for hours even if the original car is long gone. &lt;/P&gt;
&lt;P&gt;Lock convoys can be tricky to detect and eliminate in performant code, but lock-free programming is one of the techniques that can be used to eliminate these&amp;nbsp;unpredictable delays. For lock-freep programming, &lt;A class="" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/interlockedcompareexchange.asp" mce_href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/interlockedcompareexchange.asp"&gt;InterlockedCompareExchange( )&lt;/A&gt; is your friend :-)&lt;/P&gt;
&lt;P&gt;Are these lock-free techniques used in real life? Yes - mostly in the high-performant, CPU-intensive OS-level code, but in applications as well. &lt;/P&gt;
&lt;P&gt;Valve plans to &lt;A class="" href="http://arstechnica.com/articles/paedia/cpu/valve-multicore.ars" mce_href="http://arstechnica.com/articles/paedia/cpu/valve-multicore.ars"&gt;incorporate&lt;/A&gt;&amp;nbsp;&lt;A class=""&gt;lock-free&lt;/A&gt; programming techniques in the latest Steam engine. These techniques allows you to maximize the CPU usage in multi-core configurations, by avoiding &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;The approach that Valve finally chose was a combination of the coarse and fine-grained, with some extra enhancements thrown in. Some systems were split on multiple cores using coarse threading. Other tasks, such as VVIS (the calculations of what objects are visible to the player from their point of view) were split up using fine-grained threading. Lastly, whenever part of a core is idle, work that can be precalculated without lagging or adversely affecting the game experience (such as AI calculations or pathfinding) was queued up to be delivered to the game engine later.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Valve's approach was the most difficult of all possible methods for utilizing multiple cores, but if they could pull it off, it would deliver the maximum possible benefits on systems like Intel's new quad-core &lt;/EM&gt;&lt;A href="http://arstechnica.com/news.ars/post/20061102-8135.html"&gt;&lt;EM&gt;Kentsfield&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; chips.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;[...]&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;The end results of Valve's efforts were even better than they had initially hoped. Not only was the speedup on the four-core Kentsfield chips nearly linear in most cases (an average of 3.2 times over a single core) but having four CPUs instead of two made it possible to do things that simply couldn't be done with fewer cores.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;These new opportunities include greatly increased particle effects. Instead of smoke and explosions being static overlays on top of the game action, programmers can now develop interactive particles, such as smoke that the player can push with his hands, or burning embers that can singe the player if he gets too close. In addition, extra cores could be used for dramatically better AI, or to apply artificial intelligence techniques (like pathfinding) to huge numbers of enemies. Imagine, for example, a Lord of the Rings-type battle, with all the enemies acting independently and intelligently. With enough cores, this sort of thing could be put into a game and take place in real-time.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1041910" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adioltean/archive/tags/Programming/default.aspx">Programming</category><category domain="http://blogs.msdn.com/adioltean/archive/tags/Click+or+miss/default.aspx">Click or miss</category><category domain="http://blogs.msdn.com/adioltean/archive/tags/gaming/default.aspx">gaming</category><category domain="http://blogs.msdn.com/adioltean/archive/tags/XBox/default.aspx">XBox</category></item></channel></rss>