Wenn Sie AI zum ersten Mal entwickeln, müssen Sie sich nicht um Zustandsmuster, Verhaltensmathematik oder gar ein Buch über dieses Thema kümmern.
Sie können buchstäblich mit so etwas davonkommen:
if( targetInRange == true )
{
FireAtTarget();
}
else if( bulletComingTowardsMe == true )
{
MoveAwayFromBullet();
}
else
{
WanderAroundAimlessly();
}
Der Hauptaspekt der KI-Korrektheit besteht darin, darüber nachzudenken, welche Verhaltensweisen der Charakter haben soll und wie dies realistisch erreicht werden kann. Für einen einfachen Raumschiff-Feind wäre es also denkbar, folgende Aktionen auszuführen:
- Herumbewegen
- Feuer
- Weglaufen
Und wann könnten diese Aktionen stattfinden?
- Bewegen Sie sich - sonst nichts zu tun
- Feuer - Wenn ich einen Feind sehe
- Lauf weg - Wenn mir die Gesundheit ausgeht / Wenn ich Feuer nehme / etc
Nachdem Sie dies aufgrund der geringen Anzahl von "Zuständen" getan haben, in denen sich Ihr Charakter befinden kann, können Sie eine einfache if-Anweisung wie die obige verwenden. Ich würde Ihnen dann empfehlen, sich Lenkverhalten anzuschauen, da dies sehr einfach zu implementierende Verhaltensweisen sind, die zu einer wirklich gut aussehenden Bewegung führen können.
Mehr finden Sie hier: http://www.red3d.com/cwr/steer/
Und ich würde Mat Bucklands Buch Programming Game AI By Example auf jeden Fall empfehlen , besonders wenn Sie anfangen.
Wenn Sie mit diesen wirklich vertraut sind, würde ich vorschlagen, dass Sie sich die Zustands- und Strategiemuster ansehen.
Es geht darum, klein und einfach anzufangen. Machen Sie sich keine Sorgen über all diese Begriffe, die jeder ständig über FSMs und Designmuster und so weiter austauscht. Entwerfen und erstellen Sie zunächst, bevor Sie sich Gedanken darüber machen, wie Sie diese mithilfe vorhandener Methoden oder Standards verbessern können.
Ich hoffe, das hilft!