3 Answers
3

There are two choices that I've seen: Jess and Drools. Jess, frankly, has issues. It's not open source, nor is it free. It has a Lisp-like syntax, which is either a plus or a minus, depending on your point of view.

Drools, on the other hand, is both free, open-source, and under the JBoss umbrella, so it's likely to stay around for a while. The rules are invoked using straight Java, but are written using a DSL that is pretty intuitive to the non-programmer.

The only "gotcha" I've seen with Drools is that compiling the rules can be slow, so you'll want to run your compilation at startup or in a static block, sometime when the user won't mind waiting around a bit.

Would you please specify what kind of issues Jess has?
–
hraghebJun 15 at 19:32

@hragheb I specified the issues in the first paragraph. 1) It's not open source, 2) it's not free, 3) it has a lisp-like syntax (which is a minus for me, though it might not be for others). None of these are necessarily show-stoppers, except that each, I feel, put the product at a competitive disadvantage to Drools.
–
rtpersonJun 15 at 23:52

We will try and address compilation perf later this year. It's just not something we've focused on or profiled yet, instead focusing on runtime performance.

I'd be very interested to hear about your progress. I'm thinking of doing a Drools PacMan game to start to explore about how best to use rule engines for games. As Games are often about events and checking relations between objects it seems that a properly tune rule engine could provide some benefits. The later part, the "tuning", will become important as in many cases the engine could be far more efficient in it's partial matches if it knows about the problem space up front. Ideally with games this is often the case, so we can provide hints to the engine to tailor it in places to those use cases.

We have some current research going on for adding probability, that should also be interesting for games.

Anyway please do contact me if you made any progress, mproctor at redhat d0t com