Grail (C#)  1.4.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
Grail.Planners Namespace Reference

Namespaces

Classes

class  Action
 Action object used in planning. Actions are instances constructed based on ActionTemplate. A planning entity takes actions in order to change the world state. More...
 
class  ActionTemplate
 A class representing a model (family) of an action that can be simulated by a planner. Action objects are produced based on the ActionTemplate. More...
 
struct  Domain
 This class represents a complete planning domain.
It includes all the defined types of world objects and templates of actions. More...
 
class  DomainTranslator
 An abstract class to implement that is responsible for translating an in-game world state to a plan-space world state. and from abstract plan to behavior sequence
It serves as a translation layer between the planning AI and the rest of the game. More...
 
class  Goal
 Represents a planner's goal to achieve, used by Reasoners.PlannerReasoner. A single planning problem may have multiple Goals defined. More...
 
interface  IGoalAcceptor
 An interface indicating that the implementing class maintains a goal for planning. In particular, the Reasoners.PlannerReasoner implements IGoalAcceptor to track the current goal. More...
 
interface  IGoalSelector
 An interface used to specify the goal selection logic for Reasoners.PlannerReasoner.
Implement this method if you want to define your own goal selection logic. The planner will aim to construct plans that satisfy this goal. More...
 
interface  IPlannerObject
 The interface to be implemented by your game classes that should be converted and mapped to plan-space WorldObjects.
More...
 
class  ObjectIndexBinding
 This class represents a binding between the in-game objects (Implementing IPlannerObject interface) and plan-space objects (used internally by the Planner) by means of WorldObjects.
Each mapping has an index associated that corresponds to the ordering in the list returned by the DomainTranslator.GeneratePlannerObjects(Core.AIEntity, Goal) method. More...
 
class  ObjectParameter
 
class  ParametrizedObject
 The base class for parametrized objects (objects with parameters) used by the planning algorithm for state representation. More...
 
class  Planner
 The main class encapsulating the planning algorithm in Grail. Responsible for finding paths in an abstract plans space.
You can use this class directly (as a raw algorithm) or indirectly through a Reasoners.PlannerReasoner instead. More...
 
class  PriorityQueue
 
class  TypedObjectParameter
 A template version of ObjectParameter with a type that is stored in the class. Internal class only.
 
class  WorldObject
 WorldObject is the main building block of the state-action representation used in the Planner model.
It represents some entity in the planning space. It has a unique type (e.g. a 'monster') [with multiple inheritance supported] and any number of parameters (e.g. 'position', 'health'). Hence WorldObject is a specialization of ParametrizedObject
WorldObjects can be subjects to various actions. More...
 
class  WorldObjectType
 A class that represents the type of WorldObject used in planners.
It essentially holds a unique ID determining the type, the name and inheritance structure (types and therefore objects can be organized into inheritance structures). More...
 
class  WorldState
 A class representing the planner state.
The state consists of WorldObjects. The planner aims to find the most cost-effective path from the initial state to the goal state.
The WorldState also determines action-related aspects such as their legality. WorldStates can be modified through applying actions' effects. More...
 

Functions

delegate bool ConditionFunction (WorldState worldState)
 A function delegate representing a single goal condition for a planner. It should return true if the particular goal has been reached and false otherwise. More...
 
delegate float PlannerHeuristic (WorldState worldState, IReadOnlyList< ConditionFunction > goalConditions)
 A heuristic evaluation function of a plan. It should return an estimation of a distance (abstract cost) from the given state to the states satisfying the goalConditions.
The estimation does not need to be very precise, but the planner works better if it does not overestimate the distance (cost). More...
 
delegate void PlanFoundDelegate (Planner.AbstractPlan plan)
 A delegate for the PlanFound callback. More...
 

Function Documentation

◆ ConditionFunction()

delegate bool Grail.Planners.ConditionFunction ( WorldState  worldState)

A function delegate representing a single goal condition for a planner. It should return true if the particular goal has been reached and false otherwise.

Parameters
worldStateThe current state to check the condition in.
Returns

◆ PlanFoundDelegate()

delegate void Grail.Planners.PlanFoundDelegate ( Planner.AbstractPlan  plan)

A delegate for the PlanFound callback.

Parameters
planThe plan found.

◆ PlannerHeuristic()

delegate float Grail.Planners.PlannerHeuristic ( WorldState  worldState,
IReadOnlyList< ConditionFunction goalConditions 
)

A heuristic evaluation function of a plan. It should return an estimation of a distance (abstract cost) from the given state to the states satisfying the goalConditions.
The estimation does not need to be very precise, but the planner works better if it does not overestimate the distance (cost).

Parameters
worldStateThe current state to calculate the distance (cost) form.
goalConditionsThe goal conditions that define a family of states to calculate the distance to.
Returns
A number representing the distance (or an abstract cost, in general) left from the given state to the goal.