Что такое хороший, простой язык сценариев для встраивания в механизм Java игры?

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

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

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

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

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

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

Какие-либо предложения?

7
задан fizban 29 July 2010 в 22:16
поделиться

3 ответа

Рассматривали ли вы Lua?

Предварительный просмотр документации Google из pdf по теме

Lyrio, G.H.S.O; Seixas, R.B .; Использование Lua в качестве языка сценариев в играх, закодированных на Java, Proceedings of The North American Simulation and AI in Games Conference - GAMEON-NA, EUROSIS, Montreal, Canada, 2008.

4
ответ дан 7 December 2019 в 07:39
поделиться

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

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

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

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

2
ответ дан 7 December 2019 в 07:39
поделиться

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

1
ответ дан 7 December 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: