<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: 向食人魔怪說嗨：與OGRE的第一類接觸</title>
	<atom:link href="http://blog.monkeypotion.net/gameprog/note/ogre-dev-intro/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.monkeypotion.net/gameprog/note/ogre-dev-intro</link>
	<description>遊戲開發‧遊戲程式‧遊戲設計</description>
	<lastBuildDate>Tue, 07 Sep 2010 11:33:03 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: 半路</title>
		<link>http://blog.monkeypotion.net/gameprog/note/ogre-dev-intro/comment-page-1#comment-3107</link>
		<dc:creator>半路</dc:creator>
		<pubDate>Fri, 20 Nov 2009 17:14:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.monkeypotion.net/?p=94#comment-3107</guid>
		<description>@邪恶代码:
你好，

很有道理，的確在一個正確的物件導向設計的模組中，功能執行者不應負責檢查前置條件合法與否，我想這一點，或許也是 OGRE 作者設計出這種使用方法的本意吧！

但從另一個角度來看，就現實層面來說，程式設計者可是以懶惰著稱的傢伙（我自己也是），許多人並不會嚴謹地遵循物件導向設計的思維理念，所以若要將前置條件交由模組的使用者自行檢查的話，仍然會產生一定的風險，不可不慎哪。

感謝你提供的設計思維！ ：）</description>
		<content:encoded><![CDATA[<p>@邪恶代码:<br />
你好，</p>
<p>很有道理，的確在一個正確的物件導向設計的模組中，功能執行者不應負責檢查前置條件合法與否，我想這一點，或許也是 OGRE 作者設計出這種使用方法的本意吧！</p>
<p>但從另一個角度來看，就現實層面來說，程式設計者可是以懶惰著稱的傢伙（我自己也是），許多人並不會嚴謹地遵循物件導向設計的思維理念，所以若要將前置條件交由模組的使用者自行檢查的話，仍然會產生一定的風險，不可不慎哪。</p>
<p>感謝你提供的設計思維！ ：）</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 邪恶代码</title>
		<link>http://blog.monkeypotion.net/gameprog/note/ogre-dev-intro/comment-page-1#comment-3090</link>
		<dc:creator>邪恶代码</dc:creator>
		<pubDate>Tue, 17 Nov 2009 02:23:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.monkeypotion.net/?p=94#comment-3090</guid>
		<description>第一次看到本文，寫的很不錯。但對於文中提到的：
“所以為了正確地取得 Animation 物件，必須要使用這樣的作法：

view plaincopy to clipboardprint?
Animation* pkAnim = NULL;   
String kAnimationName = &quot;char_idle&quot;;   
// 先檢查存在性（不會拋出例外狀況）   
if (mSceneMgr-&gt;hasAnimation(kAnimationName)) {   
    // 確認存在就可以取值   
    pkAnim = mSceneMgr-&gt;getAnimation(kAnimationName);   
}  

Animation* pkAnim = NULL;
String kAnimationName = &quot;char_idle&quot;;
// 先檢查存在性（不會拋出例外狀況）
if (mSceneMgr-&gt;hasAnimation(kAnimationName)) {
    // 確認存在就可以取值
    pkAnim = mSceneMgr-&gt;getAnimation(kAnimationName);
}
原來可以直接檢查 getAnimation() 回傳值是否為 NULL 值的方式，在 OGRE 中需要多出一個檢查的步驟，對於許多程式設計者來說，可能一時也難以習慣這樣的作法。”

我有不同的看法,其實OO中有個這樣的習慣或是說UC的約定，功能執行者不負責檢查前置條件是否成立，UC中，前置條件是功能正常執行的最小保證，應該由呼叫者來保證前置條件的正確性。在您說的這個例子中，getAnimation本身是類的一個public公開方法也就是說是一個對象提供的一個功能執行者，那麼的確不該在內部來檢查參數的正確性。但如果getAnimation是private或是protected的話，那麼他的參數就不是前置條件，在UC中應該定義為“約束”，“約束”也可以是參數，這時，約束便可以在內部作檢測，因為被命名為private或protected的目的就是不想在類外部來暴露這個操作，換言之，它就不是一個對象提供的一個功能執行者。

上面是在下的一點愚見。</description>
		<content:encoded><![CDATA[<p>第一次看到本文，寫的很不錯。但對於文中提到的：<br />
“所以為了正確地取得 Animation 物件，必須要使用這樣的作法：</p>
<p>view plaincopy to clipboardprint?<br />
Animation* pkAnim = NULL;<br />
String kAnimationName = &#8220;char_idle&#8221;;<br />
// 先檢查存在性（不會拋出例外狀況）<br />
if (mSceneMgr-&gt;hasAnimation(kAnimationName)) {<br />
    // 確認存在就可以取值<br />
    pkAnim = mSceneMgr-&gt;getAnimation(kAnimationName);<br />
}  </p>
<p>Animation* pkAnim = NULL;<br />
String kAnimationName = &#8220;char_idle&#8221;;<br />
// 先檢查存在性（不會拋出例外狀況）<br />
if (mSceneMgr-&gt;hasAnimation(kAnimationName)) {<br />
    // 確認存在就可以取值<br />
    pkAnim = mSceneMgr-&gt;getAnimation(kAnimationName);<br />
}<br />
原來可以直接檢查 getAnimation() 回傳值是否為 NULL 值的方式，在 OGRE 中需要多出一個檢查的步驟，對於許多程式設計者來說，可能一時也難以習慣這樣的作法。”</p>
<p>我有不同的看法,其實OO中有個這樣的習慣或是說UC的約定，功能執行者不負責檢查前置條件是否成立，UC中，前置條件是功能正常執行的最小保證，應該由呼叫者來保證前置條件的正確性。在您說的這個例子中，getAnimation本身是類的一個public公開方法也就是說是一個對象提供的一個功能執行者，那麼的確不該在內部來檢查參數的正確性。但如果getAnimation是private或是protected的話，那麼他的參數就不是前置條件，在UC中應該定義為“約束”，“約束”也可以是參數，這時，約束便可以在內部作檢測，因為被命名為private或protected的目的就是不想在類外部來暴露這個操作，換言之，它就不是一個對象提供的一個功能執行者。</p>
<p>上面是在下的一點愚見。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 半路</title>
		<link>http://blog.monkeypotion.net/gameprog/note/ogre-dev-intro/comment-page-1#comment-2802</link>
		<dc:creator>半路</dc:creator>
		<pubDate>Tue, 22 Sep 2009 16:32:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.monkeypotion.net/?p=94#comment-2802</guid>
		<description>@nichole:
很久一段時間沒有繼續學習 OGRE 了，所以目前在這方面，我可能沒辦法提供什麼有用的教學資訊。就我之前的印象所及，OGRE 的資源系統有一些 pitfall 存在，我會建議你深入源碼去剖析相關 API 的內部構造，才不會產生誤用資源系統的可能性。</description>
		<content:encoded><![CDATA[<p>@nichole:<br />
很久一段時間沒有繼續學習 OGRE 了，所以目前在這方面，我可能沒辦法提供什麼有用的教學資訊。就我之前的印象所及，OGRE 的資源系統有一些 pitfall 存在，我會建議你深入源碼去剖析相關 API 的內部構造，才不會產生誤用資源系統的可能性。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: nichole</title>
		<link>http://blog.monkeypotion.net/gameprog/note/ogre-dev-intro/comment-page-1#comment-2799</link>
		<dc:creator>nichole</dc:creator>
		<pubDate>Tue, 22 Sep 2009 03:43:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.monkeypotion.net/?p=94#comment-2799</guid>
		<description>這段時間在看ogre的source,发现资源管理这部分写的特别复杂。
不知道这样做有什么好处。
麻烦版主有空能在多介绍一些ogre架构的文章。
网上找了好久也没有太好的这方面的文章</description>
		<content:encoded><![CDATA[<p>這段時間在看ogre的source,发现资源管理这部分写的特别复杂。<br />
不知道这样做有什么好处。<br />
麻烦版主有空能在多介绍一些ogre架构的文章。<br />
网上找了好久也没有太好的这方面的文章</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 半路</title>
		<link>http://blog.monkeypotion.net/gameprog/note/ogre-dev-intro/comment-page-1#comment-2398</link>
		<dc:creator>半路</dc:creator>
		<pubDate>Thu, 18 Jun 2009 05:47:08 +0000</pubDate>
		<guid isPermaLink="false">http://blog.monkeypotion.net/?p=94#comment-2398</guid>
		<description>@Alvin:
很同意你的見解！

在架構設計上，OGRE 真的有很值得學習之處，缺點也如同你所提的，過度使用 STL 容器以及低階演算法效能不佳等等。我想，以可用於商業化遊戲的免費資源來說，OGRE 已算是目前最完善也最活躍的繪圖引擎了。

我認為 OGRE 整體的設計理念與系統架構相當正確。做為一個開源專案，OGRE 的目標是先建構出精巧又可擴充的引擎設計架構，之後再逐步修改細節與底層的部分。當然，OGRE 的未來還有很大的進步空間、很長的路要走，就看開源社群和專案主導者 sinbad 的作為了。

國外有個使用 OGRE 的 MMORPG 正在開發中，大概要 18 至 24 個月後才會上市，我很期待那款遊戲作品的表現～ ^^</description>
		<content:encoded><![CDATA[<p>@Alvin:<br />
很同意你的見解！</p>
<p>在架構設計上，OGRE 真的有很值得學習之處，缺點也如同你所提的，過度使用 STL 容器以及低階演算法效能不佳等等。我想，以可用於商業化遊戲的免費資源來說，OGRE 已算是目前最完善也最活躍的繪圖引擎了。</p>
<p>我認為 OGRE 整體的設計理念與系統架構相當正確。做為一個開源專案，OGRE 的目標是先建構出精巧又可擴充的引擎設計架構，之後再逐步修改細節與底層的部分。當然，OGRE 的未來還有很大的進步空間、很長的路要走，就看開源社群和專案主導者 sinbad 的作為了。</p>
<p>國外有個使用 OGRE 的 MMORPG 正在開發中，大概要 18 至 24 個月後才會上市，我很期待那款遊戲作品的表現～ ^^</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alvin</title>
		<link>http://blog.monkeypotion.net/gameprog/note/ogre-dev-intro/comment-page-1#comment-2374</link>
		<dc:creator>Alvin</dc:creator>
		<pubDate>Thu, 11 Jun 2009 17:07:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.monkeypotion.net/?p=94#comment-2374</guid>
		<description>我在遊戲業工作時, 時常參考Ogre的source code, 學它的Architecture和API。
我認為Ogre最大的致命傷在於效能,
Ogre太過於依賴STL, 但常乎略STL容器的性值,
例如用了vector後, 又狂加東西進去, 使得Ogre 裡XXXList都往往使用過超出它真正需要的記憶體。
另外是Ogre的在不少方面所使用的演算法也不過好。
如果有人用Ogre做出了一個MMORPG, 那一定是個又慢記憶體又吃超兇的怪獸。

而Ogre最令人激賞是它的API設計,
完全follow OOP的精神, class切得細, 功能明確簡單, 很難看到一個class有上數十個member function,
而且object的ownership定義的很明確,
使業餘人士可以很快的掌握它的精神和使用它, 並且開發出小型作品。
當我是學生時, 只花了一個月就可以使用自如, 比起在業界經驗, Ogre的架構實在值得業界學習。</description>
		<content:encoded><![CDATA[<p>我在遊戲業工作時, 時常參考Ogre的source code, 學它的Architecture和API。<br />
我認為Ogre最大的致命傷在於效能,<br />
Ogre太過於依賴STL, 但常乎略STL容器的性值,<br />
例如用了vector後, 又狂加東西進去, 使得Ogre 裡XXXList都往往使用過超出它真正需要的記憶體。<br />
另外是Ogre的在不少方面所使用的演算法也不過好。<br />
如果有人用Ogre做出了一個MMORPG, 那一定是個又慢記憶體又吃超兇的怪獸。</p>
<p>而Ogre最令人激賞是它的API設計,<br />
完全follow OOP的精神, class切得細, 功能明確簡單, 很難看到一個class有上數十個member function,<br />
而且object的ownership定義的很明確,<br />
使業餘人士可以很快的掌握它的精神和使用它, 並且開發出小型作品。<br />
當我是學生時, 只花了一個月就可以使用自如, 比起在業界經驗, Ogre的架構實在值得業界學習。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 半路</title>
		<link>http://blog.monkeypotion.net/gameprog/note/ogre-dev-intro/comment-page-1#comment-2288</link>
		<dc:creator>半路</dc:creator>
		<pubDate>Tue, 26 May 2009 15:12:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.monkeypotion.net/?p=94#comment-2288</guid>
		<description>@Ricky:
認同，OGRE 的 pitfall，特別是效能方面的問題實在不少哪……。</description>
		<content:encoded><![CDATA[<p>@Ricky:<br />
認同，OGRE 的 pitfall，特別是效能方面的問題實在不少哪……。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ricky</title>
		<link>http://blog.monkeypotion.net/gameprog/note/ogre-dev-intro/comment-page-1#comment-2282</link>
		<dc:creator>Ricky</dc:creator>
		<pubDate>Sat, 23 May 2009 09:04:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.monkeypotion.net/?p=94#comment-2282</guid>
		<description>Ogre 有時也會咬你一口，如 Resource 不太支援 reload，Entity 和 Animation 的性能低下等等...</description>
		<content:encoded><![CDATA[<p>Ogre 有時也會咬你一口，如 Resource 不太支援 reload，Entity 和 Animation 的性能低下等等&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 半路</title>
		<link>http://blog.monkeypotion.net/gameprog/note/ogre-dev-intro/comment-page-1#comment-2277</link>
		<dc:creator>半路</dc:creator>
		<pubDate>Thu, 21 May 2009 06:08:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.monkeypotion.net/?p=94#comment-2277</guid>
		<description>@Cat:
你好，

如果你們沒有非常熟悉程式設計的話，我會比較建議使用 XNA 喔。

因為 OGRE 實際上是一個「繪圖引擎」，如果要使用繪圖引擎完成一款遊戲作品，仍需要花費非常多的程式設計心力才有可能達成。而 XNA 則是屬於一個「遊戲框架」，天生就是拿來做為撰寫遊戲的用途。目前在市面上，有不少 XNA 相關的中文書籍，網路上也有許多簡體或繁體的中文網站資源可參考。

不過，不論是使用 OGRE 或者 XNA，一樣都需要花費大量的時間在撰寫程式碼上喔。</description>
		<content:encoded><![CDATA[<p>@Cat:<br />
你好，</p>
<p>如果你們沒有非常熟悉程式設計的話，我會比較建議使用 XNA 喔。</p>
<p>因為 OGRE 實際上是一個「繪圖引擎」，如果要使用繪圖引擎完成一款遊戲作品，仍需要花費非常多的程式設計心力才有可能達成。而 XNA 則是屬於一個「遊戲框架」，天生就是拿來做為撰寫遊戲的用途。目前在市面上，有不少 XNA 相關的中文書籍，網路上也有許多簡體或繁體的中文網站資源可參考。</p>
<p>不過，不論是使用 OGRE 或者 XNA，一樣都需要花費大量的時間在撰寫程式碼上喔。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cat</title>
		<link>http://blog.monkeypotion.net/gameprog/note/ogre-dev-intro/comment-page-1#comment-2274</link>
		<dc:creator>Cat</dc:creator>
		<pubDate>Wed, 20 May 2009 05:17:28 +0000</pubDate>
		<guid isPermaLink="false">http://blog.monkeypotion.net/?p=94#comment-2274</guid>
		<description>您好:
我是育達技術學院大三學生.
我們的專題是做出一款遊戲.之前是用Brume.後來改換成XNA.
我們的專題老師說我們下禮拜如果整合不出來個東東.就要我們換OGRE.
但我們從沒碰過.想請問有沒有相關可以學習的?

因為網路上看到的幾乎都是片段.學校也沒有書可以看...

我們只剩下不到一個月的時間必須要做出一半的遊戲...



謝謝</description>
		<content:encoded><![CDATA[<p>您好:<br />
我是育達技術學院大三學生.<br />
我們的專題是做出一款遊戲.之前是用Brume.後來改換成XNA.<br />
我們的專題老師說我們下禮拜如果整合不出來個東東.就要我們換OGRE.<br />
但我們從沒碰過.想請問有沒有相關可以學習的?</p>
<p>因為網路上看到的幾乎都是片段.學校也沒有書可以看&#8230;</p>
<p>我們只剩下不到一個月的時間必須要做出一半的遊戲&#8230;</p>
<p>謝謝</p>
]]></content:encoded>
	</item>
</channel>
</rss>
