ponedjeljak, 26. listopada 2009.

AI u letačkim simulacijama

Ako se radi 3D space sim, može biti gadno raditi AI. Prvi obstacle? Predviđanje kolizije i adekvatno reagiranje. Dakle imamo svemirski brod. On treba negdje letjeti. Možemo imati cilj prema kojem želimo letjeti, i recimo da je lako i riješeno kako se brod treba tamo okrenuti. (Ako ništa drugo -- sfejka se.) I tako mi letimo... i sad treba predvidjeti da ako odmah ovaj čas istog trenutka ne krenemo skretati, bit će sudar, udar i neće biti dobro .Još ako pričamo o roju brodova koji se bore, treba paziti da se ne udare međusobno. Treba vrlo pametno odlučivati.

Po čemu se to razlikuje od ostalih AIjeva? Pa prvo, po količini prostorne matematike. Za svaku, ama baš svaku sitnicu, treba očekivati rad sa hrpom vektora, kuteva, sinusića i kosinusića. Nema tu "Hm, točno iznad mene je? Ok, idem lijevo" -- ne, zato što prvo treba odlučiti što točno znači "iznad mene" i što točno znači "lijevo", te kako postići "idemo u lijevo".

2D račun je relativno jednostavan. U 3D računu se petljaju dodatne mogućnosti. Recimo, upravo to -- što znači skrenuti ulijevo? Ako imamo rotaciju baziranu na kvaternionima, lako je skrenuti ulijevo bazirano na naš viewport... a ako računamo za AI, malčice je teže predvidjeti što točno jest skretanje ulijevo i da li ćemo na taj način ustvari lupiti u nekoga.

Uglavnom, I'm having fun! :-)

Nema komentara:

Objavi komentar