SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Hi,
This is Adrian
I am here because I love to build games and also
to give presentations. Today’s is about...
Pathfinding
in games
Our goal
Reach a target as well as possible.
Artificial intelligence
Non-player character (FPS)
Armies of units (RTS)
Enemies (Tower Defense)
Use cases
Player exploration
Objective display
GPS (Racing)
RTS Starcraft 2
Racing Test Drive Unlimited 2
RPG Mass Effect 2
Get objec
positio
Basic repetitive procedure
Close object
to target
Estimate
distance
to target
Get object
positione object
o target
1.
Space representation
Data structures
Grid
Each cell is denoted by its row and column.
1, 1 1, 2 1, 3 1, 4 1, 5 1, 6 1, 7
2, 1 2, 2 2, 3 2, 4 2, 5 2, 6 2, 7
3, 1 3, 2 3, 3 3, 4 3, 5 3, 6 3, 7
Graph
Node are connected through edges.
1
3
2
6
5
8
4
7
Convex polygons
Convex = all segments with extremities inside lie inside.
2.
Space manipulation
Algorithms
Random backstepping
Take one step in the direction of
the target. Avoid obstacles by
taking a step back.
Simple algorithms
Obstacle tracing
Similar to random
backstepping, calculates the
collision before it happens.
Advanced algorithms
◆ Breadth-first search (BFS)
◆ Depth-first search (DFS)
◆ Best-first search
◆ Dijkstra’s algorithm
◆ A* algorithm
BFS vs DFS
BFS is wide; DFS is deep.
Worst-case
space complexity
Worst-case
time complexity
Implementation
BFS vs DFS
Small: linear in the length
of the current path.
Large: linear in the area of
the explored surface, as it
explores useless paths.
By using a first-in,
first-out (FIFO) data
structure, e.g., a stack.
DFS
Large: linear in the
perimeter of the explored
surface.
Small: quadratic in the
length of the minimum
path.
By using a last-in, first out
(LIFO) data structure, e.g.,
a queue.
BFS
Dijkstra’s algorithm
◆ Solves the single-source shortest path problem.
◆ Invented by Edsger Dijkstra, Turing award winner.
◆ Used in many games for efficient pathfinding.
◆ More efficient than BFS and DFS in terms of time.
◆ More complex in implementation too.
Dijkstra pseudocode
◆ Start with two sets of graph nodes S and T.
◆ S contains the source node and T all others.
While the target node is not in S, do:
◆ Find the node in T that is closest to a node in S.
◆ Move that node from T to S.
◆ Relax the edges from the node to T.
Dijkstra efficiency
◆ To find the closest node, one can use an efficient data
structure, such as a simple heap, to answer queries for
the minimum in a totally-ordered set.
◆ Its operations take worst-case O(n) time, where n is the
number of nodes. With a simple heap, the worst-case
time complexity is O(m ⨉ log n), where m is the number of
edges.
◆ By using Fibonacci heaps, one can reduce the time
complexity down to O(m + n ⨉ log n), as m >> n.
A* algorithm
◆ A “combination” of BFS and Dijkstra.
◆ Does not use exact distances between nodes.
◆ Estimates the distance by using a heuristic.
◆ The heuristic should not overestimate the distance.
Possible heuristics:
◆ Manhattan distance - go straight, no diagonals.
◆ Diagonal distance - go only 45 deg. diagonals.
◆ Euclidean distance - distance in the plane.
A* traversal
The A* will visit the heuristically closest nodes to the target.
3.
Dynamic changes
What about updates on the world?
Distance recalculation
Opportunities:
◆ With every nth iteration of the algorithm.
◆ When the processor is idle.
◆ When a unit reaches a waypoint or a corner.
◆ When the “near world” has changed.
Challenges:
◆ Previously computed data is thrown away.
◆ Can be show for large maps.
Path splice
Main idea:
◆ Splice the large path into smaller
paths.
◆ Only recalculate one or more of
the smaller paths.
◆ Handle the coordination of
multiple units - see image.
Challenges:
◆ Responds poorly to large changes.
Region partition
Main idea:
◆ Partition the map into regions.
◆ Each unit depends of a
specific region.
◆ Propagate a change only
within the region.
Challenges:
◆ Responds badly to large
changes - see image.
Obstacle prediction
Main idea:
◆ Incorporate heuristics that
predict how obstacles will move in
the future - see image.
Challenge:
◆ Depending on the game, the move
may be easy, hard, or impossible
to predict.
4.
Multiple units
How can we coordinate them?
Individual movement
Algorithm:
◆ Find the center of a set of units.
◆ Compute the path from the center
to the target.
◆ Move each individual unit in
parallel, along the path - see
image.
Coordinated movement
Algorithm:
◆ Identify a leader among the units.
◆ Compute the path from the leader
to the target.
◆ Move the leader along the path.
◆ Make the other units flock around
the leader unit - see image.
Thank you.
Any questions?
You can find me at @dumitrix

Weitere ähnliche Inhalte

Was ist angesagt?

MG6088 SOFTWARE PROJECT MANAGEMENT
MG6088 SOFTWARE PROJECT MANAGEMENTMG6088 SOFTWARE PROJECT MANAGEMENT
MG6088 SOFTWARE PROJECT MANAGEMENTKathirvel Ayyaswamy
 
The Basics of Unity - The Game Engine
The Basics of Unity - The Game EngineThe Basics of Unity - The Game Engine
The Basics of Unity - The Game EngineOrisysIndia
 
lecture:Operating Syste Ms
lecture:Operating Syste Mslecture:Operating Syste Ms
lecture:Operating Syste Msyeswanth reddy
 
What Is A Game Engine
What Is A Game EngineWhat Is A Game Engine
What Is A Game EngineSeth Sivak
 
LAFS Game Design 1 - Structural Elements
LAFS Game Design 1 - Structural ElementsLAFS Game Design 1 - Structural Elements
LAFS Game Design 1 - Structural ElementsDavid Mullich
 
Blockchain in gaming industry
Blockchain in gaming industryBlockchain in gaming industry
Blockchain in gaming industryCeline George
 
An Introduction To Game development
An Introduction To Game developmentAn Introduction To Game development
An Introduction To Game developmentAhmed
 
Clash Royale Mobile Game Teardown or Deconstruction by Adrian Crook & Associa...
Clash Royale Mobile Game Teardown or Deconstruction by Adrian Crook & Associa...Clash Royale Mobile Game Teardown or Deconstruction by Adrian Crook & Associa...
Clash Royale Mobile Game Teardown or Deconstruction by Adrian Crook & Associa...Adrian Crook and Associates
 
06. Game Architecture
06. Game Architecture06. Game Architecture
06. Game ArchitectureAmin Babadi
 
Secondary Screen Support Using DisplayManager
Secondary Screen Support Using DisplayManagerSecondary Screen Support Using DisplayManager
Secondary Screen Support Using DisplayManagerCommonsWare
 
Presentation on graphics processing unit (GPU)
Presentation on graphics processing unit (GPU)Presentation on graphics processing unit (GPU)
Presentation on graphics processing unit (GPU)MuntasirMuhit
 
Game Development Step by Step
Game Development Step by StepGame Development Step by Step
Game Development Step by StepBayu Sembada
 
Game project Final presentation
Game project Final presentationGame project Final presentation
Game project Final presentationgemmalunney
 
Graphics processing unit ppt
Graphics processing unit pptGraphics processing unit ppt
Graphics processing unit pptSandeep Singh
 
Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)Randal Schwartz
 
Graphics processing unit (GPU)
Graphics processing unit (GPU)Graphics processing unit (GPU)
Graphics processing unit (GPU)Amal R
 
3-Game Graphics (Game Design and Development)
3-Game Graphics (Game Design and Development)3-Game Graphics (Game Design and Development)
3-Game Graphics (Game Design and Development)Hafiz Ammar Siddiqui
 
Final year project presentation
Final year project presentationFinal year project presentation
Final year project presentationSulemanAliMalik
 

Was ist angesagt? (20)

UNITY 3D.pptx
UNITY 3D.pptxUNITY 3D.pptx
UNITY 3D.pptx
 
MG6088 SOFTWARE PROJECT MANAGEMENT
MG6088 SOFTWARE PROJECT MANAGEMENTMG6088 SOFTWARE PROJECT MANAGEMENT
MG6088 SOFTWARE PROJECT MANAGEMENT
 
The Basics of Unity - The Game Engine
The Basics of Unity - The Game EngineThe Basics of Unity - The Game Engine
The Basics of Unity - The Game Engine
 
lecture:Operating Syste Ms
lecture:Operating Syste Mslecture:Operating Syste Ms
lecture:Operating Syste Ms
 
What Is A Game Engine
What Is A Game EngineWhat Is A Game Engine
What Is A Game Engine
 
UI Programming with Qt-Quick and QML
UI Programming with Qt-Quick and QMLUI Programming with Qt-Quick and QML
UI Programming with Qt-Quick and QML
 
LAFS Game Design 1 - Structural Elements
LAFS Game Design 1 - Structural ElementsLAFS Game Design 1 - Structural Elements
LAFS Game Design 1 - Structural Elements
 
Blockchain in gaming industry
Blockchain in gaming industryBlockchain in gaming industry
Blockchain in gaming industry
 
An Introduction To Game development
An Introduction To Game developmentAn Introduction To Game development
An Introduction To Game development
 
Clash Royale Mobile Game Teardown or Deconstruction by Adrian Crook & Associa...
Clash Royale Mobile Game Teardown or Deconstruction by Adrian Crook & Associa...Clash Royale Mobile Game Teardown or Deconstruction by Adrian Crook & Associa...
Clash Royale Mobile Game Teardown or Deconstruction by Adrian Crook & Associa...
 
06. Game Architecture
06. Game Architecture06. Game Architecture
06. Game Architecture
 
Secondary Screen Support Using DisplayManager
Secondary Screen Support Using DisplayManagerSecondary Screen Support Using DisplayManager
Secondary Screen Support Using DisplayManager
 
Presentation on graphics processing unit (GPU)
Presentation on graphics processing unit (GPU)Presentation on graphics processing unit (GPU)
Presentation on graphics processing unit (GPU)
 
Game Development Step by Step
Game Development Step by StepGame Development Step by Step
Game Development Step by Step
 
Game project Final presentation
Game project Final presentationGame project Final presentation
Game project Final presentation
 
Graphics processing unit ppt
Graphics processing unit pptGraphics processing unit ppt
Graphics processing unit ppt
 
Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)
 
Graphics processing unit (GPU)
Graphics processing unit (GPU)Graphics processing unit (GPU)
Graphics processing unit (GPU)
 
3-Game Graphics (Game Design and Development)
3-Game Graphics (Game Design and Development)3-Game Graphics (Game Design and Development)
3-Game Graphics (Game Design and Development)
 
Final year project presentation
Final year project presentationFinal year project presentation
Final year project presentation
 

Ähnlich wie Pathfinding in games

GDC 2012: Advanced Procedural Rendering in DX11
GDC 2012: Advanced Procedural Rendering in DX11GDC 2012: Advanced Procedural Rendering in DX11
GDC 2012: Advanced Procedural Rendering in DX11smashflt
 
Mrongraphs acm-sig-2 (1)
Mrongraphs acm-sig-2 (1)Mrongraphs acm-sig-2 (1)
Mrongraphs acm-sig-2 (1)Nima Sarshar
 
Lecture 16 - Dijkstra's Algorithm.pdf
Lecture 16 - Dijkstra's Algorithm.pdfLecture 16 - Dijkstra's Algorithm.pdf
Lecture 16 - Dijkstra's Algorithm.pdfiftakhar8
 
Dijkstra's algorithm presentation
Dijkstra's algorithm presentationDijkstra's algorithm presentation
Dijkstra's algorithm presentationSubid Biswas
 
Deep Learning Tutorial
Deep Learning Tutorial Deep Learning Tutorial
Deep Learning Tutorial Ligeng Zhu
 
03 image transformations_i
03 image transformations_i03 image transformations_i
03 image transformations_iankit_ppt
 
Lucio marcenaro tue summer_school
Lucio marcenaro tue summer_schoolLucio marcenaro tue summer_school
Lucio marcenaro tue summer_schoolJun Hu
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsNaughty Dog
 
Analysis of Pathfinding Algorithms
Analysis of Pathfinding AlgorithmsAnalysis of Pathfinding Algorithms
Analysis of Pathfinding AlgorithmsSigSegVSquad
 
CS 354 More Graphics Pipeline
CS 354 More Graphics PipelineCS 354 More Graphics Pipeline
CS 354 More Graphics PipelineMark Kilgard
 
2-Heuristic Search.ppt
2-Heuristic Search.ppt2-Heuristic Search.ppt
2-Heuristic Search.pptMIT,Imphal
 
Parallel Computing 2007: Bring your own parallel application
Parallel Computing 2007: Bring your own parallel applicationParallel Computing 2007: Bring your own parallel application
Parallel Computing 2007: Bring your own parallel applicationGeoffrey Fox
 

Ähnlich wie Pathfinding in games (20)

GDC 2012: Advanced Procedural Rendering in DX11
GDC 2012: Advanced Procedural Rendering in DX11GDC 2012: Advanced Procedural Rendering in DX11
GDC 2012: Advanced Procedural Rendering in DX11
 
Mrongraphs acm-sig-2 (1)
Mrongraphs acm-sig-2 (1)Mrongraphs acm-sig-2 (1)
Mrongraphs acm-sig-2 (1)
 
Lecture set 5
Lecture set 5Lecture set 5
Lecture set 5
 
Lecture 16 - Dijkstra's Algorithm.pdf
Lecture 16 - Dijkstra's Algorithm.pdfLecture 16 - Dijkstra's Algorithm.pdf
Lecture 16 - Dijkstra's Algorithm.pdf
 
Dijkstra's algorithm presentation
Dijkstra's algorithm presentationDijkstra's algorithm presentation
Dijkstra's algorithm presentation
 
Deep Learning Tutorial
Deep Learning Tutorial Deep Learning Tutorial
Deep Learning Tutorial
 
Darkonoid
DarkonoidDarkonoid
Darkonoid
 
03 image transformations_i
03 image transformations_i03 image transformations_i
03 image transformations_i
 
Lucio marcenaro tue summer_school
Lucio marcenaro tue summer_schoolLucio marcenaro tue summer_school
Lucio marcenaro tue summer_school
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT Methods
 
Analysis of Pathfinding Algorithms
Analysis of Pathfinding AlgorithmsAnalysis of Pathfinding Algorithms
Analysis of Pathfinding Algorithms
 
CS 354 More Graphics Pipeline
CS 354 More Graphics PipelineCS 354 More Graphics Pipeline
CS 354 More Graphics Pipeline
 
2-Heuristic Search.ppt
2-Heuristic Search.ppt2-Heuristic Search.ppt
2-Heuristic Search.ppt
 
dsa.pptx
dsa.pptxdsa.pptx
dsa.pptx
 
Parallel Computing 2007: Bring your own parallel application
Parallel Computing 2007: Bring your own parallel applicationParallel Computing 2007: Bring your own parallel application
Parallel Computing 2007: Bring your own parallel application
 
distance_matrix_ch
distance_matrix_chdistance_matrix_ch
distance_matrix_ch
 
Games.4
Games.4Games.4
Games.4
 
Ai part 1
Ai part 1Ai part 1
Ai part 1
 
Hadoop classes in mumbai
Hadoop classes in mumbaiHadoop classes in mumbai
Hadoop classes in mumbai
 
VoxelNet
VoxelNetVoxelNet
VoxelNet
 

Kürzlich hochgeladen

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 

Kürzlich hochgeladen (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Pathfinding in games

  • 1.
  • 2. Hi, This is Adrian I am here because I love to build games and also to give presentations. Today’s is about...
  • 4. Our goal Reach a target as well as possible.
  • 5. Artificial intelligence Non-player character (FPS) Armies of units (RTS) Enemies (Tower Defense) Use cases Player exploration Objective display GPS (Racing)
  • 7. Racing Test Drive Unlimited 2
  • 9. Get objec positio Basic repetitive procedure Close object to target Estimate distance to target Get object positione object o target
  • 11. Grid Each cell is denoted by its row and column. 1, 1 1, 2 1, 3 1, 4 1, 5 1, 6 1, 7 2, 1 2, 2 2, 3 2, 4 2, 5 2, 6 2, 7 3, 1 3, 2 3, 3 3, 4 3, 5 3, 6 3, 7
  • 12. Graph Node are connected through edges. 1 3 2 6 5 8 4 7
  • 13. Convex polygons Convex = all segments with extremities inside lie inside.
  • 15. Random backstepping Take one step in the direction of the target. Avoid obstacles by taking a step back. Simple algorithms Obstacle tracing Similar to random backstepping, calculates the collision before it happens.
  • 16. Advanced algorithms ◆ Breadth-first search (BFS) ◆ Depth-first search (DFS) ◆ Best-first search ◆ Dijkstra’s algorithm ◆ A* algorithm
  • 17. BFS vs DFS BFS is wide; DFS is deep.
  • 18. Worst-case space complexity Worst-case time complexity Implementation BFS vs DFS Small: linear in the length of the current path. Large: linear in the area of the explored surface, as it explores useless paths. By using a first-in, first-out (FIFO) data structure, e.g., a stack. DFS Large: linear in the perimeter of the explored surface. Small: quadratic in the length of the minimum path. By using a last-in, first out (LIFO) data structure, e.g., a queue. BFS
  • 19. Dijkstra’s algorithm ◆ Solves the single-source shortest path problem. ◆ Invented by Edsger Dijkstra, Turing award winner. ◆ Used in many games for efficient pathfinding. ◆ More efficient than BFS and DFS in terms of time. ◆ More complex in implementation too.
  • 20. Dijkstra pseudocode ◆ Start with two sets of graph nodes S and T. ◆ S contains the source node and T all others. While the target node is not in S, do: ◆ Find the node in T that is closest to a node in S. ◆ Move that node from T to S. ◆ Relax the edges from the node to T.
  • 21. Dijkstra efficiency ◆ To find the closest node, one can use an efficient data structure, such as a simple heap, to answer queries for the minimum in a totally-ordered set. ◆ Its operations take worst-case O(n) time, where n is the number of nodes. With a simple heap, the worst-case time complexity is O(m ⨉ log n), where m is the number of edges. ◆ By using Fibonacci heaps, one can reduce the time complexity down to O(m + n ⨉ log n), as m >> n.
  • 22. A* algorithm ◆ A “combination” of BFS and Dijkstra. ◆ Does not use exact distances between nodes. ◆ Estimates the distance by using a heuristic. ◆ The heuristic should not overestimate the distance. Possible heuristics: ◆ Manhattan distance - go straight, no diagonals. ◆ Diagonal distance - go only 45 deg. diagonals. ◆ Euclidean distance - distance in the plane.
  • 23. A* traversal The A* will visit the heuristically closest nodes to the target.
  • 24. 3. Dynamic changes What about updates on the world?
  • 25. Distance recalculation Opportunities: ◆ With every nth iteration of the algorithm. ◆ When the processor is idle. ◆ When a unit reaches a waypoint or a corner. ◆ When the “near world” has changed. Challenges: ◆ Previously computed data is thrown away. ◆ Can be show for large maps.
  • 26. Path splice Main idea: ◆ Splice the large path into smaller paths. ◆ Only recalculate one or more of the smaller paths. ◆ Handle the coordination of multiple units - see image. Challenges: ◆ Responds poorly to large changes.
  • 27. Region partition Main idea: ◆ Partition the map into regions. ◆ Each unit depends of a specific region. ◆ Propagate a change only within the region. Challenges: ◆ Responds badly to large changes - see image.
  • 28. Obstacle prediction Main idea: ◆ Incorporate heuristics that predict how obstacles will move in the future - see image. Challenge: ◆ Depending on the game, the move may be easy, hard, or impossible to predict.
  • 29. 4. Multiple units How can we coordinate them?
  • 30. Individual movement Algorithm: ◆ Find the center of a set of units. ◆ Compute the path from the center to the target. ◆ Move each individual unit in parallel, along the path - see image.
  • 31. Coordinated movement Algorithm: ◆ Identify a leader among the units. ◆ Compute the path from the leader to the target. ◆ Move the leader along the path. ◆ Make the other units flock around the leader unit - see image.
  • 32. Thank you. Any questions? You can find me at @dumitrix