終于進(jìn)行到這里了,由于Mathematics And Physics我只看懂了Floating-Point Tricks,并覺得里面說(shuō)的東西有點(diǎn)繁瑣,其實(shí)現(xiàn)在很多引擎根本不會(huì)用到這些tricks,而且書內(nèi)也建議在不得已的情況下才使用,就不在這里介紹了。
其中的Real-Time Particle-Based Fluid Simulation with Rigid Body Interaction我還是打算嘗試好好看的,不過(guò)能不能看懂就是另外的事情了。一直比較遺憾的是,數(shù)學(xué)一直是弱項(xiàng),也許是阻礙成長(zhǎng)的一個(gè)瓶頸吧。
那么,現(xiàn)在進(jìn)入 ARTIFICIAL INTELLIGENCE
3.2 Achieving Coordination with Autonomous NPCs
本篇講述了如何實(shí)現(xiàn)NPC和玩家對(duì)抗的時(shí)候,如何進(jìn)行NPC之間的協(xié)作,使得看起來(lái)像一個(gè)有組織有記錄的部隊(duì)。
首先拋出的解決方案是The Centralized Approach,由一個(gè)中央單元收集和分析玩家、NPC的所有信息,做出決策,然后給不同NPC下達(dá)不同指令,形成有組織的行動(dòng)。NPC沒有靈活的決策權(quán)。
但是這個(gè)解決方案有一個(gè)問(wèn)題,那就是隨著游戲系統(tǒng)的增大,中央單元的決策邏輯逐漸變得更復(fù)雜,消耗更多的CPU時(shí)間。因此文章拋出了一個(gè)Autonomous NPCs。
Autonomous NPCs是一個(gè)自治單元,能自我作出決策,并能和其它NPC交流并共享信息。
文章給出了多個(gè)在自治單元間交流和共享信息的方法,前面的方法都比較具體,后面的就比較抽象和籠統(tǒng)了,這也是一個(gè)由低到高的過(guò)程。
(a)Attack Slots
NPC在決策最佳攻擊位置的時(shí)候,總是傾向于最接近玩家的距離,因此玩家很可能就被包圍住了。Attack Slots就是用來(lái)解決這個(gè)問(wèn)題的。它就像一個(gè)令牌用來(lái)規(guī)定每個(gè)NPC能接近玩家的最小距離。
形象的說(shuō),Attack Slot是以玩家為圓心的許多半徑不同的圓,這個(gè)半徑是NPC能接近玩家的最小距離。每個(gè)半徑只能容納一定數(shù)量的NPC,當(dāng)某個(gè)slot被其他NPC占據(jù)后,當(dāng)前NPC就只能選擇另外一個(gè)slot了。以這種方式來(lái)分散NPC,形成一種錯(cuò)落有致又不難對(duì)付的戰(zhàn)斗。
(b)Exclusion Zones
雖然Attack Slots能解決NPC過(guò)分包圍玩家的問(wèn)題,但是它們還是有可能選擇同一個(gè)攻擊位置,或者站在能擋住別人攻擊的地方。
Exclusion Zones是NPC用來(lái)標(biāo)記它領(lǐng)地的,即NPC當(dāng)前位置下一定半徑的圓,以及火力線區(qū)域,它將這些區(qū)域標(biāo)記為已使用,因此其他的NPC就不能進(jìn)入這些區(qū)域了。
這也在一定程度上分散NPC,并使它們有協(xié)作性,而不是相互妨礙。
(c)Trigger Systems
觸發(fā)器系統(tǒng),想必大家都知道的。此前,我多少有點(diǎn)把消息機(jī)制和觸發(fā)器機(jī)制相混淆,或者說(shuō)他們本身就有很大的相似性。
這里所說(shuō)的觸發(fā)器,就像是玩家或者NPC下的蛋,不屬于原有的角色,而是一個(gè)全新而獨(dú)立的對(duì)象了。并且,觸發(fā)器產(chǎn)生消息,但觸發(fā)器并非消息本身。
觸發(fā)器系統(tǒng)能夠很好的解決聲音和尸體的問(wèn)題,NPC發(fā)出聲音,或者NPC尸體,都會(huì)生成一個(gè)觸發(fā)器對(duì)象,觸發(fā)器對(duì)象給周圍的角色發(fā)送某個(gè)消息,周圍的角色就對(duì)此作出了反應(yīng)。
(d)Enemy Events
消息系統(tǒng),NPC之間可以根據(jù)自身的情況發(fā)送消息給其他NPC,至于是否處理則看消息的優(yōu)先級(jí)以及其他NPC樂(lè)不樂(lè)意之類的。
(e)Player Mutex
對(duì)于NPC而言,玩家就是一份共享資源,加鎖的話,就可以控制同時(shí)打算攻擊玩家的NPC數(shù)量。
(f)Allowed Zones
這個(gè)用來(lái)定義每個(gè)NPC的活動(dòng)范圍,以防止NPC為了追擊玩家跑出自己的活動(dòng)范圍。
(g)BlackBoards
黑板系統(tǒng),又名知識(shí)共享系統(tǒng),NPC可以向黑白添加自己知道的信息,也可以讀取自己感興趣的信息,以作出相應(yīng)的決策。
黑板系統(tǒng)在NPC進(jìn)行資源共享方面相當(dāng)有用。
最后一篇了。自己知道,卻未必能寫出來(lái)。還是少說(shuō)話,多學(xué)習(xí)為上。