✈️ OpenXMW 2.0 is in Dev!
OpenXMW 2.0 使用的语言不再是 Python ,而是 Java 。
🧐新特性展望
🔧组件
针对 1.0 版本的局限性,我们重新设计了 2.0 版本的架构。大体地,OpenXMW 2.0 可被划分为以下几个组件:
- OpenXMW-Core:OpenXMW 的核心,负责事件的处理和插件的调度、数据处理。
- OpenXMW-Adapter:OpenXMW 核心与社区作品之间通信的桥梁。与 1.0 不同,OpenXMW 2.0 被设计为一个跨社区、多作品的通用 Scratch 云频道框架。换句话说,Adapter(适配器)是将多个社区发送的数据换成统一的协议发送给 Core,再把 Core 的数据转换成各个社区支持的协议发送给不同社区的作品。正印了那句话:一个核心,多个社区!
- OpenXMW-Plugins:正如字面意思所说,Plugins 是基于 Core 所提供的 API 而编写的子程序。与 1.0 不同,2.0 版本的插件不只是一个或一组指令,而是一个完整的程序!在2.0 中,Plugins 即可以如 1.0 插件一般定义它的指令,并一次性返回数据给 Core ,还可以执行定时任务、背景任务,甚至允许存在自己的线程!
- OpenXMW-Http-API:OpenXMW-Http-API 是一个官方提供的 Plugins,允许你使用 HTTP、正/反向 WebSockets 请求与 OpenXMW-Core 进行信息交互,从而实现通过其他任何语言编写 OpenXMW2.0 插件、控制 OpenXMW。
- OpenXMW-Console:OpenXMW的控制台组件,将以上组件以控制台的形式生动地展示在你面前。
⚙插件模式
正如前文所说,Plugins 可以运行在不同类型的线程上:
Core-Thread(核心线程),运行在与 Core 同一个进程上,类似 V1 中由 Core 调用、被动执行的短生命周期查询。特点是直接且仅能够用 return
向 Core 返回数据。
Schedule-Thread(定时任务线程),定时被 Core 调用,可多次向 Core 发送数据/指令(无法主动接收)
Background-Thread(背景线程)完全独立于 Core,随时可以主动从 Core 获取数据、发送数据。
🌈还有!
最后:我们希望 OpenXMW 2.0 能够为广大 Scratcher 提供一个更开放、更自由的平台—— OpenSratch ,带着这些美好的愿望,我们给 OpenXMW 2.0 起了一个好听的昵称:Astraea ,愿她能够与各位一起茁壮成长。
艾斯特莱雅 即 阿斯翠亚:Astraia(意即“星女”)(罗马又称Astraea),正义女神、群星女神、纯洁女神。其形象是一个生有羽翼,手持火炬,散发璀璨光芒的少女。
有新点子?想加入开发?联系 Markchai(QQ 2445691453)或 hjfunny,让我们激起更强大的思想火花!🍻
↑Astraea官方形象