Grail (C++)  1.4.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
 Cgrail::planner::Planner::AbstractPlanRepresents a formulated plan as a sequence of actions and a cost
 Cgrail::planner::Action
 Cgrail::planner::ActionTemplate
 Cgrail::AIEntity
  • Defines a basic object which can execute behaviors
 Cgrail::AIManager
  • Manages registered entities and shared blackboards
 Cgrail::evolution::BaseEvoParamBaseEvoParam - A class that represents a parameter that is modifiable (optimizable) by evolutionary algorithms.
Unless your parameter is only a positional index (represented by an integer from 0 to max), use a specialized version 'EvoParam<Type>'.
These parameters form an encoding and are stored as member Fields or Properties in an 'Individual' and set as optimizable using 'Individual::SetMemberParameterOptimizable'.
Typically, the 'Individual.SetMemberParameterOptimizable' function should be called in the constructor of an 'Individual'-derived class
 Cgrail::BehaviorA high-level abstraction of actions in the game
 Cgrail::data::BehaviorData
 Cgrail::data::generated::BehaviorDataBuilder
 Cgrail::data::BehaviorModel
 Cgrail::Blackboard
  • grail's universal data container
 Cgrail::BlackboardEntryThe structure for holding elements in a Blackboard
 Cgrail::data::BlackboardState
 Cgrail::data::generated::BlackboardStateBuilder
 Cgrail::utility::Blueprint< InstanceType, ContexType, DataType >The Blueprint class - Responsible for producing contexts and instances of data used by UtilityReasoner
 Cgrail::utility::Blueprint< InstanceType, ContextType, DataType >
 Cgrail::utility::BlueprintOption< InstanceType, ContextType, DataType >
 Cgrail::planner::Planner::ConfigThe Planner's run-time configuration parameters
 Cgrail::planner::PlannerReasoner::ConfigThe Planner's run-time configuration parameters
 Cgrail::helpers::ConfigInterpreter
  • used to construct entities and entity groups based on configuration data
 Cgrail::data::ConsiderationModel
 Cgrail::live::Crc16
 Cgrail::evolution::CrossoverThe Crossover structure that encapsulates the crossover operation and its configuration in evolutionary algorithm
 Cgrail::data::CurveDataModel
 Cgrail::GrailDebugger::DebuggerData
 Cgrail::planner::Domain
 Cgrail::planner::DomainTranslator
 Cgrail::evolution::EAOptimizerA class that serves as the main interface for evolutionary algorithms in Grail
 Cgrail::planner::Emplacer< T >
 Cgrail::planner::Emplacer< const std::string >
 Cgrail::planner::Emplacer< planner::TypedObjectParameter< std::string > >
 Cgrail::planner::Emplacer< std::string >
 Cgrail::data::EntityBlackboardNamePair
 Cgrail::EntityEntryEntityEntry - internal struct containing AIEntity and its relative priority. Entities with higher priority will be updated first
 Cgrail::EntityGroup
 Cgrail::data::EntityGroupData
 Cgrail::data::generated::EntityGroupDataBuilder
 Cgrail::data::EntityGroupModel
 Cgrail::data::EntityModel
 Cgrail::data::EntityNamePriorityPair
 Cgrail::data::EntityState
 Cgrail::data::generated::EntityStateBuilder
 Cgrail::EntityToken
 Cgrail::simgames::EqualsForOfflineLearningHelper that provides a EqualsForLearning() method. Used with ISimulatedGameAction only by OfflineLearning
 Cgrail::data::EvaluationDebugData
  • debug data describing singular evaluator
 Cgrail::data::generated::EvaluationDebugDataBuilder
 Cgrail::evaluator::Evaluator< ContextType >The Evaluator class - base class being able to evaluate given context and output the result
 Cgrail::data::EvaluatorNodeModel
 Cgrail::data::EvaluatorToBehaviorAssignment
 Cgrail::data::EvaluatorTreeModel
 Cgrail::data::EvaluatorTreeReference
 Cfalse_type
 Cgrail::fsm::FiniteStateMachineBuilder
  • Builder for finite state machine
 Cgrail::evolution::FitnessRepositoryThis class provides a functionality of assigning fitness values as averages from the previous evaluations.
It can be used to minimize the effects of variance when fitness calculation is non-deterministic.
Use 'AddSampleWithFitnessUpdate' method to store the current fitness and update it based on past evaluations
 Cgrail::planner::Goal
 Cgrail::planner::GoalSelector
 Cgrail::data::GrailConfiguration
 Cgrail::data::GrailDebugInfo
 Cgrail::data::generated::GrailDebugInfoBuilder
 Cgrail::data::GrailStateSnapshot
 Cgrail::data::generated::GrailStateSnapshotBuilder
 Cgrail::simgames::HashForOfflineLearningHelper that provides a HashForLearning() method. Used with ISimulatedGameAction only by OfflineLearning
 Cgrail::evaluator::helpers::IConsiderationProvider< ContextType >IConsiderationProvider - Helper used for acquiring consideration instance, given its name loaded from config file
 Cgrail::IDebugSnapshotReceiver
 Cgrail::IEntityChangeObserver
 Cgrail::planner::IGoalAcceptor
 Cgrail::evolution::IndividualRepresents an individual for evolutionary algorithms (EA).
It stores the encoding consisting of optimizable parameters (represented by 'BaseEvoParam' and specialized 'EvoParam<Type>'.
The members (fields or properties) should be registered for optimization using 'SetMemberParameterOptimizable' methods in your implementation of the constructor.
In the optimization process, the EA will require assigning the fitness evaluation to the individual. Calculate it in your game environment based on the current values of Individual's parameters
 Cgrail::planner::IPlannerObjectThe interface to be implemented by classes that should be converted and bound to plan-space WorldObjects
 Cgrail::IReasonerChangeObserver
 Cgrail::helpers::IReasonerFactory
  • responsible for producing reasoners, given their id
 Cgrail::simgames::ISimulatedActionTranslatorTranslates actions defined in SimulatedGame onto Behaviors used in Grail
 Cgrail::simgames::ISimulatedGameActionBase class for all actions in SimulatedGame. Derive from it for your actions
 Cgrail::simgames::ISimulatedGameNodeObserver
 Cgrail::simgames::ISimulatedGameStateTranslator
 Cgrail::simgames::ISimulatedGameUnitBase class of a unit in the SimulatedGame framework. A unit represents part of the game-state and peforms actions that affect the game-state. You should not create instances of this class. Use specializations @SimulatedGameThinkingUnit or @SimulatedGameStochasticUnit instead
 Cgrail::ISnapshotGenerator
 Cgrail::ITimestampProviderProvides timestamps for debugging purposes, so debug data (e.g. events) can be placed on timeline
 Cgrail::logger::LoggerManager
 Cgrail::planner::MemoryPool
  • preallocated memory container for optimization issues
 Cgrail::evolution::MutationThe Mutation structure that encapsulates the mutation operation and its configuration in evolutionary algorithm
 Cgrail::planner::ObjectIndexBinding
 Cgrail::planner::ObjectParameter
 Cgrail::planner::ParametrizedObjectThe base class for parametrized objects (objects with parameters) used by the planning algorithm for state representation
 Cgrail::PlanA data structure used by PlannerReasoner to execute a sequence of behaviors
 Cgrail::planner::Planner
 Cgrail::data::PlannerActionSnapshot
 Cgrail::data::generated::PlannerActionSnapshotBuilder
 Cgrail::data::PlannerIterationSnapshot
 Cgrail::data::generated::PlannerIterationSnapshotBuilder
 Cgrail::data::PlannerReasonerSnapshot
 Cgrail::data::generated::PlannerReasonerSnapshotBuilder
 Cgrail::data::PlannerWorldObjectSnapshot
 Cgrail::data::generated::PlannerWorldObjectSnapshotBuilder
 Cgrail::utility::RandomNumberGenerator
 Cgrail::Reasoner
  • Entity's "brain", assigns them behaviors chosen by user-defined algorithms
 Cgrail::utility::roulette_selector::RouletteOptionsRouletteSelectionOptions - Struct determining options for roulette selection
 Cgrail::evolution::RouletteSampler< T >Provides a functionality of a fitness proportional roulette sampling of any objects that implement a GetFitness() method.
In particular it is used by an evolutionary algorithm (EA).
Because the implementation is optimized for usage in EA, the sampled elements are removed unless the method ends with 'WithReturn'
 Cgrail::evolution::SelectionEncapsulates the selection operation, i.e., how individuals are selected from the current population to the next generation, in evolutionary algorithm.
See also EAOptimizer
 Cgrail::utility::SelectionOption< ContextType >The SelectionOption struct - Helper structure describing one of the options being selected by Selector
 Cgrail::utility::SelectionOption< EntityBlackboardPair >
 Cgrail::utility::SelectionResultThe SelectionResult struct - Structure containing results of operations done by Selector
 Cgrail::simgames::SimulatedGameThe main interface class for the SimulatedGame reasoner based on the MCTS algorithm. The class supports definition of a game, running simulations and obtaining results
 Cgrail::simgames::SimulatedGameActionMetadataThis class represents action defined in the SimulatedGames module with additional statistics (score, visits)
 Cgrail::data::SimulatedGameActionMetadataSnapshot
 Cgrail::data::generated::SimulatedGameActionMetadataSnapshotBuilder
 Cgrail::simgames::SimulatedGameHelper
 Cgrail::simgames::SimulatedGameHeuristicInterface that encapsulates an algorithm responsible for action-selection inside SimulatedGame (MCTS). This action-selection is performed in certain situations instead of sampling from the whole action space. The goal is to reduce the combinatorial complexity or just provide scripted behavior in certain moments of the game
 Cgrail::data::SimulatedGameIterationSnapshot
 Cgrail::data::generated::SimulatedGameIterationSnapshotBuilder
 Cgrail::data::SimulatedGameMonteCarloEventSnapshot
 Cgrail::data::generated::SimulatedGameMonteCarloEventSnapshotBuilder
 Cgrail::simgames::SimulatedGameNodeThis class should not be visible to developers at all
 Cgrail::data::SimulatedGameReasonerSnapshot
 Cgrail::data::generated::SimulatedGameReasonerSnapshotBuilder
 Cgrail::simgames::SimulatedGameRuntimeAn interface that is used to terminate simulation in MCTS and set scores to players. Scores are grabbed from here whenever a simulation ends. It is created automatically
 Cgrail::simgames::SimulatedGameSnapshotObserver
 Cgrail::data::generated::SimulatedGameUCTEventSnapshotBuilder
 Cgrail::data::SimulatedGameUnitSnapshot
 Cgrail::data::generated::SimulatedGameUnitSnapshotBuilder
 Cgrail::logger::Sink
  • destination of logger messages
 Cgrail::fsm::StateThe FiniteStateMachineState class - Class representing state of finite state machine
 Cgrail::evaluator::StepDataThe StepData struct - Helper structure describing discrete values used in Staircase function
 Cgrail::data::generated::StringStringMapBuilder
 Cgrail::SynchronizedEntityContainer
 CTable
 Cgrail::live::TCPServer
 Cgrail::fsm::FiniteStateMachine::Transition
 Ctrue_type
 Cgrail::TupleVisitor< I >Helpers to iterate over tuples (visitor pattern)
 Cgrail::TupleVisitor< 0 >
 Cgrail::live::UDPServer
 Cgrail::data::generated::UintVectorOfStringMapBuilder
 Cgrail::data::UtilityEvaluatorSnapshot
  • debug snapshot of whole evaluator tree assigned to evaluated object
 Cgrail::data::generated::UtilityEvaluatorSnapshotBuilder
 Cgrail::data::UtilityReasonerModel
 Cgrail::data::UtilityReasonerSnapshot
 Cgrail::data::generated::UtilityReasonerSnapshotBuilder
 Cgrail::data::UtilitySelectorModel