Имея в своем распоряжении формализованный интерфейс, инженер может без особых усилий определить наиболее подходящий формат обмена данными с системой ИИ, используя для этого практически прозрачные механизмы обмена информацией (сообщения, обратные вызовы, вызовы абстрактных методов, совместно используемые переменные и т.п.). Если же интерфейс при этом еще и стандартизован, то его реализация, скорее всего, будет оптимизирована по скорости с помощью соответствующих механизмов.
Для эффективной реализации воплощения требуется применение нескольких общеизвестных технологий. Именно за счет этих технологий формализованные интерфейсы позволяют достичь более высокой производительности системы ИИ, чем при использовании прямого доступа к данным.
> Отложенная (щенка (lazy evaluation). Информация о внешнем мире не собирается до тех пор, пока не будет явно затребована системой ИИ. Это позволяет снизить объем ненужных вычислений.
> Событийно-управляемые механизмы (event-driven mechanism). При использовании подобных механизмов системе ИИ не нужно выполнять периодическую проверку наличия необходимых ей данных. Как только соответствующая информация становится доступной, система ИИ извещается об этом тем или иным способом.
> Внедрение определений функций в код (function inlining). Эта технология позволяет разделять интерфейсы, при этом (в случае необходимости) обеспечивая их оптимизацию компилятором. Данная технология лучше всего подходит для небольших функций, однако для разделения интерфейсов могут использоваться и функции с достаточно объемным кодом.
> Частная шггимнзация (custom optimization). Нередко используется для ускорения обработки запросов. Например, если мир игры разделить на несколько участков, то при прорисовке сцен нужно будет проверять видимость не всех объектов игрового мира, а лишь тех, которые относятся к нескольким участкам.
> Пакетированне (batching). Данная технология означает накопление нескольких запросов или операций, с тем чтобы они впоследствии могли быть выполнены все сразу, а не по отдельности. Метод выполнения зависит от реализации игровой машины. Как правило, он выбирается так, чтобы можно было обеспечить оптимальное использование памяти.
При надлежащем применении описанные выше технологии позволяют значительно снизить накладные издержки, связанные с обменом информацией между системой ИИ и игровой машиной, а также облегчить применение формальных интерфейсов и "подготовить почву" для реализации воплощения аниматов.