Java Scripting存储和加载状态

时间:2010-02-28 17:36:30

标签: java scripting

我目前在java中为2D游戏编写一个小型游戏引擎 作为引擎的一部分,我想支持脚本作为实现游戏内事件的主要方式。

  • 脚本可能会运行很长时间
  • 几个脚本可以并行运行
  • 对java代码的调用是有限的

由于我想实现一个保存游戏功能,我必须以我可以存储在文件中的格式获取脚本的当前状态,并在以后再次加载。

  • 是否有适用于java的脚本引擎 哪个支持? (javascript或其他)
  • 他们如何处理 多线程和调用java 码?

  • 网上有这个问题有什么好的资源吗?

感谢
修改:为了清楚我想做什么

  1. 游戏开始一个或多个脚本开始并行运行
  2. 玩家调用保存功能
  3. 脚本暂停
  4. 脚本的状态存储为continue或end
  5. 玩家调用加载功能
  6. 已加载脚本的状态
  7. 脚本恢复
  8. 我想知道是否有任何java脚本引擎支持以这种方式暂停和存储其内部状态。
    (不需要支持官方java脚本api)

2 个答案:

答案 0 :(得分:1)

你所说的基本上是协同程序的运行,以及序列化协程状态的能力。遗憾的是,我对Java或其可用的脚本设施知之甚少,但是一些游戏开发人员使用LuacoroutinesPluto,一个序列化库 - 我被告知 - 允许您保存所有单独的协程状态。显然,这意味着所有相关的状态都在协同程序中,并且当您重新读取时,这些被保存的引用仍然有意义 - 这通常意味着通过可预测的句柄和ID值进行访问。

答案 1 :(得分:0)

我不确定这是否是您问题的解决方案。以下是一些我知道在jvm中工作的脚本引擎

  1. Rhino javascript引擎,mozilla.org / rhino
  2. Clojure lisp引擎,clojure.org
  3. groovy,groovy.codehaus.org
  4. 可能这篇文章会有所帮助

    http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/