-
Notifications
You must be signed in to change notification settings - Fork 489
java脚本
JiangZhiYong edited this page Nov 26, 2017
·
2 revisions
框架支持部分java代码热更新,项目中已scripts名称结尾的项目都为相应项目的脚本文件项目,如game-gate-scripts为game-gate的脚本文件。所有放在scripts项目中,并且实现IScript接口或IHandler接口的类都可以用于热更新,前者为服务器内部逻辑调用接口,后者为所有消息处理器调用接口。具体使用请查看game-engine项目的script包路径和game-bydr-script项目。
脚本为原生的java源文件,脚本更新过程为:
- 上传新的java源文件脚本类到对应服务器项目上替换老脚本
- 后台通过HTTP向服务器发送重新加载脚本命令
- 脚本引擎通过JavaCompiler编译从新编译java源文件为class类文件
- 脚本引擎通过ClassLoader从新加载新编译的类文件保存到内存中,替换之前老的Class类对象
- 尽量让经常变动的游戏逻辑放在脚本中实现
- 确保运行环境的类加载路径下有tools.jar文件
网站:https://jzyong.github.io/game-server/
QQ交流群:144709243