<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>英特尔® 软件网络博客 - 中文 &#187; 卢卷彬 (Intel)</title>
	<atom:link href="http://softwareblogs-zho.intel.com/author/juanbin-lu/feed/" rel="self" type="application/rss+xml" />
	<link>http://softwareblogs-zho.intel.com</link>
	<description></description>
	<pubDate>Sat, 11 Oct 2008 15:07:13 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>2008春季IDF的Smoke Demo</title>
		<link>http://softwareblogs-zho.intel.com/2008/04/29/2008idfsmoke-demo/</link>
		<comments>http://softwareblogs-zho.intel.com/2008/04/29/2008idfsmoke-demo/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 01:30:12 +0000</pubDate>
		<dc:creator>卢卷彬 (Intel)</dc:creator>
		
		<category><![CDATA[多核技术]]></category>

		<category><![CDATA[游戏]]></category>

		<guid isPermaLink="false">http://softwareblogs-zho.intel.com/2008/04/29/2008idfsmoke-demo/</guid>
		<description><![CDATA[
今年4月2日和3日，我有幸参加了英特尔2008年度IDF。在这次展会中，我和一位美国的同事负责一个展台（因为他不会说中文）。展台的内容是一个名为“烟雾” 的demo，运行在英特尔下一代Nehalem架构的CPU平台上，该平台有4个CPU核心，支持8个线程同时运行。该demo的主要目的就是向游戏开发者展示如何将一个游戏的多个模块进行多线程化。这个叫“Smoke”的demo，几乎可以将所有的CPU都利用上，从游戏截图我们可以看到，8个逻辑CPU的利用率几乎都达到了60%~70%。在这个demo运行时我们也可以指定游戏以4个线程或者2个线程来运行，游戏的帧率也随之下降。



 
多核心处理器是越来越普遍了,最低端的双核CPU价格在400块人民币左右，新买机器的人，已经不会考虑单核CPU了，尤其是台式机。一些中高端的玩家甚至已经开始使用4核心了。然而现在市场上的游戏，绝大多数都没有做很多的多线程工作，我们玩游戏的时候，多余的1个或者3个CPU核心都白白的空闲着。如果利用多线程变成来充分使用空闲的CPU计算资源，是游戏开发者需要思考的一个问题。
基本上多线程有2个好处，一个是提高游戏的帧率。如果我的游戏单线程的时候只能在20fps以下，无法流畅的运行。那么我尝试将游戏中的一些计算模块，比如动画，AI，物理，粒子等分离出来，用单独的线程来计算，在需要这些模块计算结果的时候同步等待一下，那么就可以利用空闲的CPU计算资源，从而提高游戏的帧率。另外一个好处就是可以增加游戏的特性。我们的游戏策划者都有很好的点子，给游戏增加一些吸引人的特性，但是这些特性需要额外的计算，如果按照单线程来开发，势必是影响游戏的性能，这就限制了我们的想法。但如果我们的游戏是多线程过的，那么就有更多的空间来允许我们增加额外的计算，发挥我们的创意。
英特尔通过自己开发游戏demo（比如以前的“城堡破坏游戏”和这个“烟雾”）供游戏开发者参考，或直接与游戏开发者合作，来帮助他们将自己的游戏多线程化。这些demo都是免费提供源代码的。当然，每个游戏架构都不一样，这些demo只能给你一个参考，也许你会从它们的多线程方法中得到一些启示。
 
据说，恩，据说，需要Smoke demo代码的，可以发送邮件到smokecode@intel.com索取，当前该demo还在开发当中，还无法提供代码，以后可以提供的时候，估计会发邮件通知。
另外再加2句，不要抱怨这些demo的画面和效果，也许有人会说我用单线程可以做出比这好许多和快许多的场景。请记住这只是demo，不是要上市的产品，主要是介绍多线程游戏的方法，利用这些方法，或许可以帮助游戏开发者做出更好的游戏。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://softwareblogs-zho.intel.com/wordpress/wp-content/uploads/2008/05/p1130522s.jpg" title="p1130522s.jpg"></a></p>
<p><a href="http://softwareblogs-zho.intel.com/wordpress/wp-content/uploads/2008/05/p1130523ss.jpg" title="p1130523ss.jpg"></a>今年<font face="Times New Roman">4</font>月<font face="Times New Roman">2</font>日和<font face="Times New Roman">3</font>日，我有幸参加了英特尔<font face="Times New Roman">2008</font>年度<font face="Times New Roman">IDF</font>。在这次展会中，我和一位美国的同事负责一个展台（因为他不会说中文）。展台的内容是一个名为“烟雾”<font face="Times New Roman"> </font>的<font face="Times New Roman">demo</font>，运行在英特尔下一代<font face="Times New Roman">Nehalem</font>架构的<font face="Times New Roman">CPU</font>平台上，该平台有<font face="Times New Roman">4</font>个<font face="Times New Roman">CPU</font>核心，支持<font face="Times New Roman">8</font>个线程同时运行。该<font face="Times New Roman">demo</font>的主要目的就是向游戏开发者展示如何将一个游戏的多个模块进行多线程化。这个叫“<font face="Times New Roman">Smoke</font>”的<font face="Times New Roman">demo</font>，几乎可以将所有的<font face="Times New Roman">CPU</font>都利用上，从游戏截图我们可以看到，<font face="Times New Roman">8</font>个逻辑<font face="Times New Roman">CPU</font>的利用率几乎都达到了<font face="Times New Roman">60%~70%</font>。在这个<font face="Times New Roman">demo</font>运行时我们也可以指定游戏以<font face="Times New Roman">4</font>个线程或者<font face="Times New Roman">2</font>个线程来运行，游戏的帧率也随之下降。</p>
<p><a href="http://softwareblogs-zho.intel.com/wordpress/wp-content/uploads/2008/05/p1130522s.jpg" title="p1130522s.jpg"></a></p>
<p><a href="http://softwareblogs-zho.intel.com/wordpress/wp-content/uploads/2008/05/p1130522s.jpg" title="p1130522s.jpg"></a></p>
<p><a href="http://softwareblogs-zho.intel.com/wordpress/wp-content/uploads/2008/05/p1130522s.jpg" title="p1130522s.jpg"></a></p>
<p> <a href="http://softwareblogs-zho.intel.com/wordpress/wp-content/uploads/2008/05/p1130522ss.jpg" title="p1130522ss.jpg"><img src="http://softwareblogs-zho.intel.com/wordpress/wp-content/uploads/2008/05/p1130522ss.jpg" alt="p1130522ss.jpg" /></a></p>
<p>多核心处理器是越来越普遍了<font face="Times New Roman">,</font>最低端的双核<font face="Times New Roman">CPU</font>价格在<font face="Times New Roman">400</font>块人民币左右，新买机器的人，已经不会考虑单核<font face="Times New Roman">CPU</font>了，尤其是台式机。一些中高端的玩家甚至已经开始使用<font face="Times New Roman">4</font>核心了。然而现在市场上的游戏，绝大多数都没有做很多的多线程工作，我们玩游戏的时候，多余的<font face="Times New Roman">1</font>个或者<font face="Times New Roman">3</font>个<font face="Times New Roman">CPU</font>核心都白白的空闲着。如果利用多线程变成来充分使用空闲的<font face="Times New Roman">CPU</font>计算资源，是游戏开发者需要思考的一个问题。</p>
<p>基本上多线程有<font face="Times New Roman">2</font>个好处，一个是提高游戏的帧率。如果我的游戏单线程的时候只能在<font face="Times New Roman">20fps</font>以下，无法流畅的运行。那么我尝试将游戏中的一些计算模块，比如动画，<font face="Times New Roman">AI</font>，物理，粒子等分离出来，用单独的线程来计算，在需要这些模块计算结果的时候同步等待一下，那么就可以利用空闲的<font face="Times New Roman">CPU</font>计算资源，从而提高游戏的帧率。另外一个好处就是可以增加游戏的特性。我们的游戏策划者都有很好的点子，给游戏增加一些吸引人的特性，但是这些特性需要额外的计算，如果按照单线程来开发，势必是影响游戏的性能，这就限制了我们的想法。但如果我们的游戏是多线程过的，那么就有更多的空间来允许我们增加额外的计算，发挥我们的创意。</p>
<p>英特尔通过自己开发游戏<font face="Times New Roman">demo</font>（比如以前的“城堡破坏游戏”和这个“烟雾”）供游戏开发者参考，或直接与游戏开发者合作，来帮助他们将自己的游戏多线程化。这些<font face="Times New Roman">demo</font>都是免费提供源代码的。当然，每个游戏架构都不一样，这些<font face="Times New Roman">demo</font>只能给你一个参考，也许你会从它们的多线程方法中得到一些启示。</p>
<p><a href="http://softwareblogs-zho.intel.com/wordpress/wp-content/uploads/2008/05/p1130523ss.jpg" title="p1130523ss.jpg"><img src="http://softwareblogs-zho.intel.com/wordpress/wp-content/uploads/2008/05/p1130523ss.jpg" alt="p1130523ss.jpg" /></a> </p>
<p>据说，恩，据说，需要<font face="Times New Roman">Smoke demo</font>代码的，可以发送邮件到<font face="Times New Roman">smokecode@intel.com</font>索取，当前该<font face="Times New Roman">demo</font>还在开发当中，还无法提供代码，以后可以提供的时候，估计会发邮件通知。</p>
<p>另外再加<font face="Times New Roman">2</font>句，不要抱怨这些<font face="Times New Roman">demo</font>的画面和效果，也许有人会说我用单线程可以做出比这好许多和快许多的场景。请记住这只是<font face="Times New Roman">demo</font>，不是要上市的产品，主要是介绍多线程游戏的方法，利用这些方法，或许可以帮助游戏开发者做出更好的游戏。</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-zho.intel.com/2008/04/29/2008idfsmoke-demo/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
