遊戲AI系列內容 咋樣才能做個有意思的AI呢

遊戲AI系列內容 咋樣才能做個有意思的AI呢

寫在前面的話

怪物AI怎麼才能做的比較有意思。其實這個命題有點大,我作爲一個僅僅進入遊戲行業兩年接觸怪物AI還不到一年的程序員來說,來談這個話題,我想我是不夠格的。不過,在這有限的時間裏邊,我也多多少少的寫過幾個怪物。最初,很多怪物寫完之後,就感覺很傻。一點意思都沒有到後來的,慢慢的覺得,像是一點一點的賦予這個怪物生命一樣,成就感滿滿。然後讓我一步一步的告訴你什麼是有意思的AI。

啊 什麼纔是有意思的AI呢

從宏觀上來說,大到一個人,小到一隻青蛙,都是存在AI的。落實到遊戲項目裏呢,能跟你打一會的,都叫做AI。我們這個地方很顯然是指的後邊這種。仿照現實世界AI的遊戲AI。讓我舉個例子來說明一下,我們比較常見的AI。

LOL的人機模式,有一定的智能感覺,不過做的有點太極端了。技能的釋放,簡直爆表,恐怕跟機器人硬肛正面一般情況下會比較慘,因爲他們對於技能釋放的控制恐怕是人類遠遠跟不上的。不過他們的行爲模式非常單一,比如說他們明明在中路佔有非常大的優勢,但是一旦他們發現你在推他們的塔了,他們就會放棄自己的優勢去防守自己的防禦塔。比如說你是血皮他也是血皮的情況下,他的反應是逃跑而不是算算傷害跟你肛正面。所以這個感覺是比較尷尬的,硬打打不過,但是套路就能套路贏。順便一提LOL的末日模式裏邊中的機器人,其實單純的AI也是比較簡單的,但是他們的技能非常變態,所以很難打,這也是提高AI有意思程度的一種方式,笑。

守望先鋒中的機器人對戰模式中,跟LOL中的機器人也是類似的模式。記得一次,我想從背後偷襲76,結果被76反手A死,我去看死亡回放的時候,發現上一秒的時候,他還是面向前方的,下一秒直接鏡頭一切,衝背後的我開了幾槍,等我死了,就頭也不回的跑了,當時就感覺整個人都不好了。

哈哈,舉了幾個例子,發現,我好像是沒有見過好的AI的例子。這麼說吧,一個AI應該像是你朋友跟你玩遊戲一樣,初級的AI就像是剛開始玩;中級的就像是玩了一段時間;高級的像是比你NB的玩家一樣。或許他的操作並不好,或許他在某些事情上會失誤,但是他在努力的玩下去這種感覺。

好吧,先讓我來回顧一下我做的怪物吧

那些曾經被我編寫出來的怪物

小魔人

AI:
1. 如果看到玩家就靠近玩家,造成碰觸傷害
2. 沒事瞎溜達或者在原地歇會

我們的小魔人

這應該是我編寫的第一個怪物。很簡單,也很傻。這個基本上應該算是最白癡的AI了。這種一般情況下是數量比較多,讓玩家來割草的。不得不承認,這個怪物的AI白癡到爆炸,但是遊戲中還是需要存在這種AI來緩解一下緊張的氣氛。

大魔人

AI:
1. 看到玩家之後會最初幾種隨機攻擊模式(發射距離較遠的雙排子彈彈幕、發射範圍非常近的的扇形彈幕、跳躍到玩家周圍去、召喚救濟倉)
2. 沒事的時候瞎溜達一下或者在原地休息休息

大魔人召喚救濟倉

大魔人的扇形散射彈幕

大魔人的雙排彈幕

大魔人的蹦蹦跳跳

這是我編寫的第一個Boss怪物。這個的攻擊方式可能就會變的複雜一些了。面對他的時候,你可能需要考慮一下怎麼應對他的技能。比如說。如果他釋放雙排彈幕的話,就不要呆在原地。如果他釋放了扇形彈幕那麼就需要遠離他。如果他跳起來了,那麼就得時刻留意,他的陰影是不是出現在了自己的周圍,遠離那個地點。如果他選擇召喚救濟倉就需要打掉救濟倉,免得他搞出來一些幺蛾子。或許,這個怪物已經可以讓你跟他周旋一段時間了。但是他距離我心目中那種真正的Boss還差的很遠。

大魔人的狗

略,實在是沒啥好寫的

激光眼機器人

AI:
1. 醒了,距離你比較遠了就靠近你
2. 像是之前的大魔人類似,一堆技能(背後光柱掃射、橫向光柱驅散、雙手彈幕散射、激光眼、多重激光狙擊、召喚狙擊怪、彈幕光球)隨機放
3. 如果敵人(玩家)在他的頭上的時候釋放合適的技能()
4. 如果在下面的時候釋放合適的技能()
5. 沒事睡覺

我們的激光眼機器人

機器人召喚狙擊怪

機器人雙手發射彈幕

機器人背後激光掃射

機器人激光狙擊

機器人激光逼退敵人

機器人發射球形彈幕

我在寫這個怪物的時候覺得這個怪物碉堡了,自己擁有7、8個技能在手裏邊,肯定會把玩家嚇尿的,結果自己在嘗試的時候,就遇到了類似於LOL的AI尷尬。如果吧技能調整的傷害很強,會覺得這個怪物沒法打,自己動不動就死了。但是技能傷害太弱的時候就會發現這個怪物真是太弱B了。隨便打打就死了,最後爲了增加他的壽命,所以增加了他的血量。我覺得這個結果是我不想看到的但是有沒什麼辦法,這已經是最好的方式了。

小精靈

AI:
1. 進入戰鬥的時候衝着玩家吐個彈幕
2. 距離玩家很近的時候會逃跑
3. 距離玩家太原的時候會嘗試靠近
4. 玩家不見了會跑到最近一次玩家出現過的地方嘗試找找玩家
5. 沒事瞎溜達

我們的小精靈

Piu 精靈彈幕

太近了我要逃跑

太遠了,讓我來追擊一下吧

根據印象追擊敵人

其實這個怪物也很簡單,跟前面提到的小魔人是同一個屬性的,都是屬於沒啥攻擊性,被人割草類型的,不過,這個怪物卻比小魔人給人的感覺更好。因爲小魔人太容易被套路了,你距離他遠一點,就可以隨便搞他。但是這個怪物,他可以跟你周旋一段時間,雖然他沒有啥攻擊性。偶爾只是衝你發一個彈幕。但是他卻可以保持跟在你周圍,並且距離你相對來說距離適中。避免了近戰傷害,同時他的攻擊能夠攻擊到你。所以就可玩性來說這個逼小魔人好太多了

刺客

AI:
1. 距離在攻擊範圍內的時候,會直接發動傷害非常大的傷害
2. 如果沒有被人發現的時候僞裝成一顆洋蔥
3. 距離玩家比較遠並且在玩家正面的時候嘗試Z字走法靠近玩家
4. 距離玩家比較遠並且在玩家背面的是後快速突進到玩家背面
5. 沒事瞎溜達

我們的刺客像洋蔥

平時的刺客

刺客的Z字強突

刺客的十字斬

這個怪物應該算是比較厲害的怪物了,也是我比較滿意的怪物之一。他的血量非常少,最低級的槍也能兩槍打死。他的傷害非常高,一次攻擊就能讓玩家血量損失過半。通常這個怪物出現的時候,我都會覺得,要死了要死了要死了,搞死他的時候會獲得莫大的擠壓情緒釋放的趕腳。或許他沒有非常高的血量,沒有花樣繁多的技能。不過他能夠靠着自己僅有的一個技能讓你感覺精神緊張。

綜述

一個好的AI,應該能在合適的時候做出合適的選擇。比如,怪物本身並不能進行近戰攻擊,那麼他衝到人的周圍這就是傻的行爲。如果他能保持一定的距離,這個距離保證他能夠打到玩家,但是玩家的某些攻擊打不到他。那麼他的行爲就是合適的。如果一隻怪物他只有近戰攻擊,那麼他就應該努力的嘗試去靠近你,然後從背後給你一刀,這也是合適的。如果你的攻擊手段攻擊距離比較近,但是玩家距離你比較遠的話,這個時候你做出這個攻擊就並不合適。一個好的AI其實就是作者在操作的一個角色,跟玩家對戰。其實這就是一種感覺,要想想成這是你與玩家的對決。或許你可以操作的怪物能力非常有限。血量不高、傷害不高、行動不快,但是每一個怪物都有他存在的意義,都能夠爲你跟玩家對戰的時候貢獻自己的力量。這樣一個AI才能算是做的比較有意思。

恐怕我我寫的出來的部分只能是一小部分。就像是這樣

但是呢實際上這個課題可能真正的內容量確實這樣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章