在開發Ngan-GINE'3D當中,除了Skinned Mesh及Skeleton Animation外,相信最難纏的,就是如何做Object 與 Level Map之間的Collision Detection了,其實到現在我還未做好的,只是用了3rd party的Physics Engine來代替了。
我在做Level Map的Collision Detection時,想著其他遊戲是如何做的時候,我發現一個有趣的分歧,就是有些日本遊戲和其他國家遊戲的地圖Collision有點不同。看上去日本遊戲的地圖Collision資料都不是和原Level Map資料相同,我相信他們是用另一組超低Polygon資料,作為Collision Detection,減少運算量。就是這樣,我就決定用另一組超低Polygon資料做為Object與Level Map之間的Collision了,始終在我的Ngan-GINE'3D內,沒有任何類似BSP Tree的Scene Management,所以用超低Polygon資料減少運算量是最好的選擇。
這樣做解決了一般使用問題,並且以這方法參加了遊戲製作比賽,但後來想到,若果我的Level Map不只是一個Section,而是有更多不同的Section連接一起,那麼應該如何處理?後來就想到了,可以使用Portal系統了。我的Portal系統非常地簡單,當中只是有偵測Camera或Object在那個Sector,和Camera看到那個Sector的Portal,並沒有加進Camera在那一個Portal再計算Frustum Cull功能。關於我的Portal系統是如何運作,我曾經寫過一篇文章說明的呢。
到了近期,用上了Newton Game Dynamics後,已沒有再特別研究Object與Level Map Collision了,反而是用了時間研究,物理和遊戲之間如何達到和諧,融入Gameplay當中,這個才是將物理加入遊戲後真正的方向,就好像Half-Life 2就是個好例子。
Saturday, August 19, 2006
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment