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

Creating soldier knowledge sources


So far, our soldier's two main knowledge calculations are within enemy selection and flee position selection. With a proper KnowledgeSource instance implementation, we can refactor our original evaluator's internals to a standalone function that returns a result and confidence value in the format expected by our KnowledgeSource instance implementation.

Enemy selection

Converting the logic from the SoldierEvaluators_HasEnemy function only requires modifications that return both a confidence value and the final result. Since only one source will determine enemy selection, we will return a confidence of 1, as well as the selected enemy.

SoldierKnowledge.lua:

function SoldierKnowledge_ChooseBestEnemy(userData)
    local sandbox = userData.agent:GetSandbox();
    local position = Agent.GetPosition(userData.agent);
    local agents = Sandbox.GetAgents(userData.agent:GetSandbox());

    local closestEnemy;
    local distanceToEnemy;

    for index=1, #agents do
...