插件系统 (The Plugin System) - nanpuhaha/SerpentAI GitHub Wiki
在开始着手创建框架之前,我们首先要保障的是框架的可移植性及所创建的实验原型的配置便利性。游戏支持系统和游戏代理插件的代码开发部分都贯彻了这一准则。所以 Serpent.AI 被设计成完全基于插件的结构,以完全满足该规范。
插件引擎
现阶段我们的框架内嵌了 Offshoot 插件引擎,需要 Python 版本 3.5及以上。Offshoot提供了一个非常清晰易用的插件工作流程,并具有诸如统一插件配置访问,依赖关系管理和回调等强大的功能。但其实,其实你根本不必去学习如何使用 Offshoot,因为我们已经在框架里帮你准备好了。如果你愿意深入研究的话当然更好!
插件管理
现阶段来说,插件管理还处于刚起步的阶段: 你可以通过使用 serpent 命令激活或者禁用插件,以此来控制代码库中是否能访问到该插件。
插件类型
游戏插件
- 实现难度: 初级 / 中级
- 开发者受众: Python 工程师,有图像处理 ( IP ) 相关经验更好。
示例开发任务
- 配置并运行插件使其能正确运行游戏
- 根据兴趣自定义并捕获游戏中不同区域
- 利用 OCR 在游戏中的文字部分进行识别及显示实验
- 为游戏建立用于通用图像检测及 UI 操作的的 API 接口
游戏插件的开发和游戏代理插件的开发完全是两码事,完全不互相影响。如果你想为你最爱的游戏开发最强的插件,那么就现在动手吧!
游戏代理插件
- 实现难度: 中级 / 高级
- 开发者受众: Python 工程师,对机器学习 ( ML ) 和人工智能 ( AI ) 有一定理解,涉足人计算机视觉技术 ( CV ) 和图像处理 ( IP ) 更好。
示例开发任务
- 为游戏或其子任务定制开发不同的帧处理模块 (举例来说: 随机玩游戏,按脚本玩游戏,利用训练好的机器学习模型玩游戏)
- 为识别游戏中不同区域及目录训练一个上下文分类器
- 训练并调试机器学习模型来处理精确的任务
- 充分利用框架提供的所有工具开发定制化可循环的游戏流程
游戏代理插件依附于游戏插件,你可以自己实现一个或者浏览社区内可用的游戏插件。
未来
我们计划以后推出一个开发者可以公布及共享插件的插件库。以后你将可以通过Github登陆此插件库,选择并注册对应你所开发游戏插件的游戏代理插件库,这样人们就可以直接通过 serpent install
命令安装你的游戏代理插件了。