Presentation is loading. Please wait.

Presentation is loading. Please wait.

Artificial Intelligence in Game Design Cooperative Movement.

Similar presentations


Presentation on theme: "Artificial Intelligence in Game Design Cooperative Movement."— Presentation transcript:

1 Artificial Intelligence in Game Design Cooperative Movement

2 Coordinated Movement Steering of individual character based on movement of other characters – Organized movement – Cooperating in pursuit of overall goal Moving group in formation – Creating formations Implementing plays in sports games

3 Fixed Formations Line Circle “V” formation Note that all are usually scalable to different group sizes

4 Leader-Based Steering “Leader” steers towards goal Followers have slots – Fixed position relative to leader – Move with leader – Followers seek location of slot leader Fixed distance, orientation WRT leader leader Left flank Right flank Right rear slots Seek new slot positions

5 Leader-Based Steering Problem if leader has to steer around obstacles Followers will also steer for no good reason! Need greater degree of independence leader

6 Leader Marker Steering “Invisible” leader marker leads formation – All characters have slots relative to leader marker – Leader marker not affected by obstacles Fixed distance, orientation WRT leader marker Leader marker Left flank Right flank Right rear slots Front

7 Leader Marker Steering Followers steer around obstacles – Use blending/priorities to determine steering – May have other goals (seek cover, avoid collisions, etc.) Leader marker Right side Seek slot Avoid obstacle Seek cover Final steering Avoid collision

8 Leader Marker Steering Problem if many obstacles in squad path – Leader marker not affected – Followers are slowed by obstacles – Followers get far behind leader Leader marker should move slow if necessary – Target velocity of leader = Average current velocity of squad Left flank Right flank Right rear Front Squad moving slow

9 Leader Marker Steering Problem if some units slower than others – Smaller MaxVel, MaxAccel – Larger units  slower to steer past – Target velocity of leader = Minimum velocity of units in squad Left flank Right flank Center Front

10 Hierarchical Formations Large units usually consist of smaller squads also in fixed relative locations – Have overall leader marker – Leader markers of individual squads have slots in overall unit Heavy weapons Infantry Flankers Overall leader

11 Slot Assignment Different slots in a formation may require different abilities Given group of characters, how should those slots be filled? Example: Heavy weapon escort group Hand to Hand Weaponry Hand to Hand Weaponry Long Distance Weaponry Hand to Hand Weaponry Long Distance Weaponry Heavy Weaponry

12 Slot Assignment Different characters have different abilities – Can represent fit to role numerically Swords- man PikemanAxemanArcherCatapultCannonGrenadier Hand to Hand 10 4003 Long Distance 03010007 Heavy Weaponry 000020 3

13 Minimal Cost Slot Assignment Goal: Assign slots to maximize score (or minimize “cost”) Hand to Hand Weaponry Hand to Hand Weaponry Long Distance Weaponry Hand to Hand Weaponry Long Distance Weaponry Heavy Weaponry Total score: 8 Hand to Hand Weaponry Hand to Hand Weaponry Long Distance Weaponry Hand to Hand Weaponry Long Distance Weaponry Heavy Weaponry Total score: 68

14 Minimal Cost Slot Assignment Not feasible to check all possible assignments – n characters  O(n!) possible assignments Greedy algorithm – Start with hardest to assign characters first – Characters with greatest variance between slot scores second third fourth last Hand to Hand Weaponry Hand to Hand Weaponry Long Distance Weaponry Hand to Hand Weaponry Long Distance Weaponry Heavy Weaponry first

15 Dynamic Slot Assignment May need to reassign slots dynamically – Squad members removed May need to factor in cost of empty slot – Can use to put preferences on filled slots Without a heavy weapon, no purpose for squad! – Can use to put preferences on numbers in slots Ok to have one hand to hand slot in front, but not to have none in front Hand to Hand Weaponry Empty = - 10 Hand to Hand Weaponry Empty = -15 Long Distance Weaponry Empty = - 15 Hand to Hand Weaponry Empty = - 20 Long Distance Weaponry Empty = - 5 Heavy Weaponry Empty = - 50

16 Minimal Cost Slot Assignment Example: Hand to Hand Weaponry Hand to Hand Weaponry Long Distance Weaponry Hand to Hand Weaponry Long Distance Weaponry Empty Heavy Weaponry Total score: 54 Hand to Hand Weaponry Empty Hand to Hand Weaponry Long Distance Weaponry Hand to Hand Weaponry Long Distance Weaponry Heavy Weaponry Total score: 48

17 Minimal Cost Slot Assignment If costs too great, may need to change squad type – Try all squad types of new group size Example: Hand to Hand Weaponry Hand to Hand Weaponry Long Distance Weaponry Hand to Hand Weaponry Long Distance Weaponry New attack squad Hand to Hand Weaponry Hand to Hand Weaponry Long Distance Weaponry Hand to Hand Weaponry Long Distance Weaponry Empty Heavy Weaponry Total score: 46

18 Squad Cover Movement Squad moves one at a time – Rearmost member moves to next cover position – Rest of squad remains stationary, providing cover Squad as a whole must move in desired direction Desired direction

19 Cover Squad Cover Movement Can still use formation slots Based on nearest cover instead of fixed formation Slot B Slot D Slot C Slot A Cover Slot B Seek

20 Squad Cover Movement Choose squad member furthest from goal Choosing next cover point – In direction of squad goal Often done by targeting a “squad anchor point” in center of formation – Not used by another member of squad – Within cover range of rest of squad May not necessarily put in front of rest of squad Move squad member slot to that cover point – Squad member will seek that slot Cover

21 Squad Cover Movement Cover Range of coverage Cover Squad center

22 State-Based Movement Character does not begin movement until signaled to do so by another character Direction/type of steering depends on location/steering of other characters State 1A Steering for this state Character A State 2A Steering for this state State 1B Steering for this state Character B State 2B Steering for this state Change in character A state Causes change in character B state signal

23 Play-Based Steering Typical in most team sports games – Example: Passing formation

24 Play-Based Steering Arrive at pocket Quarterback FollowPath route, Avoid defenders Receiver Wander, Avoid defenders At route end and open Wander, Avoid defenders Throw: Pursue(football, receiver) Pursue football Football thrown

25 State-Based Implementation Character A sets flag in central repository for team in state exit Reciever3 RunRoute state void Exit() { … repository.setFlag( this, “open”, true); … Who set flag Flag name, value Team Repository SenderFlagValue Reciever3opentrue ………

26 State-Based Implementation Character B checks for flag as input in checkTransitions method to determine whether to change state Quarterback WaitForReciever state int CheckTransitions() { … if (repository.getFlag( Reciever3, “open”)) { return THROW_STATE; } … Team Repository SenderFlagValue Reciever3opentrue ………

27 Handling Failed States Example: – Target receiver never open – Quarterback must eventually take another action Choose another receiver Scramble – Need a state timeout to recognize this – Receiver should recognize and change to “blocking” state

28 Handling Failed States Arrive at pocket Quarterback FollowPath route, Avoid defenders Receiver Wander, Avoid defenders At route end and open Wander, Avoid defenders Throw: Pursue(football, receiver) Pursue football Football thrown Seek goal Avoid defenders 3 seconds Seek defenders


Download ppt "Artificial Intelligence in Game Design Cooperative Movement."

Similar presentations


Ads by Google