Grail (C++)  1.4.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1234]
 Ngrail
 Ndata
 Nevaluator
 Nevolution
 Nfsm
 Nhelpers
 Nlive
 Nlogger
 Nplanner
 Nsimgames
 Nutility
 CAIEntity
  • Defines a basic object which can execute behaviors
 CAIManager
  • Manages registered entities and shared blackboards
 CBehaviorA high-level abstraction of actions in the game
 CBehaviorSequence
  • specialized Behavior executing sequence of provided subbehaviors one by one
 CBelongsToLibraryTypeGroup
 CBelongsToLibraryTypeGroup< T, std::void_t< decltype(SerializeLibraryType(std::declval< T >()))> >
 CBelongsToUserTypeGroup
 CBelongsToUserTypeGroup< T, std::void_t< decltype(SerializeUserType(std::declval< T >()))> >
 CBlackboard
  • grail's universal data container
 CBlackboardEntryThe structure for holding elements in a Blackboard
 CCanToString
 CCanToString< T, std::void_t< decltype(std::to_string(std::declval< T >()))> >
 CDebugInfoGenerator
 CEntityEntryEntityEntry - internal struct containing AIEntity and its relative priority. Entities with higher priority will be updated first
 CEntityGroup
 CEntityToken
 CGrailDebugger
 CGrailStateSnapshotGenerator
 CIDebugSnapshotReceiver
 CIEntityChangeObserver
 CIReasonerChangeObserver
 CISnapshotGenerator
 CIsPair
 CIsPair< std::pair< T, U > >
 CIsRawArraySFINAE below - all sorts of helpers to determine types in runtime
 CIsRawArray< T[]>
 CIsRawArray< T[N]>
 CIsSharedPointer
 CIsTuple
 CIsTuple< std::tuple< T... > >
 CIsWeakPointer
 CIsWeakPointer< std::weak_ptr< T > >
 CITimestampProviderProvides timestamps for debugging purposes, so debug data (e.g. events) can be placed on timeline
 CPlanA data structure used by PlannerReasoner to execute a sequence of behaviors
 CReasoner
  • Entity's "brain", assigns them behaviors chosen by user-defined algorithms
 CSnapshotGenerator
 CSynchronizedEntityContainer
 CTupleVisitorHelpers to iterate over tuples (visitor pattern)
 CTupleVisitor< 0 >