/
Zubair Zubair

Zubair - PowerPoint Presentation

pamella-moone
pamella-moone . @pamella-moone
Follow
382 views
Uploaded On 2016-07-12

Zubair - PPT Presentation

Chaudary Kenny Rentschler Constantin Savtchenko First Person Shooters What is a First Person Shooter Game Genre that involves projectile weapons Played though the eyes of game character ID: 401047

movement combat controller tactics combat movement tactics controller fps tactical pathfinding situation dynamic game aiming target enemy spatial cover

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Zubair" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Zubair

Chaudary

, Kenny

Rentschler

, Constantin Savtchenko

First Person ShootersSlide2

What is a First Person Shooter?

Game Genre that involves projectile weaponsPlayed “though the eyes” of game characterFirst Person point of viewCreates a game play, AI, and game design Issues

Popular FPS TitlesQuake, Doom, Wolfenstein 3D, Goldeneye

007, Half Life, Halo, Call of Duty, Counter Strike, Unreal Tournament…Slide3

Condensed History

First known FPS: Maze War (1974)FPS Stepping Stone: Wolfenstein 3D (1992)

Intro of Deathmatch: Doom (1993)3D Polygons: Quake (1996)Major Console FPS:

Goldeneye 007 (1997)Entirely Script Based FPS: Half-Life (1998)Exceptional Plot and Story: Half-Life (1998)Team play focused FPS: Unreal Tournament (1999)

New Millennium FPS: Halo (2001)MMOFPS: Planetside (2003)FPS as Story Medium:

Bioshock (2007)Graphics Killer: Crysis (2007)$1 Billion Dollar FPS: Call of Duty – Modern Warfare 2 (2009)Slide4

Why are FPS Important?

Arguably the most valuable to the gaming industryEnvelope Pushing sectorGraphics, Game Play, AI, AudioGenre Bending

Has created spinoff genresFPS medium allows developers to incorporate elements from other genresSlide5

Game Layers

Movement LayerDoes not determine where to move to, only how to do so.Avoid obstacles, follow characters, and path finding through complex environments

Animation layerSelecting, parameterizing, and playing character animation sequences

Generating specific animations that are situational, and not pre-rendered/codedCombat LayerAssessing characters current tactical situationSelecting tactics in combat

Performance is key, as this is the fundamental aspect of FPSBehavior LayerDetermines character’s current goal, and attempts to reach its goalSlide6

Movement

PathfindingDynamic ObstaclesSpatial ReasoningSlide7

Movement –

Pathfinding

Algorithms and methods to find most efficient movement from point A to ZMost FPS levels tend to be static, so AI use a pre-generated DatabaseAllows for A* search algorithms

A

ZSlide8

Movement – PathfindingSlide9

Movement – Pathfinding

Situation changes significantly with the addition of dynamic level elementsPlayer can move objects in front of AI pathsLevel Destruction can block paths

If the AI does not adapt, will walk into a wall and get stuck.Slide10

Movement – PathfindingSlide11

Movement – Pathfinding

Handling of dynamic objectsSome games ignore them (pseudo random movement)Introduction of Local

PathfindingUses Global Pathfinding to establish a general path from A to ZCreate lots of “waypoints” in-between A-Z

A

Z

B

C

D

E

FSlide12

Movement – Pathfinding

Local Pathfinding determines if subpath A-B are clear

If they are, continues to waypoint B, where it evaluates B-CIf not, it computes an alternate path to waypoint BLocal Pathfinding

also uses A* searchSlide13

Autodesk Kynapse

AI Data generation tool3D PathfindingPart of the Unreal 3 Engine

Management of perceptions (sight, smell, and sound)Slide14
Slide15
Slide16

Movement – Movement Controller

Subsystem that performs tasks assigned by higher level systemsPerforms discrete movement commandsMove to (X,Y,Z)

Only be executing one movement command at a time.Movement controller is an object that owns the current movement commandCan be use to handle different kinds of movement, like walking or swimmingSlide17

Combat Controller

When AI enters Combat, almost all control is given to combat controllerAttempts to assess tactical situationNumber of enemies, direction, health, ammoMore Advanced: cover locations, camping locations

Issues commands to other systemsMovement, aiming, shootingSlide18

Combat Controller – Spatial Reasoning

Most difficult task for AI combat controllerSpatial Reasoning requires understanding of level (Spatial Configuration)Needs to know where things are, and how objects are going be use

3-Dimensonal Levels increase complexity significantlySlide19

Combat Controller – Spatial Reasoning

Pathfinding solution can be usedPre-generate database of objects and their significance

Works poorly with dynamic levelsLevel Designers can embed ‘hints’Makes Level design cumbersomeError proneCustomized tools analyze geometry

Can be run dynamically to populate databasePhysical properties of objects?Slide20
Slide21

Left 4 Dead – Spatial Reasoning

We will use Valve’s Left 4 Dead to discuss and examine spatial reasoning.Things to think about: Navigating In 3DOptimal Paths

CPU CalculationsExample comes from apresentation created by Michael Booth.Slide22

Navigating Horizontally

Path finding algorithms help AI’s navigate optimally through environments.How do you define an environment?

By using a Navigation Mesh!!

Used instead of waypoints

AI can move anywhere in between the grids.However note the Jagged Path.Slide23

Navigating Horizontally

We could hardcode a “smooth” path…

Or we could use what Valve calls “Reactive Path Following”…

Look ahead in the path and

calculate

Use local obstacle avoidanceSlide24

Navigating Vertically

Oh, it’s a crate!?We would press spacebar, and bunny hop over it,

should be easy for computers right?

WrongSlide25

Spatial Reasoning Conclusion

AI has to deal with the environment as we do:QuicklyEfficientlyHumanlyCombining the two strategies we examined allows for an AI that deals with the presented necessitiesSlide26

Combat Controller – Tactics

An Example of a Tactical SituationCurrent LocationIn cover, or out in the Open?Ammo (unless they cheat)

EnemyHow Many?From where?Current Objective(s)Behavioral SituationSlide27

Combat Controller – Tactics

Tactic Selection ProblemNature of Tactic under ConsiderationRelative Tactical situation of all combatantsCurrent Tactical Situation

Use of Tactical Library is commonFSMsDatabasesDatabases with Q-LearningSlide28

Combat Controller - Tactics

Basic TacticsCampAI hides in a location, and waits for an opponent to appear

Effective, but behavior can seem very scriptedJoustAI rushes opponent, while firingRuns past opponent with the hopes of being able to turn around and rush from behind

Circle of DeathAI circles opponent while firingKeeps a variable radius away from target

AmbushAI ducks behind cover, periodically pops out of cover and shoots at enemy.Similar to camp, but AI must know where enemy is coming fromFlee and Ambush

AI runs away from enemy, and then takes cover and gets ready to ambushSlide29

Dynamic Procedural Combat Tactics

As games evolve, game designers strive to give players more freedoms:Dynamic level designsInteractive objects

Large, multi-approachable situationsWe will study how AI has kept up through Killzone

©’simplementation.Slide30

Why use D.P.C.T.

Old AI would use “hints” and series of “if-then” scripts.Hints remain static, rely on game designersEnormous amount of effort for responsive AI’s to react to situations and terrain

The AI must take into account:Multiple approach pointsDynamic environmentsDynamic positioning

End Result: Responsive AISlide31

What Is D.P.C.T.

AI analyzes the situationInputs are dynamicUsing gathered information, the AI acts:Goal setting/discarding

On-fly-algorithms allow for on-the-fly decision makingTactics are procedures, not scriptsSummary: tactics are _______ based on the ___________ and the _________.Slide32

Killzone AI: Situation To Decision

Killzone AI SummaryAccomplish goals, or change based on desirability/

feasabilityMove To Position, Do ActionKillzone’s describes situations:Cover from threats

Lines-of-fireDanger zonesArea of operationDecisions made using:

Position evaluationLine-of-sight and Line-of-FireSlide33

Position Evaluation

The assignment of values to the waypoints of KillzoneSome factors that give higher values

Distance to primary targetAmount of coverNot in the way of friendly-fireWall huggingOutside of danger-zone (grenades, tank shells)

Position Evaluation Helps MovementTactical PositioningTactical MovementSlide34

Tactical Positioning

Position evaluation functions assign values to the waypoints of KillzoneSlide35

Tactical Movement

Tactical Movement is smarter movementMovement usually done by “lowest weight”Notice we can use some of the existing position evaluation algorithm to make “dumb” paths cost more

Line of fireClose proximity to danger zonesRunning at the targetSlide36

Advanced Possible Dynamic Tactics

Position evaluation algorithms, can also be used for attackingIndirect Fire

Different determiners can be used to predict where to throw grenadesSuppression FireOther determiner can be used to figure out at which cover to lay suppressive

fire ontoSlide37

Advantages and Disadvantages

AdvantagesParameterization – change values, not codeEasily adapted for other uses, such as multiplayer

Procedural tactics are easier to adjust, and work with – compared to scripts/hintsRemoves extra ray-castsDisadvantagesDifficult to debug, the AI is “on its own” – compared to scripts/hints

Also, difficult to get it to do your bidding – if you want to actually script somethingSlide38

Combat Controller – Targeting

Opponent SelectionHow to Target?Most FPSs pit all AI against an enemy

Kung-Fu tactics?Need for Targeting HeuristicTactical Situation AwarenessWorry about defending itself first

Most vulnerable, nearest targetRanking function can simplifyNeed to be able to change targets based on changes in Tactical situationSlide39

Combat Tactics - Aiming

To-Hit Roll Less than perfect aiming for believability Calculating factors ([0.0,1.0] range)

AI skill RangeSizeRelative target velocityVisibility

Target stateAI stateProbability to hit = skill*range*size*…*stateSlide40

Combat Tactics - Aiming

AimingCheat AngleMaximum that a projectile can differ from gun barrel while still being believableDoesn’t need to match line of sight

LocationPoint with high probability of being hitModel target as overlapping boxes and pick center of volumeSlide41

Combat Tactics - Aiming

Shooting and MissingPick point close to target Low probability of hittingShould be visible to player

Missing when close and hitting from a far distance seems unrealSlide42

Combat Tactics - Aiming

Ray TestingTest projectiles trajectory before firingAvoid obstacles and friendly fire

Dead ReckoningEstimation of enemy position at given timeShoot where the enemy will be when bullet arrivesWeapon Trajectories

Difficult to predict slow moving projectiles (arrows) Use physics in ray testing to test trajectorySlide43

Combat Tactics - Aiming

Collision NotificationsProjectiles store pointers to object that fired itOn hit or miss object is notifiedHelps firing object adjust targeting

Radius TestingHelpful for area effect weaponsTreats everyone as cylinders or spheresTests area damage on everyone to avoid friendly fire and maximize enemy damageSlide44

Behavioral Controller

Responsible for controlling current state and high level goalsMost FPS use a Finite State MachinesIdle – Standing GuardPatrolling – AI following a designed patrol path

Combat – AI is engaged in combat and most control is given to combat controllerSearching – AI is looking for an opponent to fight or searching for an opponent who fledSummoning Help – AI is searching for helpSlide45

p

atrol

search

fight

s

ound, patrol -> ɛ

see, patrol -> ɛ

see, search -> ɛ

kill, ɛ -> search

kill, ɛ -> patrol

quiet, ɛ -> patrol

Behavioral Controller- FSMSlide46

Behavioral ControllerSlide47

Scripting Controller

Scripting and Trigger SystemsNeed scripting and triggering events to tell the AI to do somethingTriggered events set AI parametersSend commands to various subsystems

Changes state from Idle to Searching, or Searching to CombatDisadvantages?Slide48

Perceptual Modeling

Adds fairness to the gameEven though the game knows where a player is, the AI needs to “see” or “hear” a player approachingRealism

A sleeping enemy has to be startled to enter combat modeSneaking element is possible and quantizedSlide49

Perceptual Modeling

VisualUse ray casting to look for playersDistance, angle, and visibility factor into vision

AuditoryAI needs to receive sound notificationsEveryone in earshot should hear the soundPriority of sounds (e.g. bird chirping and gunshot)

Audio OcclusionInterference of sounds to create noiseTactile(touch)Alert when run into or woundedSlide50

AI Difficulty

AI is initially designed to be very smart (usually)Based on designers, the AI is given flaws to dumb it downAlso changed by difficulty settingsAffects parameters for targeting, etc

Player ModelingOn the fly difficulty adjustmentSlide51

AI as Teammates

Aiming very similarMovement may changeHow to move so the AI does not block a teammate’s vision?Behavior

How to choose objectives?