Situational Awareness: Terrain Reasoning for Tactical Shooter A.I

Similar documents
CS248. Game Mechanics

Game AI: The set of algorithms, representations, tools, and tricks that support the creation and management of real-time digital experiences

I may not have gone where I intended to go, but I think I have ended up where I needed to be. Douglas Adams

I may not have gone where I intended to go, but I think I have ended up where I needed to be. Douglas Adams

Navigation Mesh based Pathfinding for large crowds

Character AI: Sensing & Perception

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

High level NavMesh Building Components

Spatial Data Structures

Finding a Path. Advanced Pathfinding. Finding a Path. A* Pathfinding Search. Practical Path Planning 3/21/2016. Tile-Based Navigation Graphs IMGD 4000

Pathfinding. Pathfinding Planned Movement

ARTIFICIAL INTELLIGENCE: SITUATIONAL AWARENESS

Spatial Data Structures

Formations in flow fields

DM842 Computer Game Programming: AI. Lecture 5. Path Finding. Marco Chiarandini

Spatial Data Structures

Who has worked on a voxel engine before? Who wants to? My goal is to give the talk I wish I would have had before I started on our procedural engine.

Pathfinding Decision Making

Enhancing Traditional Rasterization Graphics with Ray Tracing. March 2015

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

MOBILE. LuciadMobile DATA SHEET

Beyond A*: Speeding up pathfinding through hierarchical abstraction. Daniel Harabor NICTA & The Australian National University

the gamedesigninitiative at cornell university Lecture 20 Pathfinding

Minecraft Due: March. 6, 2018

Location Awareness in Ad Hoc Wireless Mobile Neworks

CS 480/680: GAME ENGINE PROGRAMMING

Spatial Data Structures

Second Semester Examinations 2012/13

Enabling immersive gaming experiences Intro to Ray Tracing

Spatial Data Structures

Practical Techniques for Ray Tracing in Games. Gareth Morgan (Imagination Technologies) Aras Pranckevičius (Unity Technologies) March, 2014

Ray Tracing Acceleration. CS 4620 Lecture 20

Long term Planning 2015/2016 ICT - CiDA Year 9

Anti-aliased and accelerated ray tracing. University of Texas at Austin CS384G - Computer Graphics

Ray Tracing Acceleration. CS 4620 Lecture 22

Game AI: The set of algorithms, representations, tools, and tricks that support the creation and management of real-time digital experiences

Dominic Filion, Senior Engineer Blizzard Entertainment. Rob McNaughton, Lead Technical Artist Blizzard Entertainment

Physically-Based Laser Simulation

Optimisation. CS7GV3 Real-time Rendering

Principles of Computer Game Design and Implementation. Revision Lecture

Visit me on the Web: Follow me on Twitter: Connect with me on LinkedIn:

Shadows for Many Lights sounds like it might mean something, but In fact it can mean very different things, that require very different solutions.

Topics. Ray Tracing II. Intersecting transformed objects. Transforming objects

Point Cloud Filtering using Ray Casting by Eric Jensen 2012 The Basic Methodology

Artificial Intelligence

Introduction to Mobile Robotics Techniques for 3D Mapping

Using Bounding Volume Hierarchies Efficient Collision Detection for Several Hundreds of Objects

Character Animation 1

Lecture notes: Object modeling

Ray Tracing III. Wen-Chieh (Steve) Lin National Chiao-Tung University

Holy Family Catholic Primary School Computing Progression Map Year 1

Big Data Management and NoSQL Databases

Minecraft Due: Mar. 1, 2015

CS490W. Text Clustering. Luo Si. Department of Computer Science Purdue University

Computer Game Programming Basic Path Finding

Topics. Ray Tracing II. Transforming objects. Intersecting transformed objects

CS 387/680: GAME AI PATHFINDING

Character Animation. Presented by: Pam Chow

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

Pathfinding. Artificial Intelligence for gaming

Department of Computer Science Institute for System Architecture, Operating Systems Group REAL-TIME MICHAEL ROITZSCH OVERVIEW

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday

CS 354R: Computer Game Technology

Integrating Physics into a Modern Game Engine. Object Collision. Various types of collision for an object:

Context-Aware Actors. Outline

CS GAME PROGRAMMING Question bank

Triangle Rasterization

TDT Appendix E Interconnection Networks

Data-Centric Query in Sensor Networks

Hierarchical Dynamic Pathfinding for Large Voxel Worlds

Anti-aliased and accelerated ray tracing. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell

The Stack, Free Store, and Global Namespace

DESIGN AS RISK MINIMIZATION

Assignment 4: Flight Simulator

Border Patrol. Shingo Murata Swarthmore College Swarthmore, PA

CS551 Ad-hoc Routing

Distributed Systems. 17. Distributed Lookup. Paul Krzyzanowski. Rutgers University. Fall 2016

Computer Architecture

Shape of Things to Come: Next-Gen Physics Deep Dive

Graphs, Search, Pathfinding (behavior involving where to go) Steering, Flocking, Formations (behavior involving how to go)

Mapping Distance and Density

RSX Best Practices. Mark Cerny, Cerny Games David Simpson, Naughty Dog Jon Olick, Naughty Dog

Navigation. purposefully steering the course of an entity through a space. ! Navigation is the process of

Geometric Algorithms. Geometric search: overview. 1D Range Search. 1D Range Search Implementations

Lecture 2: Parallel Programs. Topics: consistency, parallel applications, parallelization process

UNINFORMED SEARCH. Announcements Reading Section 3.4, especially 3.4.1, 3.4.2, 3.4.3, 3.4.5

All the Polygons You Can Eat. Doug Rogers Developer Relations

Simple and Powerful Animation Compression. Nicholas Fréchette Programming Consultant for Eidos Montreal

Database Architectures

Adding Virtual Characters to the Virtual Worlds. Yiorgos Chrysanthou Department of Computer Science University of Cyprus

CS 354R: Computer Game Technology

Rendering: Reality. Eye acts as pinhole camera. Photons from light hit objects

Audio over IP devices System description Ed 2.0

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016

DOOM 3 : The guts of a rendering engine

Notes. Video Game AI: Lecture 5 Planning for Pathfinding. Lecture Overview. Knowledge vs Search. Jonathan Schaeffer this Friday

Clustering Algorithm (DBSCAN) VISHAL BHARTI Computer Science Dept. GC, CUNY

UI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI)

HARNESSING IRREGULAR PARALLELISM: A CASE STUDY ON UNSTRUCTURED MESHES. Cliff Woolley, NVIDIA

Subdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts

Transcription:

Situational Awareness: Terrain Reasoning for Tactical Shooter A.I

Situational Awareness The capability of an A.I. agent to reason is limited by the data its sensor's can acquire about the world The representation of the data we use to represent the world has a direct impact on the amount of reasoning we can do in our given budgets. Many design problems can be solved easily with a solid and rich world representation. Processing lends its self well to modern concurrent processing techniques.

Goals - Richer behaviours - Increased flexibility in responding to changes to the world - Dynamic, and more complex environments.

Pit falls - Portents of doom! Noisy Simulation - Unpredictability Behaviors that are not transparent to the designers and end users. Reduced designer control and Increased tuning complexity.

What data do we need to represent?

What data is it useful to represent? Fields of Fire (including Melee) Potential Cover points / Zones Points of Interaction for smart objects Hazard avoidance volumes, static and dynamic. Design Annotations World Events: synchronized events with listeners Progression representation for linear games, try encoding this into your hierarchical node graph Where agents can move and the movement of our friends and enemies. We'll come back to this.

How to represent the data we have chosen Having a fast, bespoke Volume service is key.

What about our traverse-able area representation? Triangle Mesh, Node Graph, Grid, other? Fixed size Don't respond well to dynamic events Expensive to compute complex heuristics that use world data. If performing volume queries it adds expense and complexity to path smoothing.

Benefits of a Navigation Mesh Commonly used and well understood algorithm Gives us a basis for some good analytic reasoning, i.e fast ray casts, and collision queries. Allows us to return 'corridors' to navigate within to easily facilitate variable width units and complex steering behaviors.

A Standard Navigation Mesh example

Terrain Reasoning : Overview of position scoring Reasonably common and well documented practice. Given a point and radius we collect all triangles in that radius We then rasterize the triangles to produce a list of points Points are then scored according to any number of desirability criteria, I.e in cover, in friendly field of fire, in enemy field of fire, distance to target, distance to move, has LOS to target etc, using a series of graphs, filters and boolean operations. highest scoring point is selected.

Position scoring in practice

The Problem There is a disconnect between the information used to calculate our desired target position and the information we consider when choosing a path to get to it.

Common solution Use an influence map Let steering worry about it Or use a much higher resolution world representation.

Is this ideal? Leads to 'bumper car' steering or movement that does not look 'deliberate' Lots of re-pathing is common Limits the reasoning we can do on our choice of destination High resolution solutions slow down pathing ( even with HPA*), bloat memory and still provide scope for edge cases and contain a lot of wasted data. Makes pathing much more non-deterministic and limits our ability to reliably broadcast paths.

Dynamically Generated Node graph We generate a new dynamic node network on top of the nav mesh and use that for both position scoring and navigation

Algorithm 1 : Node generation Generate a circular map of nodes at the point of interest ( player position, squad position etc )

Algorithm 2 : Graph connection Connect the network -> Each node to its neighbor on its own Ring, its previous and next ring If a connection fails by C% then clamp the node to this new position ( very helpful for snapping nodes to cover ) Clean up nodes with zero connections

Algorithm 3 : Scoring We can now score the points against any criteria desired from our world data.

Optional Extras Insert design annotation or 'tactical positions' into the network Clamp nodes to dynamic volumes. Leashing area's or Preferred zones

Isn't that going to be very slow? Potentially - So how do we get around that? We localize it to the player('s) action areas or each squads locale - You could think of it as a lower level of your path finding hierarchy. Lower the resolution of the network when possible We can easily evolve it over a number of frames. Optimize your NavMesh raycast Keep data structures of the node network tight and organized. Spacial partitioning structure for NavMesh. K 32 x 32 Node graph over 50M radius -0.77ms on PS3 PPU.

Specializing your NavMesh raycast. General Specialization to early out clauses for position off NavMesh Cache the face index of each node in its own structure and pass that back to the raycast function to avoid expensive look up's on data that can be cached from previous inquiries Pre-cache the 'face neighborhood' Exploit the face winding order to provide hints for any additional lookups.

Navigating across the dynamic network Simply overload our heuristic function and neighbor expansion access function in A* Heuristic cost for crossing a node is Distance (d) + f(score) Path finding from and too the network is trivial Smoothing becomes much simpler tho still more complex than simple distance based pathing however smoothing is not always needed, the spherical design produces quiet smooth paths.

Benefits. Memory efficient Fast to compute paths and to score points Unifies position picking and path finding Also can act as a path finding LOD - Agents (like Zombies) that do no need complex reasoning can use the base Nav mesh.

Avoiding Pitfalls. Take the world representation as a snap shot in time. Commit to actions -> convey decision making through audio / animations / Archetypes Example : Crossing the players field of fire. Additionally the use of smoothing and rate of change integrator can be used if we have the space to store history.hi story.

Any Questions?

Connect Twitter : @WintermuteBC Email : nbamford@slantsixgames.com