2010-07-29 2 views
7

Я ищу сценарий для Java, который позволит пользователям писать простые сценарии для управления поведением и событиями для игры. Что-то, что:Что такое хороший, простой язык сценариев для встраивания в игровой движок Java?

  • проста - что-то легко подобрать, особенно для людей с некоторыми основными опыт программирования/сценариев

  • обеспечивает много контроля - я могу легко старт/стоп/пауза сценариев и управление сколько выполнения времени каждый получает, возможно, сколько пространства памяти они могут использовать

  • отделен от самой среды Java - нет доступ из сценариев к любому Java не объекты или классы, только тем функциям, я явно предоставить

Я рассмотрел JavaScript-движок Rhino, и это подойдет моим целям, но из того, что я прочитал (example), он предназначен для интеграции с Java настолько, что безопасная песочница будет сложной. Я бы предпочел начать с движка, который по умолчанию не дает скриптам никакого доступа к чему-либо, чем к полностью открытому, который я должен закрыть. Сценариям не всегда можно доверять, поэтому создать среду нелегко.

Я бы также рассмотреть вопрос о разработке свой собственный язык, с чем-то вроде ANTLR, но это, вероятно, больше усилий, чем я хочу поставить в.

Любые предложения?

ответ

4

Вы считаете Lua?

Google docs preview из pdf на тему

Lyrio, G.H.S.O; Seixas, R.B .; Использование Lua в качестве сценариев языка в играх, закодированной в Java, Труды североамериканском моделирования и искусственного интеллекта в играх конференции - GAMEON-NA, EUROSIS, Монреаль, Канада, 2008.

+1

Это Lua, а не LUA.См. Http://www.lua.org/about.html#name – lhf

+0

Спасибо, что указали это мне, отредактировано. –

2

Вы должны дать попробовать на Groovy, язык сценариев, который easily integrates с платформой Java.

Его синтаксис на 100% совместим с Java, но также имеет упрощенный синтаксис, который делает его подходящим языком для реализации DSL.

Я не знаю точно, если вы можете остановить/приостановить выполнение кода Groovy из программы Java, вы должны прочитать Groovy API.

При выполнении кода Groovy из программы Java вы можете указать контекст, переданный скрипту, и вы можете запросить контекст, модифицированный скриптом для выходных переменных. Сценарий может быть полностью изолирован от базовой среды Java, создав GroovyShell с подходящим CompilerConfiguration.

1

JACL - один из таких языков. Он основан на TCL. Что бы вы ни делали, не изобретайте другой язык. Есть много хороших решений.

0

На мой взгляд, важно не только язык, но и способ общения. JSR 223 наиболее совместим между разными языками, но «родной» кажется лучшим (т. Е. Полная интеграция объектов groovy)

Смежные вопросы