游戲中的人機(jī)對(duì)戰(zhàn),“機(jī)”這一部分是由兩個(gè)部分組成的:數(shù)值(比如bot數(shù)目、血量、命中率、技能cd、攻擊力、防御力等等)和AI(人工智能,控制bot行為)。很多沒(méi)入行的朋友經(jīng)常把這兩個(gè)概念混為一談,然后鐵口直斷AI戰(zhàn)勝玩家是非常簡(jiǎn)單的事情。
先說(shuō)結(jié)論:對(duì)挑戰(zhàn)電腦的難度而言,AI和數(shù)值是相乘的關(guān)系,通過(guò)改良AI設(shè)計(jì)可以達(dá)到讓電腦更具挑戰(zhàn)性的目的。當(dāng)前游戲行業(yè)普遍使用的都是弱人工智能,即通過(guò)預(yù)設(shè)AI使bot呈現(xiàn)人工智能的效果,請(qǐng)注意這個(gè)大前提。在制作AI的過(guò)程中,思路是非常簡(jiǎn)單的,就是將設(shè)計(jì)師的思維(或者叫人的思維)植入AI代碼中。
在一個(gè)具體的情勢(shì)中,人會(huì)如何行為就設(shè)計(jì)AI如何行為,當(dāng)然有一些具體的方法因游戲和關(guān)卡環(huán)境而異,比如戰(zhàn)棋游戲的格子限制、劇情包裝需要、關(guān)卡地形等。而設(shè)計(jì)的難點(diǎn)在于兩個(gè)方面:
1、設(shè)計(jì)師的精力和智力有限
(1)先說(shuō)精力有限
遵照弱人工智能的設(shè)計(jì)思路,設(shè)計(jì)師需要窮舉所有的戰(zhàn)斗情勢(shì),對(duì)不同情勢(shì)下的bot行為作出決策然后形成AI,而實(shí)際上戰(zhàn)斗情勢(shì)是幾乎不可能窮舉的。以簡(jiǎn)單的2V2回合制站樁戰(zhàn)斗為例,假設(shè)這個(gè)游戲有2種職業(yè),每個(gè)職業(yè)戰(zhàn)斗中可使用2個(gè)技能,那實(shí)際可能的戰(zhàn)場(chǎng)行為是9(職業(yè)組合)×4(技能組合)=36,另外還有很多其他數(shù)據(jù)也會(huì)影響AI行為,如血量、技能冷卻、buff狀態(tài),而這些數(shù)據(jù)往往是連續(xù)的,如血量可以是1~n任意一個(gè)值,這些數(shù)據(jù)導(dǎo)致戰(zhàn)斗情勢(shì)復(fù)雜度指數(shù)級(jí)提升。鑒于此,AI設(shè)計(jì)過(guò)程中往往會(huì)進(jìn)行很多簡(jiǎn)化,如90%以上生命值為安全,10%~50%為受傷,10%以下為瀕死,而實(shí)際上呢,不同職業(yè)承受傷害能力顯然不同的,T和奶同為10%的生命值,生存能力一樣嗎?即使相同職業(yè)面對(duì)特定攻擊力的敵人,15%可能再挨一下就死了,50%可能能挨2下,但AI認(rèn)為10%~50%是同一個(gè)情勢(shì),這個(gè)合理嗎?當(dāng)情勢(shì)判斷由于簡(jiǎn)化導(dǎo)致出現(xiàn)不合理時(shí),AI的智能程度自然也會(huì)大打折扣。
(2)再說(shuō)智力有限
通常設(shè)計(jì)師是一類游戲中最精通的玩家,他們面對(duì)游戲中一個(gè)具體情勢(shì)時(shí)能很快給出比較合理的決策,但這種合理是有局限性的,當(dāng)戰(zhàn)場(chǎng)形勢(shì)足夠復(fù)雜,A、B決策短時(shí)間內(nèi)都無(wú)法直觀判斷效果時(shí),設(shè)計(jì)師其實(shí)也很難抉擇最優(yōu)策略,因此設(shè)計(jì)邏輯中可能存在大量次優(yōu)策略,自然也導(dǎo)致AI智能程度下降。相比精力有限,智力有限的影響小很多,畢竟設(shè)計(jì)師是足以戰(zhàn)勝大部分玩家的。
2、硬件限制
假設(shè)真有不開(kāi)眼的土豪游戲公司,雇了一大幫牛B閃閃的設(shè)計(jì)師來(lái)設(shè)計(jì)AI,相信我,那個(gè)AI腳本的復(fù)雜度一定會(huì)超過(guò)你的想象。網(wǎng)絡(luò)游戲AI由服務(wù)器計(jì)算,同一時(shí)間戰(zhàn)斗的玩家很多,服務(wù)器CPU會(huì)因此不堪重負(fù);即使土豪公司使用了宇宙級(jí)的服務(wù)器,但是要同時(shí)傳送足夠多的戰(zhàn)場(chǎng)情勢(shì)給服務(wù)器分析,網(wǎng)絡(luò)帶寬消耗也是非常大的,所以你還要交大把錢給中國(guó)電信。你真的夠壕嗎?對(duì)于單機(jī)游戲本質(zhì)是一樣的,將大量腳本載入內(nèi)存,將大量運(yùn)算交給CPU,會(huì)讓你感覺(jué)電腦很“卡”。想象一下,人家玩3d的LOL飛起,你玩?zhèn)2d策略游戲卡成馬,你一定會(huì)默默撕掉筆記本外星人的logo,然后換上hasee……
綜上所述,目前回合制游戲AI智能程度是不及真實(shí)玩家的,陣容、裝備、技能配置等完全相同的情況下,電腦干不過(guò)玩家。那么問(wèn)題來(lái)了?為什么有時(shí)候你會(huì)打不過(guò)電腦呢?有時(shí)候會(huì)覺(jué)得“哇這一關(guān)很有挑戰(zhàn)性”呢?其實(shí)就是設(shè)計(jì)師欺負(fù)人啦(打破規(guī)則賦予電腦更多數(shù)值),比如你100攻擊力,電腦150攻擊力啦;你7級(jí),電腦9級(jí)啦;你的農(nóng)民一次采10礦,電腦的農(nóng)民一次采20礦啦;你50個(gè)兵,電腦80個(gè)兵啦……有些游戲所謂的簡(jiǎn)單模式、地獄模式基本上也是在數(shù)值上下功夫。
因?yàn)锳I和數(shù)值是相乘的關(guān)系,在同等挑戰(zhàn)難度下,AI做得越好,電腦需要的額外數(shù)值越少,這個(gè)時(shí)候游戲會(huì)顯得越有趣。試想一下,你的張飛和呂布對(duì)砍,1分鐘內(nèi)張飛需要每次攻擊都暴擊才能殺死呂布,否則張飛死,面對(duì)這樣屌炸天呂布,你真的會(huì)樂(lè)此不疲地默默給張飛堆暴擊嗎?
為了更好的AI一起努力!
投稿郵箱:chuanbeiol@163.com 詳情請(qǐng)?jiān)L問(wèn)川北在線:http://sanmuled.cn/