2009-02-05 12 views
10

Me gustaría utilizar un motor de reglas para mi juego. Se usará para NPC AI y GM AI.Java Rule Engine para Game AI

¿Qué podría ser un motor de reglas bueno y rápido para este propósito? Debe ser Java y Open Source.

Me gustaría saber de personas que han utilizado Java Rule Engines for Artificial Intelligence sobre su experiencia.

Respuesta

10

Hay dos opciones que he visto: Jess y Drools. Jess, francamente, tiene problemas. No es de código abierto, ni es gratis. Tiene una sintaxis similar a Lisp, que es un más o un menos, dependiendo de su punto de vista.

Drools, por otro lado, es gratuito, de código abierto y bajo el paraguas de JBoss, por lo que es probable que permanezca por un tiempo. Las reglas se invocan utilizando Java directamente, pero se escriben usando una DSL que es bastante intuitiva para el que no es programador.

El único "error" que he visto con Drools es que la compilación de las reglas puede ser lenta, por lo que querrá ejecutar su compilación al inicio o en un bloque estático, en algún momento cuando el usuario no tenga inconveniente un poco

¡Buena suerte!

+0

¿Por favor especifique qué tipo de problemas Jess tiene? –

+0

@hragheb He especificado los problemas en el primer párrafo. 1) No es de código abierto, 2) no es gratis, 3) tiene una sintaxis similar a lisp (que es un valor negativo para mí, aunque podría no serlo para otros). Ninguno de estos son necesariamente obstáculos, excepto que cada uno, creo, pone al producto en desventaja competitiva frente a Drools. – rtperson

1

Trataremos de abordar la compilación más tarde este año. Simplemente no es algo en lo que nos hemos enfocado o perfilado todavía, sino que nos enfocamos en el rendimiento del tiempo de ejecución.

Estaría muy interesado en conocer su progreso. Estoy pensando en hacer un juego Drools PacMan para comenzar a explorar la mejor manera de usar motores de reglas para juegos. Dado que los juegos suelen ser sobre eventos y comprobación de relaciones entre objetos, parece que un motor de regla de sintonía adecuada podría proporcionar algunos beneficios. La parte posterior, la "afinación", será importante ya que en muchos casos el motor podría ser mucho más eficiente en sus coincidencias parciales si conoce el espacio del problema por adelantado. Idealmente, con los juegos este suele ser el caso, por lo que podemos proporcionar pistas al motor para adaptarlo a los casos de uso.

Tenemos un poco de investigación actual para agregar probabilidad, que también debería ser interesante para los juegos.

De todos modos por favor, póngase en contacto conmigo si ha realizado algún progreso, mproctor en RedHat D0T com