Сценарии (с PHP) в Java? - PullRequest
       17

Сценарии (с PHP) в Java?

1 голос
/ 01 октября 2009

Я пытаюсь написать простую игру на Java. У меня есть класс NPC с функцией Dialog, которая возвращает то, что сказал бы NPC, что зависело бы от различных условий.

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

npc Mayor = new npc ("mayor.php");

или что-то на этот счет. Так что я погуглил и нашел кучу технологий (PHP / Java Bridge, Querticus, Java Servlet SAPI и т. Д.), Но только запутался в том, что делал каждый из них и обеспечивает ли он необходимую мне функциональность.

На самом деле я не ограничен PHP, но это то, к чему я больше всего привык, и, поскольку у меня есть условия флагов, которые определяют диалог npc, хранящийся в локальной базе данных mysql. Я бы предпочел, чтобы скрипты не были доступны в Интернете, поэтому, может быть, в этом случае будет полезен другой язык скриптов?

Я открыт для любых идей или предложений о том, как мне это реализовать. Спасибо!

Ответы [ 3 ]

2 голосов
/ 01 октября 2009

Если вы знакомы с Python, взгляните на Jython , который является интерпретатором Python, написанным на Java, и позволяет вам вызывать код Python из Java и наоборот.

2 голосов
/ 01 октября 2009

Сценарии в играх часто выполняются с использованием Lua . Однако, поскольку вы используете Java, я мог бы порекомендовать язык сценариев на основе Java, такой как Groovy, JRuby или Jython.

В Java 6 теперь вы можете вызывать язык сценариев напрямую из Java. Например, с JavaSCript:

import javax.script.*;
public class EvalScript {
    public static void main(String[] args) throws Exception {
        // create a script engine manager
        ScriptEngineManager factory = new ScriptEngineManager();
        // create a JavaScript engine
        ScriptEngine engine = factory.getEngineByName("JavaScript");
        // evaluate JavaScript code from String
        engine.eval("print('Hello, World')");
    }
}

Существует проект сценариев , размещенный Sun , в котором различные языки сценариев (включая Python и AWK) были интегрированы с новым механизмом сценариев Java 6. К сожалению, PHP еще нет в этом списке, хотя здесь есть сторонняя реализация:

http://php -java-bridge.sourceforge.net /

1 голос
/ 01 октября 2009

Есть несколько не-Java-языков, которые работают на виртуальной машине Java, такие как Groovy, Scala, Jython, Clojure и другие.

Одним из них является Quercus , порт PHP для виртуальной машины. После этого вы сможете вызывать Java из PHP и наоборот.

...