Wiem, wiem, minęło sporo czasu.
Rzeczywiście, w GOAP wdrożonym w 2005 roku przez Jeffa Orkina w FEAR (i ponownie wykorzystany w sequelach, rozszerzeniach i ... Shadow Of Mordor) akcje mają stałe koszty, od 0,5 do 8. Ogólnie rzecz biorąc, koszt ataku droższe niż koszt obrony. Koszty te są dostępne w bazie danych gry Free FEAR SDK (2008); tutaj są:
{{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} 1}, {AttackMeleeUncloaked, 3}, {AttackReady, 7}, {AttackTurret, 6}, {AttackTurretCeiling, 6}, {BlindFireFromCover, 2}, {Charge, 1}, {DeathOnVehicle, 1}, {DismountNodeUncloaked , {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}, {GotoTarget , 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}, {LongRecoilHelmetPiercing, 3} {LookAtDisturbance, 1.5}, {LookAtDisturbanceFromView, 3}, {LopeToTargetUncloaked, 1}, {MountNodeUncloaked, 1}, {MountVehicle, 1}, {ReactToDanger, 1}, {Reload, 5}, {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}}
Ale nie jest tak we wszystkich implementacjach GOAP i, na przykład, Tomb Raiders mają zmienne koszty (np. Odległość do akcji Goto).
Akcje mają również warunki wstępne i niektóre akcje muszą być odtwarzane pomimo architektury GOAP (np. Odgrywanie „ogłuszonej” animacji w reakcji gwałtownie obniżającego się zdrowia - pomimo celu „Zabij wroga” i planu, który GOAP powraca, aby osiągnąć ten cel). W twoim przykładzie, tj. Ucieczka przed atakiem, poziom zdrowia może być warunkiem wstępnym (i nie musisz mieć zmiennych kosztów).
Lub funkcja członkowska Check_Costs () jest wykonywana przed wszystkim innym, w oparciu o priorytety Michaela, i zwraca koszt dynamiczny.
Teraz zauważ, że w Shadow Of Mordor twórcy gier próbowali grać kosztami akcji, aby wpłynąć na to, co zostanie wykonane na ekranie. Okazuje się, że nie jest to takie łatwe, a nawet tanie działania nie pojawiają się tak często: AI w grze wspiera gracza; jeśli gracz nie zrobi tego, co jest oczekiwane, sztuczna inteligencja po prostu to poprze i ... to, co pojawi się na ekranie, nie będzie zgodne z oczekiwaniami projektowymi.