12-01-2012, 08:33 PM
Everyone, meet Skippy:
E spider-ul din Glest Asta e ultimul carnat pe care-l mai postez pana la reveal.
Ziceam ca Mirinda ma va ajuta sa testez all about AI. While that is true, am impresia ca inainte sa continui cu treaba la Mirinda (care-i cam complexa), mai bine pun o fundatie mai solida cu ajutorul lui Skippy. Sau mai bine zis, ceea ce eu numesc Simple Dynamic AI. SDAI pe scurt.
Care-i treaba cu el? Spre deosebire de NPC-urile complexe, care au rutine separate bazate pe waypoint-uri si activitati intreprinse la anumite ore, NPC-urile cu SDAI sunt ceva mai... libere.
See here:
Unui NPC cu SDAI nu-i definim o lista de waypoint-uri pentru rutina sa; in schimb, definim o suprafata din nivel cu ajutorul a cel putin 3 enclosure points (EP). Un eclosure point nu e nimic altceva decat intersectia a doua laturi ale unui poligon cu cel putin 3 laturi (triunghi). NPC-ul va putea sa-si intreprinda rutina in interiorul acestui poligon, si numai in interiorul lui. Pentru asta, isi va genera dinamic (hence Dynamic in SDAI) waypoint-uri (wp) in interiorul enclosure-ului.
Dar care e treaba cu rutina? Fiecare NPC cu SDAI va avea doar o lista de activitati pe care le va putea intreprinde. Fara ore anume la care sa le intreprinda si fara o ordine predefinita (hence Simple in SDAI). NPC-ul isi va alege la intamplare cate o activitate de intreprins la fiecare waypoint (hence Dynamic in SDAI x2), in care ajunge.
So, e pretty much random behavior la locatii aflate pe suprafata unui poligon. E un model de AI ideal pentru critters si random enemies, precum... un paianjen. Tot in timpul dezvoltarii SDAI, voi pune la punct si alte elemente aflate in componenta AI-ului complex: dynamic waypoint creation (pentru evitarea coliziunilor in miscare), backtracking (nu neaparat ca in paradigma de programare - mai iute ca in povestea cu breadcrumbs pe jos ca sa ne amintim drumul inapoi), attack range, warning range (as in, distanta de la care un NPC te va avertiza ca esti prea aproape - think Gothic) si multe altele.
E posibil ca Skippy sa atace si sa moara inaintea Mirindei :-P
E spider-ul din Glest Asta e ultimul carnat pe care-l mai postez pana la reveal.
Ziceam ca Mirinda ma va ajuta sa testez all about AI. While that is true, am impresia ca inainte sa continui cu treaba la Mirinda (care-i cam complexa), mai bine pun o fundatie mai solida cu ajutorul lui Skippy. Sau mai bine zis, ceea ce eu numesc Simple Dynamic AI. SDAI pe scurt.
Care-i treaba cu el? Spre deosebire de NPC-urile complexe, care au rutine separate bazate pe waypoint-uri si activitati intreprinse la anumite ore, NPC-urile cu SDAI sunt ceva mai... libere.
See here:
Unui NPC cu SDAI nu-i definim o lista de waypoint-uri pentru rutina sa; in schimb, definim o suprafata din nivel cu ajutorul a cel putin 3 enclosure points (EP). Un eclosure point nu e nimic altceva decat intersectia a doua laturi ale unui poligon cu cel putin 3 laturi (triunghi). NPC-ul va putea sa-si intreprinda rutina in interiorul acestui poligon, si numai in interiorul lui. Pentru asta, isi va genera dinamic (hence Dynamic in SDAI) waypoint-uri (wp) in interiorul enclosure-ului.
Dar care e treaba cu rutina? Fiecare NPC cu SDAI va avea doar o lista de activitati pe care le va putea intreprinde. Fara ore anume la care sa le intreprinda si fara o ordine predefinita (hence Simple in SDAI). NPC-ul isi va alege la intamplare cate o activitate de intreprins la fiecare waypoint (hence Dynamic in SDAI x2), in care ajunge.
So, e pretty much random behavior la locatii aflate pe suprafata unui poligon. E un model de AI ideal pentru critters si random enemies, precum... un paianjen. Tot in timpul dezvoltarii SDAI, voi pune la punct si alte elemente aflate in componenta AI-ului complex: dynamic waypoint creation (pentru evitarea coliziunilor in miscare), backtracking (nu neaparat ca in paradigma de programare - mai iute ca in povestea cu breadcrumbs pe jos ca sa ne amintim drumul inapoi), attack range, warning range (as in, distanta de la care un NPC te va avertiza ca esti prea aproape - think Gothic) si multe altele.
E posibil ca Skippy sa atace si sa moara inaintea Mirindei :-P