2010-07-29 8 views
7

Czego szukam to silnik skryptowy dla Javy, który pozwoliłby użytkownikom pisać proste skrypty kontrolujące zachowanie i zdarzenia w grze. Coś, że:Jaki jest dobry, prosty język skryptowy do osadzenia w silniku gry Java?

  • jest prosta - coś łatwo podnieść, szczególnie dla osób z pewnym podstawowym doświadczeniem programowania/skryptowy

  • zawiera wiele regulacji - można łatwo start/stop/pauza skryptów i kontrolę ile czasu wykonania każdy dostaje, być może, ile miejsca pamięci mogą używać

  • jest oddzielona od środowiska Java sama - Brak dostępu do każdego ze skryptów Java obiektów lub klas, tylko do tych funkcji jawnie świadczenia

Rozważyłem silnik JavaScript Rhino i pasowałoby do moich celów, ale z tego, co przeczytałem (example), zostało zaprojektowane tak, aby integrować się z Javą tak bardzo, że bezpieczne przechowywanie go w piaskownicy byłoby trudne. Wolę zacząć od silnika, który domyślnie nie daje skryptom dostępu do czegokolwiek, niż w pełni otwarty, który muszę zamknąć. Skrypty nie zawsze mogą być zaufane, więc nie powinno być łatwo wyłudzić środowiska.

Chciałbym również rozważyć opracowanie własne język z czymś takim antlr, ale to chyba więcej wysiłku niż chcę umieścić w.

Wszelkie sugestie?

Odpowiedz

4

Czy brałeś pod uwagę Lua?

Google docs preview z pdf na temat

Lyrio, G.H.S.O; Seixas, R.B .; Korzystanie Lua jako script language w Gry kodowana w Javie, Proceedings of The American symulacji i AI w grach Konferencji Północnej - GAMEON-Na, EUROSIS, Montreal, Kanada, 2008.

+1

To Lua, nie LUA.Zobacz http://www.lua.org/about.html#name – lhf

+0

Dzięki za wskazanie mi tego, zredagowałem. –

2

Należy spróbować do Groovy, A język skryptowy, który easily integrates z platformą Java.

Jego składnia jest w 100% kompatybilna z Javą, ale ma również uproszczoną składnię, która czyni go odpowiednim językiem do implementacji DSL.

Nie wiem na pewno, czy można zatrzymać/wstrzymać wykonywanie kodu Groovy z programu Java, należy przeczytać Groovy API.

Podczas wykonywania kodu Groovy z poziomu programu Java można określić kontekst przekazany do skryptu i można zapytać o kontekst zmodyfikowany przez skrypt dla zmiennych wyjściowych. Skrypt może być całkowicie odizolowany od podstawowego środowiska Java, tworząc GroovyShell z odpowiednim CompilerConfiguration.

1

JACL jest jednym z takich języków. Opiera się na TCL. Cokolwiek robisz, nie wynajduj innego języka. Istnieje wiele dobrych wyborów.

0

Moim zdaniem ważny jest nie tylko język, ale sposób łączenia. JSR 223 jest najbardziej kompatybilny między różnymi językami, ale "natywny" wydaje się najlepszy (tj. Pełna integracja obiektu z groovy)

Powiązane problemy