2009-02-05 10 views
10

Chciałbym użyć silnika reguł dla mojej gry. Będzie on używany do NPC AI i GM AI.Java Rule Engine for Game AI

Co może być dobrym i szybkim silnikiem reguł w tym celu? Musi to być Java i Open Source.

Chciałbym usłyszeć od ludzi, którzy użyli Java Rule Engines dla Sztucznej Inteligencji o swoich doświadczeniach.

Odpowiedz

10

Dostępne są dwie opcje: Jess i Drools. Jess, szczerze mówiąc, ma problemy. To nie jest open source, ani nie jest za darmo. Ma składnię podobną do Lispa, która jest albo plusem, albo minusem, w zależności od twojego punktu widzenia.

Drools, z drugiej strony, jest zarówno darmowy, open-source, jak i pod parasolem JBoss, więc prawdopodobnie pozostanie na jakiś czas. Reguły są wywoływane za pomocą prostej Java, ale są napisane przy użyciu DSL, który jest dość intuicyjny dla nie programisty.

Jedynym "groszkiem", jaki widziałem w Drools, jest to, że kompilowanie reguł może być powolne, więc będziesz chciał uruchomić kompilację podczas uruchamiania lub w statycznym bloku, czasami, gdy użytkownik nie będzie miał nic przeciwko oczekiwaniu trochę.

Powodzenia!

+0

Czy Proszę określić, jakiego rodzaju kwestie Jess ma? –

+0

@hragheb Podałem problemy w pierwszym akapicie. 1) To nie jest open source, 2) nie jest darmowe, 3) ma składnię podobną do seplenienia (co jest dla mnie minus, choć może nie być dla innych). Żadne z nich nie są koniecznie ogranicznikami show, z wyjątkiem tego, że uważam, że każdy z nich stawia produkt w niekorzystnej pozycji konkurencyjnej wobec Drools. – rtperson

1

Postaramy się rozwiązać kompilację perf później w tym roku. To nie jest coś, na czym się skupiliśmy lub którego profilujemy, zamiast skupiać się na wydajności środowiska wykonawczego.

Byłbym bardzo zainteresowany, aby usłyszeć o twoich postępach. Zastanawiam się nad grą Drools PacMan, aby zacząć odkrywać, w jaki sposób najlepiej używać silników reguł do gier. Ponieważ gry często dotyczą zdarzeń i sprawdzania relacji między obiektami, wydaje się, że odpowiednio dostrojony silnik reguł może zapewnić pewne korzyści. Późniejsza część, "strojenie", stanie się ważna, ponieważ w wielu przypadkach silnik może być o wiele bardziej wydajny w częściowych dopasowaniach, jeśli wie o problemowej przestrzeni z przodu. Najlepiej w przypadku gier tak często, więc możemy dostarczyć wskazówek silnikowi, aby dopasować go do tych przypadków.

Trwają badania nad dodawaniem prawdopodobieństwa, które również powinny być interesujące w grach.

W każdym razie proszę o kontakt ze mną, jeśli popełnił żadnego postępu, mproctor w RedHat d0t com