NPC可分為兩種:簡(jiǎn)單NPC和智能NPC,這兩種NPC的處理邏輯不同。
這兩種NPC的區(qū)別在于是否存在NPC AI腳本。
簡(jiǎn)單NPC沒(méi)有AI腳本,只有NPC的移動(dòng),攻擊的簡(jiǎn)單反應(yīng)。
智能NPC是由AI腳本控制的。
從處理邏輯上看,簡(jiǎn)單NPC不需要獨(dú)立的AI處理,而智能NPC具有獨(dú)立的AI循環(huán)。
智能NPC處理時(shí)與人物角色相同,是一個(gè)對(duì)游戲世界作出反應(yīng)的智能生物。
簡(jiǎn)單NPC與物品的處理相同,僅僅是一些數(shù)據(jù),如果沒(méi)有智能生物可以感知到它們時(shí),
它們不需要存在,也不需要游戲主循環(huán)進(jìn)行處理。
當(dāng)智能生物的感知區(qū)域包含簡(jiǎn)單NPC時(shí),它們才會(huì)實(shí)例化。
例如,兩個(gè)智能NPC會(huì)相互攻擊,不管周圍是否有人物觀察,
服務(wù)器總是在處理它們的移動(dòng)和攻擊。
而簡(jiǎn)單NPC如果周圍沒(méi)有智能生物的觀察,它們是不存在的,
服務(wù)器不需要對(duì)無(wú)需感知的簡(jiǎn)單NPC進(jìn)行處理。
智能NPC要求游戲主循環(huán)處理,應(yīng)盡量減少數(shù)量。
如果智能NPC的行為是確定的,不需要時(shí)時(shí)處理,就應(yīng)該轉(zhuǎn)為簡(jiǎn)單NPC。
例如NPC的回血是確定的,t1時(shí)刻的血量已知,那么當(dāng)它在t2時(shí)刻進(jìn)入角色的感知時(shí),
血量完全可以從時(shí)間差計(jì)算出來(lái),沒(méi)必要在t1-t2時(shí)段中時(shí)刻計(jì)算,
沒(méi)必要為了計(jì)算回血而把它當(dāng)作智能NPC。
如果該NPC能夠在AI腳本控制下吃紅藥回血,服務(wù)器無(wú)法預(yù)測(cè)到回血量時(shí),
該NPC就是智能NPC,必須時(shí)刻處理。
(金慶的專欄)
這兩種NPC的區(qū)別在于是否存在NPC AI腳本。
簡(jiǎn)單NPC沒(méi)有AI腳本,只有NPC的移動(dòng),攻擊的簡(jiǎn)單反應(yīng)。
智能NPC是由AI腳本控制的。
從處理邏輯上看,簡(jiǎn)單NPC不需要獨(dú)立的AI處理,而智能NPC具有獨(dú)立的AI循環(huán)。
智能NPC處理時(shí)與人物角色相同,是一個(gè)對(duì)游戲世界作出反應(yīng)的智能生物。
簡(jiǎn)單NPC與物品的處理相同,僅僅是一些數(shù)據(jù),如果沒(méi)有智能生物可以感知到它們時(shí),
它們不需要存在,也不需要游戲主循環(huán)進(jìn)行處理。
當(dāng)智能生物的感知區(qū)域包含簡(jiǎn)單NPC時(shí),它們才會(huì)實(shí)例化。
例如,兩個(gè)智能NPC會(huì)相互攻擊,不管周圍是否有人物觀察,
服務(wù)器總是在處理它們的移動(dòng)和攻擊。
而簡(jiǎn)單NPC如果周圍沒(méi)有智能生物的觀察,它們是不存在的,
服務(wù)器不需要對(duì)無(wú)需感知的簡(jiǎn)單NPC進(jìn)行處理。
智能NPC要求游戲主循環(huán)處理,應(yīng)盡量減少數(shù)量。
如果智能NPC的行為是確定的,不需要時(shí)時(shí)處理,就應(yīng)該轉(zhuǎn)為簡(jiǎn)單NPC。
例如NPC的回血是確定的,t1時(shí)刻的血量已知,那么當(dāng)它在t2時(shí)刻進(jìn)入角色的感知時(shí),
血量完全可以從時(shí)間差計(jì)算出來(lái),沒(méi)必要在t1-t2時(shí)段中時(shí)刻計(jì)算,
沒(méi)必要為了計(jì)算回血而把它當(dāng)作智能NPC。
如果該NPC能夠在AI腳本控制下吃紅藥回血,服務(wù)器無(wú)法預(yù)測(cè)到回血量時(shí),
該NPC就是智能NPC,必須時(shí)刻處理。
(金慶的專欄)