Jeśli po raz pierwszy rozwijasz sztuczną inteligencję, nie musisz się martwić takimi sprawami, jak stan, matematyka behawioralna, a nawet zdobyć książkę na ten temat.
Możesz dosłownie uciec od czegoś takiego:
if( targetInRange == true )
{
FireAtTarget();
}
else if( bulletComingTowardsMe == true )
{
MoveAwayFromBullet();
}
else
{
WanderAroundAimlessly();
}
Głównym aspektem poprawienia sztucznej inteligencji jest zastanowienie się nad tym, jakie zachowania powinna mieć postać i jak można to osiągnąć realistycznie. Tak więc dla podstawowego wroga statku kosmicznego wyobrażam sobie, że możliwe działania, które mógłby wykonać, to:
A kiedy te działania mogą się zdarzyć?
- Poruszaj się - nic więcej do roboty
- Ogień - kiedy zauważę wroga
- Uciekaj - Kiedy mam mało zdrowia / Kiedy biorę ogień / itp
Po wykonaniu tej czynności z powodu niskiej liczby „stanów”, w których może znajdować się twoja postać, możesz użyć prostej instrukcji if, takiej jak powyższa. Poleciłbym zatem przyjrzeć się Zachowaniom Sterowania, ponieważ są to bardzo proste zachowania, które można wdrożyć i mogą one skutkować naprawdę dobrze wyglądającym ruchem.
Więcej można znaleźć tutaj: http://www.red3d.com/cwr/steer/
I zdecydowanie poleciłbym książkę Mat Buckland Programowanie AI Gra przez przykład , szczególnie gdy zaczynasz.
Kiedy naprawdę się z tym czujesz, proponuję przyjrzeć się wzorcom stanu i strategii.
Chodzi o to, aby zacząć od małego i prostego. Nie przejmuj się tymi wszystkimi terminami, które wszyscy rzucają na temat FSM i wzorców projektowych i tym podobnych. Najpierw projektuj i buduj, a następnie martw się, jak możesz to ulepszyć, stosując istniejące metody lub standardy.
Mam nadzieję, że to pomaga!