3D speldesign sommar läger klass med AgentCubes (8 / 9 steg)
Steg 8: Dagar fyra och fem: spel tips: Chase AI
Många barn kommer att vilja göra spel där Monster jaga dig. Men hur man genomför AI för jakten? Om jakten sker i ett öppet utrymme, det finns en tydlig strategi: hålla koll på monster och spelare positioner (har x och y attribut som uppdateras vid varje drag), och flytta monstret i riktning mot spelaren.
Men vad om det finns hinder, säger eftersom monster och spelaren är i en labyrint. Tja, hittade jag ett riktigt snyggt sätt att göra detta. I grund och botten låtsas du att spelaren är varmt, hindren är kall, du simulera spridning av värmen på golvet i styrelsen, och sedan har monster gå i riktning mot ökad värme. Detta låter verkligen komplicerat, men egentligen är det ganska enkelt på grund av hur AgentCubes fungerar.
- Ställ in ett golv för spelplanen gjord av en typ av golv kakel agent.
- Ger golvet kakel en mycket enkel regel:
- Om en gång, varje 0.1 sekunder, sedan inställd värme (värma [vänster] + värme [right] + värma [upp] + värme [ned] + 4 * värme [top]) / 8
- Lägga till en före-kör metod i din spelare agent, och ange en regel med några villkor och åtgärder som värme till 1.
- I din monster agent, lägga till en regel som regelbundet (kanske med viss slumpmässighet) utför hillclimb värme i fyra riktningar.
Det är allt! Allt utom spelaren och golvplattor kommer att ha värme 0 hela tiden. Detta monster kommer att bo på golvplattor och spelaren, och kommer att gå i riktning mot spelaren. Dessutom, eftersom värmen sprids över tiden, de tenderar att följa spelarens väg, vilket ger dem en målmedveten utseende.
Du kan lägga till en karta värme till färg från grönt för 0 till rött för 0,1 värme-uppdateringsåtgärden av golvplattor att visualisera värmen.
En proof-of-concept demo kan spelas här.
Lite kul resultat:
- Monster har noll värme, så de kyla ner området de står på. Som ökar deras rörlighet.
- Om du lägger till bullet medel för att skjuta monster med monster kommer att försöka undvika dem, eftersom kulorna kommer vara kallt.