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

Updating behavior actions


The only remaining work while using the blackboard is to refactor the data manipulation that occurs within a number of soldier behaviors.

The die action

Updating the die action requires us to set the blackboard's alive attribute instead of using userData directly:

SoldierActions.lua:

function SoldierActions_DieUpdate(deltaTimeInMillis, userData)
    userData.blackboard:Set("alive", false);
    return Action.Status.TERMINATED;
end

The flee action

With a bestFleePosition data source, our flee action no longer needs to perform any calculations and simply finds a path directly to the blackboard's stored position. With a flee position update frequency of 5 seconds, the bestFleePosition data source will get updated in a timely manner without any intervention from our flee behavior:

SoldierActions.lua:

function SoldierActions_FleeInitialize(userData)
    local sandbox = userData.agent:GetSandbox();
    local fleePosition = 
        userData.blackboard:Get("bestFleePosition"...