2010-09-17 17 views
14

有許多關於遠程作戰人工智能的論文,如Killzones(see this paper)或Halo。但是除了這個work,我一直無法找到關於戰鬥IA的很多內容,它使用神經網絡來學習如何戰鬥,這不是我正在尋找的東西。如何設計一款格鬥遊戲(Street Fighter或Soul Calibur)的人工智能?

Occidental AI在遊戲中重點關注FPS,看起來好像!有誰知道哪些技術被用來實現一個體面的戰鬥AI?分層有限狀態機?決策樹?他們可能最終變得相當可預測。

+0

我不知道足夠關於這個問題給出一個像樣的答案,但嘗試了一下隨機誤差的投擲給它一個不可預測的「人」的感覺如同。智力也會犯錯誤,簡單的變異可以提供大量的多樣性。 – Jeriko 2010-09-17 08:26:49

+0

當然。如果我最終使用決策樹,我會添加一些隨機性。就像'敵人的攻擊' - >'攔截0.8;迴避0.2'的意義,所以這並不總是相同的迴應。 A.I.街頭霸王類型遊戲應用程序 – Notnasiul 2010-09-17 11:28:22

+0

不是很重。遊戲的目標是對對手造成傷害並防止對角色的傷害以贏得比賽。使用RNG可以使行爲更加符合實際情況,如果能夠根據難度級別阻止或組合攻擊的時間百分比。 A.I.更高的難度意味着更高的機會。對手會阻止你的頭像的攻擊或者成功地將攻擊組合成你的頭像。 – winux 2016-07-13 07:46:43

回答

3

在我們的研究實驗室中,我們使用AI計劃技術進行遊戲。美國國家航空和宇宙航行局使用人工智能計劃來建立半自動機器人。規劃可以產生比狀態機更少的可預測行爲,但規劃是一個非常複雜的問題,也就是說,解決規劃問題具有巨大的計算複雜性。

人工智能規劃是一個古老而有趣的領域。特別是對於最近人們開始使用計劃來運行他們的引擎的遊戲。在當前的實施中,表現力仍然是有限的,但理論上表現力僅限於「僅憑我們的想象力」。

Russel和Norvig在人工智能的書中專門介紹了AI規劃的4章。您可能感興趣的其他相關術語包括:馬爾可夫決策過程,貝葉斯網絡。這些主題在本書中也提供了足夠的曝光。

如果您正在尋找一些現成的引擎輕鬆開始使用,我想使用AI規劃將是一個巨大的矯枉過正。我不知道任何有關遊戲的AI計劃引擎,但我們正在開發一款遊戲。如果您對長期有興趣,我們可以分開談論它。

+0

就像我所知道的,在Fallout3中使用了類似的東西。但是AI規劃似乎並不是這裏的答案,因爲戰鬥機並不真正「計劃」任何東西,對吧?沒有像'勾拳'或'擊中敵人'的目標......在那裏?這看起來更具反應性,加上根據角色特定的戰鬥風格(大個子很慢,他們傾向於阻止而不是躲避和那些東西......)。不過,我會深入瞭解AI規劃。 – Notnasiul 2010-09-17 11:32:21

+0

它通常被稱爲「面向目標的行動計劃」(GOAP)AI,由Monolith的遊戲「F.E.A.R.」推廣。 – Pup 2012-02-27 16:44:00

+0

@Notnasiul實際上,戰鬥機或任何非玩角色都可能由策劃者控制,策劃者的計劃是最大化玩家體驗。有時他們試圖通過隨着時間推移玩家的動機而堅持一定的曲線來實現這一點。這樣的曲線也是斯皮爾伯格電影的標誌。 – 2012-02-28 02:09:27

3

您似乎已經知道計劃和執行的技巧。你需要做的另一件事是預測對手的下一步行動,並最大限度地提高你的迴應的預期回報。我寫了一篇關於這個的博客文章:http://www.masterbaboon.com/2009/05/my-ai-reads-your-mind-and-kicks-your-ass-part-2/http://www.masterbaboon.com/2009/09/my-ai-reads-your-mind-extensions-part-3/。我認爲這個遊戲很簡單,,但我認爲貝葉斯決策理論的主要思想可能對你的項目有用。

+0

非常感謝!和漂亮的博客,我現在正在關注它;)(我喜歡那個Pacman捕獲國旗遊戲!) – Notnasiul 2010-09-20 07:19:14

+0

謝謝!順便說一下,我們計劃在明年2月份之前推出Pacman遊戲的開源版本。 – pberkes 2010-09-20 13:38:24

1

要考慮的另一種路線是所述的Ghost AI如所述here & here。顧名思義,你基本上是從實際的遊戲中提取規則,第一篇文章是離線的,第二篇擴展了在線實時學習的方法。

看看這傢伙的webpage,還有一些關於格鬥遊戲的文章很有趣。

+1

Ghost AI很有趣,但不是我在找的東西。我想要的是一種給予AI自己「個性」的方式。我在這個週末一直在編碼,並且基於'技術權重'(攻擊性,防禦性,阻擋/避免...)的一些隨機性的FSM組合似乎是合適的。那個人的網頁是一個設計犯罪;) – Notnasiul 2010-09-20 07:14:32

+0

幽靈AI的整個目的是讓對手擁有自己的個性,即使通過模仿其他玩家的訓練。你的方法聽起來很有趣,不知道需要多少調整。 – 2010-09-21 21:31:24

1

我已經反向設計了Street Figher II系列遊戲中與AI子系統相關的例程。它沒有包含上述任何技術。它完全是被動的,不涉及計劃,學習或目標。有趣的是,你也沒有提到「技術重量」系統。例如,他們不使用全局權重來決定攻擊的頻率。當分解與「難度」似乎增加有關的例程時,我確實希望找到類似的東西。唉,它涉及到一些較小的決定,可能會以突發的方式影響這些比率。

0

http://www.ice.ci.ritsumei.ac.jp/~ftgaic/index-R.html

其舊,但這裏有一些例子

+1

[僅限鏈接示例在Stack Overflow](http://meta.stackexchange.com/questions/65277/are-link-only-answers-poor-practice)。請將相關信息添加到您的答案中。 – Chris 2014-04-14 19:10:42

+0

最好在答案中包含鏈接的相關部分。這樣可以防止答案在未來與其他信息的鏈接死亡時變得無用。 – Walls 2014-04-14 19:11:22

+0

對不起,從一個大學舉辦的比賽,人們輸入他們的AI代碼,並讓他們的機器人互相對抗。用Javascript編寫。我發現它很有用,我最終決定使用堆疊狀態機方法在我的遊戲中編寫AI。 – 2014-05-01 18:49:56