金橋科普  
設為首頁 關于我們 郵箱登錄
科普聚焦
您現在的位置: 首頁 >> 科普頻道 >> 電腦遊戲 >> 文章詳情
第一次Collision AI

PassByYou gameres 2006-09-30
第一次寫技術文獻。Collision AI

前段時間開始開發新遊戲引擎,目前也是正在開發狀態。我常說,碰撞+空間算法部分是3D遊戲中的核心,也是最難制作的一部分。抱歉,這樣說恐怕有點不夠準確,準確來說,Collision AI是最難得一塊。難點在于,在制作過程中,那些數字很抽象,往往要思考很久才敢下手。

Collision的實現非常簡單,Collision檢測目前資料眾多,算法也很成熟。往往在遊戲運行中,Collision都有個和它對應的AI系統,我簡稱Collision AI。因為碰撞可以機械化的檢測,並且準確率很高。在碰撞檢測的下一步,就是發生對應的處理。因為我在制作一部實時引擎,目前正處于碰撞流程的制作過程,這一步直接涉及到很多物理計算,很多錯綜復發的邏輯處理。為了下一步開發能夠更好的進行,所以把這一步直接規劃到AI模塊中。目前做了有些時間了,摸索出了一些AI方面的心得,同時又在網上又很少看到有這方面的文獻。專業點的可以說目前沒有,全是保留技術。

制作Collision AI首先是必須換腦。不要用簡單的概念去思考它。否則實際做到那地方時,你會感到完全摸不著邊。

碰撞流程主要依靠事件觸發為主。碰撞檢測部分應該放在刷貞時實現,否則來一個快速運動的object,那是很容易檢測丟的。而刷貞部分,應該做一個專用的刷貞器,邏輯貞按每秒固定刷30FPS或則更好,而物理貞可以任意。因為檢測運動object必須要保證檢測頻率是集中式的,而不是離散的。每秒的固定刷貞技術可以在刷貞器中用deltaTime的減法實現。這樣就可以準確無誤的檢測碰撞了。你可以根據喜好制定檢測的方式,比如先在地圖系統中實現區域檢測,然後再進一步執行外圍的碰撞盒檢測,最後再進行精確的Tri檢測。不過目前都用接近的幾何體來代替Tri檢測。

然後就是最關鍵的碰撞AI處理了。在制作這一部分時,首先要有很完善的數據來源,可以很方便的計算。比如2個object發生碰撞時,obj1位于obj2的什麼方向?obj1要向何處去?obj2要向何處去?是obj1讓obj2先過,還是obj2讓obj1先過?如果要讓obj2過去,obj2應該怎麼繞過obj1?向下繞?萬一向下繞不通怎麼辦?那麼向上繞,可是這時上面又有另一個obj3,這時候怎麼辦?這些問題只算整個Collision AI的九牛一毛,微不足道,可見碰撞流程何其復雜,我將之規劃到AI模塊中,完全不算過份。

而我要再次說明,在Collision AI的處理上,數據來源可算重中之重。

其次是,空間運動框架。你想想,我要控制obj2向某個方向移動,如果只給引擎一條指令,那是何其方便?可是在開發空間運動時,我們往往把全部精力集中在算法上,而忽略了後面的碰撞流程系統,碰撞流程系統會大量的用到空間運動引擎,而且幾乎每次都是平滑運動,並不是一次到位。我為碰撞流程系統,從新寫了空間運動部分,現在控制起來雖然還是比較吃力,那些邏輯很繞腦子,但這樣結合運動+碰撞的空間運動引擎已經比以前進步了太多太多了,大大的方便的Collision AI部分的開發。

再其次,是邏輯判斷的支持部分。我舉個例子,obj1向obj2方向運動,obj2又向obj1方向運動,這種碰撞在碰撞引擎中我將之稱為對碰,obj2延0度方向運動,obj2延90度方向運動,我將之稱為直角碰,在實時的RTS引擎中這些都是要區分的,用來為後面的AI判定打下基礎。

再其次,才是簡單到不能再簡單的Finding path之類的,什麼A*,D*,V*,頂點尋路等等。這些是目前非常成熟的技術,索性我就不予以詳談了。

Collision AI我目前算是成功在望,雖然地球上以前有過一些高手,他們開發C&C,開發StarCraft,RedAlert,Warcraft,他們都走過了Collision AI這艱深的一步,最後邁向成功殿堂。雖然我不算什麼鳥名人,但步其後塵,可以預見的遊戲引擎成功在望,心裡十分舒適。大有成功感。

總結一下。Collision AI引擎不要小看它,它和空間運動引擎這兩塊真的是RTS+ARPG遊戲引擎中最難得兩塊。注意數據來源,運動框架,以及邏輯判斷支持這三部分。開發時,應該保持六根清淨,五蘊皆空狀態。如果你會被那些邏輯判斷攪到神經衰弱,應該立即stop,喝喝酒,玩玩女人,但不要沉迷其中,關鍵是讓身心鬆弛。否則很難完成一個龐大的遊戲引擎系統。

最後小聲說一句。遊戲引擎即將完成,規模不小。有同仁願同學,願一起做事。歡迎與我聯系。在下張某,各方同行只要是同行,做程序的,美術的,策劃的,一律收下了。大家慢慢想辦法合作。

第一次寫技術文獻。望站長將之甩進精華區。多謝。

交流長存。阿門~~



  發表評論 寫信給編輯 關閉窗口
同欄目內容
· 瑞典在網遊中開設虛擬大使館 2007-06-06
· 魔獸爭霸3秘籍(魔獸無敵秘籍) 2007-03-28
· OpenGL GUI教程(一)2 2006-09-11
· OpenGL GUI教程(一) 2006-09-11
· 動畫DirectDraw之旅(1) 2006-09-04
· DDraw,DInput編程 2006-09-04
相關內容
近期主推
西藏發現青藏高原最大冰川群
·西藏發現青藏高原最大冰川群
·中日: "月亮女神"攜手"嫦娥"
·行星大碰撞砸死恐龍催生人類
·美研制會飛汽車定價9萬美元
·美國教授設計出自適應機器人
·銀河系可能有20多個黑洞
近期熱門
英海域驚現大龍蝦為普通龍蝦5倍
·英海域驚現大龍蝦為普通龍蝦5倍
·新物種金蛙體表有劇毒
·我國嫦娥工程計劃測量月球
·精神病藥物可治多種癌症
·視覺震撼:來自海底的精靈
·能刪除不良記憶的藥物誕生
近期焦點
廣西發現罕見溶洞鐘乳石有30萬年
·廣西發現罕見溶洞鐘乳石有30萬年
·澳大利亞驚現“卡布基諾”海灘
·美國"彩色"瀑布夜幕下震撼遊人
·地球上究竟有多少個物種
·英國探險家北極遊泳破紀錄
·世界之最 世上最小的動物
金橋科普是一個公益性欄目,內容由作者提供或摘自互聯網,其目的是向廣大網民普及科學技術知識。如果您發現本網站轉載或摘編了您擁有著作權的作品,請通知我們(電話:023-63659911),我們立即刪除。
關于我們 | 網站地圖 | 用戶注冊 | 廣告客戶 | 招聘信息 | 業務信息
Copyright@2006-2009 JQInfo.com,WONDER. All Rights Reserved
重慶科技咨詢中心.重慶網得信息技術有限公司.版權所有
Email:webmaster@jqinfo.com
重慶數據通信局提供網絡帶寬. 渝ICP備05002327號