Reader small image

You're reading from  Learning Game AI Programming with Lua

Product typeBook
Published inNov 2014
Reading LevelBeginner
PublisherPackt
ISBN-139781783281336
Edition1st Edition
Languages
Right arrow
Author (1)
David Young
David Young
Right arrow

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
...
lock icon
The rest of the page is locked
Previous PageNext Page
You have been reading a chapter from
Learning Game AI Programming with Lua
Published in: Nov 2014Publisher: PacktISBN-13: 9781783281336

Author (1)