我正在用Java制作一个落沙游戏。我希望用户能够为游戏编写自己的引擎,我认为脚本语言可能会为此工作。我用 jython 尝试了一个小脚本,它比那个 java 版本慢很多倍。
我需要一种具有快速循环和/或快速数组访问的脚本语言,因为这就是游戏要做的很多事情。或者,如果您对让用户为游戏编写自己的引擎的另一种方式有任何建议。
我也不完全确定这是否可行(很好)。如果您认为它不能,请告诉我原因以及一些可能的替代方案。
您可以使用JavaCC编写您自己的简单游戏语言。这确实为您提供了您可能想要的所有灵活性和本机 Java 速度(这实际上取决于您的实现)。但是您需要保持语法简单,否则将需要一些努力...
爪哇?是的,爪哇!为什么不让用户通过 Java 代码扩展你的游戏呢?在 Java 6 中有一个 Java 编译器 API:
您可能会为此查看BeanShell 。在我的使用中,它几乎和原生 Java 一样快(就像它变成的那样),并且像 Java 一样易于访问,尽管它锁定在 Java 1.4 附近。
RelProxy是 Java 即时编译器和自动热类重新加载器,纯 Java 代码可以像脚本语言一样执行。
因为 Java 很受欢迎,所以 Java 可能是最快的脚本语言,您可以选择使用 .class 文件,如一种编译缓存,以避免在加载时编译。