Ich weiß, ich weiß, es ist schon eine ganze Weile her.
In GOAP, wie es 2005 von Jeff Orkin in FEAR implementiert wurde (und in den Fortsetzungen, der Erweiterung und ... Shadow Of Mordor wiederverwendet wurde), haben Aktionen feste Kosten zwischen 0,5 und 8. Im Allgemeinen sind die Kosten für Angriffe hoch teurer als die Kosten für die Verteidigung. Auf diese Kosten kann in der Spieledatenbank des Free FEAR SDK (2008) zugegriffen werden. hier sind sie:
{{Animate, 1}, {Attack, 6}, {AttackBurstLimited, 5}, {AttackCrouch, 5}, {AttackFromAmbush, 4}, {AttackFromArmored, 4}, {AttackFromArmoredBounded, 4}, {AttackFromCover, 4}, { AttackFromVehicle, 1}, {AttackFromView, 4.5}, {AttackGrenadeFromCover, 2}, {AttackLunge3D, 1}, {AttackLungeMelee, 1}, {AttackLungeSuicide, 1}, {AttackLungeUncloaked, 1}, {AttackMelee, 3}, {AttackMelee, 3} 1}, {AttackMeleeUncloaked, 3}, {AttackReady, 7}, {AttackTurret, 6}, {AttackTurretCeiling, 6}, {BlindFireFromCover, 2}, {Charge, 1}, {DeathOnVehicle, 1}, {DismountNodeUncloaked, 1} , {DismountVehicle, 1}, {DodgeCovered, 1}, {DodgeOnVehicle, 1}, {DodgeRoll, 2}, {DodgeRollParanoid, 2}, {DodgeShuffle, 3}, {DrawWeapon, 1}, {EscapeDanger, 0.5}, { FaceNode, 1}, {FlushOutWithGrenade, 3}, {Follow, 3}, {FollowHeavyArmor, 2}, {FollowPlayer, 2}, {FollowPlayerFidget, 1.8},{FollowWaitAtNode, 4}, {GetOutOfTheWay, 1}, {GotoNode, 1}, {GotoNode3D, 1}, {GotoNodeDirect, 1}, {GotoNodeOfType, 1}, {GotoTarget, 4}, {GotoTarget3D, 4}, {GotoTarget3D, 4} , 8}, {GotoValidPosition, 1}, {HolsterWeapon, 1}, {Idle, 2}, {IdleFidget, 1}, {IdleOnVehicle, 1}, {IdleTurret, 2}, {InspectDisturbance, 2}, {InstantDeath, 1 }, {InstantDeathKnockDown, 1}, {KnockDownBullet, 2}, {KnockDownExplosive, 2}, {KnockDownMelee, 2}, {LongRecoilBullet, 3}, {LongRecoilExplosive, 3}, {LongRecoilHelmetPiercing, 3}, {LongRecoilHelmetPiercing, 3}. {LookAtDisturbance, 1.5}, {LookAtDisturbanceFromView, 3}, {LopeToTargetUncloaked, 1}, {MountNodeUncloaked, 1}, {MountVehicle, 1}, {ReactToDanger, 1}, {Reload, 5}, {ReloadCovered, 1}, {ReloadCovered, 1} , 5}, {ShortRecoilMelee, 4}, {Stunned, 1}, {SuppressionFire, 2}, {SuppressionFireFromCover, 1}, {SurveyArea, 1},{TraverseBlockedDoor, 1}, {TraverseLink, 2}, {TraverseLinkUncloaked, 1}, {Uncover, 1}, {UseSmartObjectNode, 3}, {UseSmartObjectNodeMounted, 1}}
Dies ist jedoch nicht bei allen GOAP-Implementierungen der Fall, und beispielsweise haben die Tomb Raiders variable Kosten (z. B. die Entfernung für eine Goto-Aktion).
Aktionen haben auch Voraussetzungen und einige Aktionen müssen trotz der GOAP-Architektur ausgeführt werden (z. B. eine "betäubte" Animation als Reaktion auf eine schnell abnehmende Gesundheit abspielen - trotz des "Kill Enemy" -Ziels und des Plans, den GOAP zurückgibt, um dieses Ziel zu erreichen). In Ihrem Beispiel, dh weglaufen oder angreifen, kann das Gesundheitsniveau eine Voraussetzung sein (und es müssen keine variablen Kosten anfallen).
Oder eine Check_Costs () - Mitgliedsfunktion wird basierend auf Michaels Prioritäten vor allem anderen ausgeführt und gibt die dynamischen Kosten zurück.
Bitte beachten Sie, dass die Entwickler von Spielen in Shadow Of Mordor versucht haben, mit den Kosten der Aktionen zu spielen, um zu beeinflussen, was auf dem Bildschirm ausgeführt wird. Es stellt sich heraus, dass es nicht so einfach ist und selbst billige Aktionen nicht so oft auftauchen: KI in einem Spiel unterstützt den Spieler; Wenn der Spieler nicht das tut, was erwartet wird, unterstützt die KI dies nur und ... was auf dem Bildschirm angezeigt wird, entspricht nicht dem erwarteten Spieldesign.