GDC2023 Picking a Good Spot: Naughty Dog's Post System 概括
流水賬概括
https://www.gdcvault.com/play/1029277/Picking-a-Good-Spot-Naughty
原標(biāo)題:Picking a Good Spot: Naughty Dog's Post System
頑皮狗的一個(gè)分享,關(guān)于AI的目標(biāo)位置選取系統(tǒng)。
該系統(tǒng)和UE的EQS做的是類似的事情。理論大體是基于雜志《Game AI Pro》的一篇文章
Tactical Position Selection: An Architechture and Query Language - Matthew Jack(Game AI Pro, 2013)
http://www.gameaipro.com/GameAIPro/GameAIPro_Chapter26_Tactical_Position_Selection.pdf
頑皮狗內(nèi)部使用的系統(tǒng)也是迭代了多次?;谕ㄟ^工具生成的離線數(shù)據(jù)。
標(biāo)記點(diǎn)生成大體來源于基于尋路網(wǎng)格生成以及手工擺放。
基本算法流程為通過一系列策略去為各個(gè)點(diǎn)評(píng)分選擇最優(yōu)點(diǎn)。
頑皮狗的使用的評(píng)分標(biāo)準(zhǔn)使用了大概四個(gè)維度:
*Linear/Euclidean disatance
*Path distance
*Visibility
*Time since last exposed
接下來就是一些優(yōu)化策略,不展開了。有意思的是演示代碼可能并非真實(shí)代碼,有一個(gè)浮點(diǎn)數(shù)比較的bug。
頑皮狗為了縮小輪詢的時(shí)長(zhǎng),采用了一系列策略去提前篩選候選標(biāo)記點(diǎn)。將標(biāo)記點(diǎn)和地圖網(wǎng)格綁定。同時(shí)為了能夠動(dòng)態(tài)得劃分標(biāo)記點(diǎn)分組,用到了暴雪19年分享的動(dòng)態(tài)BVH,
Math for Game Developers: Dynamic Bounding Volume Hierarchies - Erin Catto(GDC 2019)