#bot-api #sc2 #ii #layer #management #game #starcraft2

nightly bin+lib sc2-proxy

《星际争霸II》机器人API管理层

1 个不稳定版本

0.1.0 2019年3月1日

615游戏

MIT 许可证

78KB
1.5K SLoC

SC2-Proxy,星际争霸II机器人API管理层

用法

首先,您需要安装《星际争霸II》,或者在 Linux 系统中,必须下载二进制文件。还需要地图文件。

然后需要一个配置文件来配置代理,因此创建一个名为 sc2_proxy.toml 的文件,内容如下

[match_defaults.game]
map_name = "Automaton LE"

如果您只是想测试,可以使用 cargo run 来启动。然后连接两个机器人到地址 127.0.0.1:8642,两个机器人只使用 join_game 命令。将环境变量 RUST_LOG 设置为 sc2_proxy=info 也是明智的,否则即使游戏结果也不会被记录。

对于任何实际应用,您可能想要 cargo build --release,然后使用 ./target/release/sc2-proxy(或在 Windows 上使用 target/release/sc2-proxy.exe)。这要快得多,特别是对于需要执行大量数据包检查的设置。它也是一个静态二进制文件,因此可以轻松部署到匹配服务器,如果您正在运行机器人排行榜。例如,请参阅 sc2_proxy.production.toml 的 sc2 机器人排行榜的生产配置。

特性

  • 启动一个或多个 SC2 进程
    • 管理端口配置
    • 抽象游戏托管
  • 最小开销
    • 也适用于渲染界面
  • 资源管理和限制,强制执行游戏规则
    • 禁用调试/作弊命令
  • 远程控制端点
    • TCP 上的 JSON
    • 动态配置
    • 带外请求和数据

未来目标

  • 自动保存回放
  • SC2 进程池
    • 重用过程
    • 启动时预加载?
  • 资源管理和限制,强制执行游戏规则
    • 每位参与者使用的时间
    • API调用次数
    • APM限制
    • 路径网格视觉修复
    • 限制允许的单位
    • 隐藏玩家名字
  • 指标,例如时间、开销和请求数量
  • 自动化测试套件
    • Linux可执行文件
    • 零售客户端
  • 命令行界面
    • 机器可读输出模式
  • 远程控制端点
    • 实现更大的命令集
    • 实时统计
    • CLI工具

非目标

  • 完整的API抽象层
  • 自动动作捆绑
  • 动作结果状态跟踪

依赖项

~15–26MB
~438K SLoC