eu flag

A multi-platform, modular, universal engine for embedding advanced AI in games.

Embed advanced AI and up your game.

Download Grail White Paper

Powerful development

Software should suit you. Grail does. You can change it, mix it, and it will continue doing its job.

  • a formal approach to embedding AI in games
  • faster development process
  • no need to rewrite existing code.
  • automated game testing and balancing
  • independent modifications by approachable GUI tools
  • Plugins for Unreal and Unity

Top-notch scientific approach

Grail’s AI is developed with care by brilliant researchers who bring the quality of academic knowledge to give you proven results.

  • stronger AI in games
  • scientific results into gamedev
  • AI that is explainable and enjoyable

Non-expert ease of use

You shouldn’t have to get a PhD to use software. Grail gives you a clear GUI and extensive documentation for all your needs.

  • non-experts make expert AI in a game
  • AI without the cost of recruiting
  • no maintaining a team of AI experts
Read more about Grail

Frequently asked questions

  • Yes. It can be achieved either by substituting reasoners for more/less detailed ones or it is possible to change data on entity's blackboard to make it consider more/less relevant data.

  • Yes. You can do it in two directions.

    1. Executing behavior trees from within Grail: Wrap the behavior tree execution in Grail Behavior. Then, it can be provided to reasoners or manually assigned by the user. Idea: the behavior trees may represent complex actions or scripts, and Grail decides when to execute them.

    2. Executing Grail behaviors from within behavior trees: Put Grail reasoning mechanisms in leaf nodes of your Behavior Trees. Here, you can control which aspects Grail should focus on by narrowing its space of choices with the use of behavior trees. Idea: the behavior tree leaf-node may represent an attack behavior. Then, Grail will decide how exactly such an attack behavior should be performed.

  • Yes, all that needs to be done is to make animation system accessible from given Grail AI Entity (i.e. push it on entity's blackboard). Then behavior can interact with animation system in all its methods. For example behavior can be prolonged for animation duration, or when behavior is starting it's execution it can cause animation to be played. If animation is more complication and consisting of few phases behaviors can be connected into a sequence, where each one of them will manage one phase of animation.

  • When constructing AI Manager user can provide number of worker threads which will iterate over registered entities, updating them simultaneously. If user chooses not to do so, all operations on this manager will be done synchronously.

  • Depends on how complicated you need it to be. Simple AI reasoners will not need much memory, but advanced game simulations will cerainly need more.

    However, Grail allows you to create a Utility AI agent, for which the equivalent behavior tree would need to be more memory intensive.

  • Yes. All you need to do is to tweak their reasoners.

  • It is, you just need to take mobile limitations into consideration while designing Grail reasoners.

  • Yes, grail behaviors are terminated mainly in 3 situations: 1. behavior sucessfully finished 2. behavior is no longer legal and there is no way to continue its execution 3. behavior is overriden with another one, either manually or because reasoner thought that another behavior is more suitable to current situation.

  • We provide plugins for Unity and Unreal Engine 4, which means that in those engines Grail should work out of the box. Hovewer Grail should work with most of the available game engines as long as they can be scripted in either C++ or C# and can include external libraries.

  • C++ and C#.

For price estimates or other questions, feel free to call and email us!

Created by QED Software