Java Rule Engine для игры AI

Я хотел бы использовать механизм правил для своей игры. Он будет использоваться для NPC AI и GM AI.

Что может быть хорошим и быстрым Rule Engine для этой цели? Это должен быть Java и Open Source.

Я хотел бы услышать от людей, которые использовали Java Rule Engines для искусственного интеллекта об их опыте.

Ответ 1

Есть два варианта, которые я видел: Jess и Drools. У Джес, честно говоря, есть проблемы. Это не открытый источник, и он не свободен. Он имеет синтаксис Lisp, который является либо плюсом, либо минусом, в зависимости от вашей точки зрения.

Drools, с другой стороны, является свободным, открытым исходным кодом и под зонтиком JBoss, поэтому он, вероятно, будет оставаться на некоторое время. Правила вызывают с использованием прямой Java, но записываются с использованием DSL, который довольно интуитивно понятен для не-программиста.

Единственная "полученная", которую я видел с Drools, заключается в том, что компиляция правил может быть медленной, поэтому вы хотите запустить свою компиляцию при запуске или в статическом блоке, когда пользователь не будет против ждать немного.

Удачи!

Ответ 2

В этом году мы попытаемся использовать компиляцию. Это просто не то, что мы сосредоточили на профилировании, а сосредоточились на производительности во время выполнения.

Мне было бы очень интересно услышать о вашем прогрессе. Я подумываю о том, чтобы сделать игру Drools PacMan, чтобы начать исследовать, как лучше всего использовать механизмы правил для игр. Поскольку игры часто касаются событий и проверки отношений между объектами, кажется, что механизм правильной настройки правил может обеспечить некоторые преимущества. Более поздняя часть, "настройка", станет важной, так как во многих случаях двигатель может быть намного эффективнее в частичных совпадениях, если он знает о проблемном пространстве спереди. В идеале с играми это часто происходит, поэтому мы можем дать подсказки движку, чтобы адаптировать его в местах для этих случаев использования.

У нас есть некоторые текущие исследования для добавления вероятности, которые также должны быть интересны для игр.

В любом случае, пожалуйста, свяжитесь со мной, если вы достигли какого-либо прогресса, mproctor at redhat d0t com

Ответ 3

Попробуйте Drools.