Book Image

Learning Game AI Programming with Lua

By : David Young
Book Image

Learning Game AI Programming with Lua

By: David Young

Overview of this book

Table of Contents (16 chapters)
Learning Game AI Programming with Lua
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Free Chapter
1
Getting Started with AI Sandbox
Index

Agent visibility


Implementing agent visibility begins with casting a number of raycasts into the sandbox to see whether the agent can visibly detect another agent without objects blocking our agent's sight. To cast a ray, the only requirements are a starting and ending point within the sandbox. The results of the raycast are returned as a Lua table that contains a result attribute indicating whether anything was hit; it also contains an optional object attribute of the sandbox object that the ray intersected with, if the raycast successfully intersected with an object.

Note

When casting rays, take care about selecting a starting position that isn't already intersecting with an object, otherwise the results returned might not be the expected outcome.

To case a ray we'll use the RayCastToObject function provided by the sandbox.

local raycastResult = Sandbox.RayCastToObject(
    sandbox, startPoint, endPoint);

In the following screenshot, you can see various rays that represent agent visibility...