Skip to content

项目简介 ​

什么是 Wingman? ​

Wingman 是一个游戏自动化可编程控制引擎,基于 C++ 构建,支持 Lua 和 Python 两种脚本语言。

设计目标 ​

核心目标 ​

  1. 高性能 - C++ 核心引擎,Lua/Python 脚本执行,毫秒级响应
  2. 安全可靠 - 纯用户态运行,使用合法 Windows API
  3. 可编程 - Lua 和 Python 双语言支持,无限扩展可能
  4. 易调试 - VS Code 插件支持,断点调试、变量查看、性能分析

不做什么 ​

Wingman 遵循单一职责原则,以下功能不在项目范围内:

功能说明
❌ 内核驱动不开发驱动,纯用户态
❌ 内存读写不读取/修改游戏内存
❌ DLL 注入不注入代码到游戏进程
❌ 游戏破解不修改游戏文件/协议
❌ 分布式网络不做分布式网络
❌ 账号管理不管理游戏账号
❌ Runtime WebSocket/HTTP 控制面本地 UI 使用 IPC,远程编排使用 Go server

项目边界 ​

┌─────────────────────────────────────────────────────────────────┐
│                      ✅ Wingman 边界内                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   屏幕操作           截图、像素检测、颜色匹配、图像查找            │
│   输入模拟           鼠标点击/移动、按键发送、文本输入              │
│   窗口管理           查找窗口、激活窗口、获取位置                   │
│   进程管理           启动/等待/终止进程                            │
│   UI Automation     直接操作 Windows 控件                         │
│   脚本引擎           Lua、Python 双语言支持                       │
│   机器学习           ONNX 模型推理(YOLO 检测等)                   │
│   事件系统           跨模块事件订阅与发布                           │
│   工具函数           延迟、日志、配置                               │
│   人性化模拟         随机延迟、自然鼠标轨迹、操作节奏                │
│   远程编排           Runtime 主动连接 Go server,由 Go server 中控    │
│   调试器             VS Code 插件,断点、变量查看、性能分析          │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                      ❌ Wingman 边界外                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│   内核驱动            不开发驱动,纯用户态                         │
│   内存读写            不读取/修改游戏内存                           │
│   DLL 注入           不注入任何代码到游戏进程                       │
│   游戏破解            不修改游戏文件/协议                          │
│   分布式系统          不做分布式网络                              │
│   账号管理            不管理账号                                  │
│   Runtime 网络控制面  不暴露 WebSocket/HTTP server 供 UI 控制        │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

核心设计原则 ​

1. 安全第一 ​

  • 纯用户态运行,不进入内核
  • 使用合法 Windows API(SendInput 等)
  • 不读写游戏内存
  • 不注入任何代码到游戏进程
  • 模拟真实人类操作模式

2. 性能优先 ​

  • C++ 实现性能敏感操作
  • Lua 和 Python 高效脚本执行
  • 零拷贝数据传递
  • 批量操作减少跨语言调用

3. 多语言支持 ​

  • Lua - 轻量级、高性能、适合游戏脚本
  • Python - 第三方库多,适合复杂逻辑和 AI 集成
  • 统一 API 设计,两种语言调用方式一致

4. 可编程 ​

  • 脚本控制,用户可扩展
  • 不限制使用场景
  • 丰富的 API 暴露
  • 支持复杂业务逻辑

5. 人性化 ​

  • 模拟真实人类操作
  • 降低检测风险
  • 可配置的"人性化"参数

目标用户 ​

用户类型使用方式
游戏工作室编写 Lua/Python 脚本自动化
高级玩家编写个人辅助脚本
AI 开发者集成 YOLO 等模型实现智能识别

技术栈 ​

核心引擎
├── C++17
├── Windows API
├── Lua (Lua 5.5)
├── Python (CPython)
├── OpenCV (可选,用于图像处理)
├── ONNX Runtime (可选,用于 ML 推理)
├── pybind11 (C++/Python 绑定)
└── sol2 (C++/Lua 绑定)

构建系统
├── CMake
└── Visual Studio 2022

包管理
└── vcpkg

调试器
├── Debug Adapter Protocol
└── VS Code 插件

文档
└── VitePress

为什么支持两种脚本语言? ​

Lua 的优势 ​

  • 轻量级 - 极小的内存占用
  • 高性能 - 毫秒级启动时间
  • 简单 - 语法简洁,易于学习
  • 嵌入式 - 天生为嵌入式设计

Python 的优势 ​

  • 第三方库 - 覆盖面广,pip 直接安装
  • AI 库 - 可接入 PyTorch、TensorFlow 模型
  • 开发效率 - IDE 支持完善,VS Code 可断点调试
  • 广泛应用 - 大量开发者熟悉

使用建议 ​

  • 游戏脚本 - 推荐 Lua,性能优先
  • AI 集成 - 推荐 Python,第三方库多
  • 快速原型 - 推荐 Python,开发效率高
  • 生产环境 - 根据团队技术栈选择

许可证 ​

Apache License 2.0 - 详见 LICENSE