To się rusza! Czyli mamy AI!

Jak wiadomo, w każdej grze, AI jest ważne. Nie inaczej jest z Beabest! Przecież, AI ma tu odgrywać kluczową rolę! Dlatego starałem się by moje AI było jednocześnie proste, niezawodne i łatwe w użytkowaniu. Jak mi to wyszło? Zapraszam do dalszej części artykułu.

Nie powiem, miałem z tym nie lada zagwozdkę, gdyż chciałem mieć takie AI, które jednocześnie będzie proste, będzie zrozumiałem, będzie „myślało”, nie będzie głupieć i jeszcze będzie posiadać kilka innych aspektów.

Moim pierwszym krokiem było wykorzystanie do tego celu navMesh oferowanego przez Unity. Działało tak jak chciałem, za wyjątkiem jednej rzeczy, mesh ten nie trzymał się powierzchni. Był jakiś metr ponad nią, efekt był wiadomy. Przeciwnicy po prostu latali. Na nic się zdało zmienianie offsetu w character controlller wroga.

Postanowiłem podejść do tego z innej strony, wtedy to zrodził się pomysł wykorzystania rigiidbody i powiem, że to działało jeszcze gorzej. Co prawda, przeciwnicy już nie latali, za to blokowali się na najmniejszym podwyższeniu. To nie było to,

Postanowiłem zasięgnąć rady na r/Unity3D (Polecam!). Tam użytkownik u/darkon76 polecił mi takie małe cudo : http://arongranberg.com/astar/

Gdy zobaczyłem do czego jest zdolne, od razu je zaimplementowałem. A o to efekty :

Pierwsze podejście nie było do końca udane, lecz miałem już coś więcej, byłem bliżej celu.

Drugie już było trafione, lecz ciągle czegoś mi brakowało no i miało kilka bugów.

Jednym z nich był bug powodujący, że AI nie potrafiło odnaleźć ze startu ścieżki i trzeba było je szturchnąć co oczywiście nie wchodziło w ogóle w grę! Postanowiłem to kompletnie zmienić.

Trudy zostały wynagrodzone idealnie działającym AI, które mogę przenieść na dowolnego przeciwnika, a w osobnych skrypcie napisać jego mechanikę i powiązać oba skrypty!

Co sądzicie o moich postępach? 😀

Advertisements

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s