2009-02-05 15 views
10

Ich möchte eine Regel-Engine für mein Spiel verwenden. Es wird für NPC AI und GM AI verwendet.Java Rule Engine für Spiel AI

Was könnte eine gute und schnelle Regel-Engine für diesen Zweck sein? Es muss Java und Open Source sein.

Ich möchte von Leuten hören, die Java Rule Engines für künstliche Intelligenz über ihre Erfahrung verwendet haben.

Antwort

10

Es gibt zwei Möglichkeiten, die ich gesehen habe: Jess und Drools. Jess hat ehrlich gesagt Probleme. Es ist keine Open Source, noch ist es kostenlos. Es hat eine Lisp-ähnliche Syntax, die je nach Standpunkt entweder ein Plus oder ein Minus ist.

Drools hingegen sind beide kostenlos, Open Source und unter dem Dach von JBoss, so dass es wahrscheinlich eine Weile bleiben wird. Die Regeln werden mit reinem Java aufgerufen, aber mit einer DSL geschrieben, die für Nicht-Programmierer ziemlich intuitiv ist.

Die einzige "gotcha", die ich mit Drools gesehen habe, ist, dass das Kompilieren der Regeln langsam sein kann. Daher sollten Sie Ihre Kompilation beim Start oder in einer statischen Blockierung ausführen, wenn der Benutzer nicht warten will um ein bisschen herum.

Viel Glück!

+0

bitte Sie angeben, welche Art von Fragen Jess hat? –

+0

@hragheb Ich habe die Probleme im ersten Absatz angegeben. 1) Es ist nicht Open Source, 2) es ist nicht frei, 3) es hat eine lisp-artige Syntax (das ist ein Minus für mich, obwohl es nicht für andere sein könnte). Keines davon ist notwendigerweise Show-Stopper, außer dass jeder, so denke ich, das Produkt zu einem Wettbewerbsnachteil gegenüber Drools macht. – rtperson

1

Wir werden versuchen, Compilation Perf später in diesem Jahr zu adressieren. Es ist einfach nicht etwas, auf das wir uns konzentriert oder profiliert haben, sondern sich auf die Laufzeitleistung konzentrieren.

Ich würde mich sehr über Ihre Fortschritte freuen. Ich denke daran, ein Drools PacMan-Spiel zu machen, um herauszufinden, wie man Regel-Engines für Spiele am besten einsetzt. Da es bei Spielen oft um Ereignisse und das Überprüfen von Beziehungen zwischen Objekten geht, scheint es, als könnte eine Regel-Engine für die richtige Einstellung einige Vorteile bieten. Der spätere Teil, das "Tuning", wird wichtig werden, da in vielen Fällen der Motor in seinen Teilmatches weitaus effizienter sein kann, wenn er den Problemraum im Vordergrund kennt. Im Idealfall bei Spielen ist dies oft der Fall, sodass wir der Engine Tipps geben können, um sie an Stellen für diese Anwendungsfälle anzupassen.

Wir haben einige aktuelle Forschung zum Hinzufügen von Wahrscheinlichkeit, die auch für Spiele interessant sein sollte.

Wie dem auch sei mir bitte in Verbindung, wenn Sie irgendwelche Fortschritte gemacht, mproctor bei RedHat d0t com