2009-10-01 6 views
1

저는 간단한 자바 게임을 작성하려고합니다. NPC 클래스에는 다양한 조건에 따라 npc가 말한 것을 반환하는 Dialog 함수가 있습니다.자바 스크립트 (PHP 포함)?

저는 각 npc가 스크립팅 언어에 대해 말하는 것을 결정하는 논리를 오프로드하여 쉽게 업데이트 할 수 있다고 생각합니다. 그런 식으로 각 NPC 인스턴스를 만들 수 있습니다.

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

또는 그와 유사한 것. 그래서 나는 주위를 맴돌고 기술 (PHP/Java Bridge, Querticus, Java Servlet SAPI 등)을 발견했지만 각각의 기능과 내가 원하는 기능을 제공하는지 혼란스러워했습니다.

저는 PHP에 국한되지는 않지만, 그 중 가장 익숙한 것이고, 로컬 mysql 데이터베이스에 저장된 npc의 대화를 결정하는 플래그 조건을 가지고 있습니다. 온라인에서 스크립트를 사용할 수 없기 때문에이 경우 다른 스크립팅 언어가 더 유용할까요?

구현 방법에 대한 의견이나 제안이 있으시면 언제든지 알려 주시기 바랍니다. 감사!

+0

PHP는 웹 서버 스크립팅 언어입니다. 그래도 다른 곳에서 사용되는지는 알 수 없습니다. –

+2

객체 지향 프로그래밍과 Java 프로그래밍 언어, 특히 클래스, 상속 및 디자인 패턴에 대해 좀 더 연구해야한다고 생각합니다. 이는 문제를 해결하기위한 잘못된 접근입니다. –

+0

게임 개발과 관련하여 반드시 필요한 것은 아니지만 주요 개발은 일반적으로 C++ 및 부가 기능과 같은 객체 지향 언어로 이루어지며 루아와 같은 스크립팅 언어로 수행됩니다. – rajax

답변

2

게임에서 스크립팅은 종종 Lua을 사용하여 수행됩니다. 그러나 Java를 사용하고 있으므로 Groovy, JRuby 또는 Jython과 같은 Java 기반 스크립팅 언어를 사용하는 것이 좋습니다.

Java 6에서는 Java에서 직접 스크립팅 언어를 호출 할 수 있습니다. 자바 스크립트 예를 들어 :

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')"); 
    } 
} 

은 (파이썬과 AWK 포함) 다양한 스크립트 언어가 새로운 자바 6 스크립팅 엔진에 통합되어있는 scripting project hosted by Sun있다. 여기에 타사 구현이 있지만, PHP는이 목록에 아직 불행히도 :

당신은 파이썬에 익숙한 자바로 작성된 파이썬 인터프리터입니다 Jython 살펴있는 경우 http://php-java-bridge.sourceforge.net/

2

Java에서 Python 코드를 호출 할 수 있으며 그 반대도 가능합니다.

1

Groovy, Scala, Jython, Clojure 및 기타와 같은 "Java"VM에서 실행되는 여러 Java가 아닌 언어가 있습니다.

하나는 Quercus이며, PHP는 VM에 포트입니다. 이를 통해 PHP를 Java에서 호출 할 수 있어야하며 PHP에서 Java를 호출 할 수 있어야합니다.