项目简介
什么是 Wingman?
Wingman 是一个游戏自动化可编程控制引擎,基于 C++ 和 Lua 构建。
设计目标
核心目标
- 高性能 - C++ 核心引擎,Lua 脚本执行,毫秒级响应
- 安全可靠 - 纯用户态运行,使用合法 Windows API
- 可编程 - Lua 脚本控制,无限扩展可能
- 易调试 - 强大的调试能力,支持断点、变量查看、性能分析
不做什么
Wingman 遵循单一职责原则,以下功能不在项目范围内:
| 功能 | 说明 |
|---|---|
| ❌ 内核驱动 | 不开发驱动,纯用户态 |
| ❌ 内存读写 | 不读取/修改游戏内存 |
| ❌ DLL 注入 | 不注入代码到游戏进程 |
| ❌ 游戏破解 | 不修改游戏文件/协议 |
| ❌ 分布式网络 | 不做分布式网络 |
| ❌ 账号管理 | 不管理游戏账号 |
| ❌ 任务调度 | 不做调度逻辑 |
项目边界
┌─────────────────────────────────────────────────────────────────┐
│ ✅ Wingman 边界内 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 屏幕操作 截图、像素检测、颜色匹配、图像查找 │
│ 输入模拟 鼠标点击/移动、按键发送、文本输入 │
│ 窗口管理 查找窗口、激活窗口、获取位置 │
│ 进程管理 启动/等待/终止进程 │
│ 脚本引擎 Lua 脚本执行、API 暴露 │
│ 工具函数 延迟、日志、配置 │
│ 人性化模拟 随机延迟、自然鼠标轨迹、操作节奏 │
│ 远程控制 TCP Server/Client,暴露 API 供外部调用 │
│ 调试器 断点、变量查看、性能分析 │
│ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ ❌ Wingman 边界外 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 内核驱动 不开发驱动,纯用户态 │
│ 内存读写 不读取/修改游戏内存 │
│ DLL 注入 不注入任何代码到游戏进程 │
│ 游戏破解 不修改游戏文件/协议 │
│ 网络功能 不做分布式网络 │
│ 账号管理 不管理账号 │
│ 调度系统 不做调度 │
│ 多机协同 不做分布式(单机引擎) │
│ │
└─────────────────────────────────────────────────────────────────┘核心设计原则
1. 安全第一
- 纯用户态运行,不进入内核
- 使用合法 Windows API(SendInput 等)
- 不读写游戏内存
- 不注入任何代码到游戏进程
- 模拟真实人类操作模式
2. 性能优先
- C++ 实现性能敏感操作
- Lua 提供高效的脚本执行
- 零拷贝数据传递
- 批量操作减少跨语言调用
3. 可编程
- Lua 脚本控制,用户可扩展
- 不限制使用场景
- 丰富的 API 暴露
- 支持复杂业务逻辑
4. 单一职责
- 只做游戏自动化
- 不涉及账号管理
- 不涉及任务调度
- 不涉及分布式
5. 人性化
- 模拟真实人类操作
- 降低检测风险
- 可配置的"人性化"参数
目标用户
| 用户类型 | 使用方式 |
|---|---|
| 游戏工作室 | 编写 Lua 脚本自动化 |
| 高级玩家 | 编写个人辅助脚本 |
技术栈
核心引擎
├── C++17
├── Windows API
├── Lua
├── OpenCV (可选)
└── sol2 (C++/Lua 绑定)
构建系统
├── CMake
└── Visual Studio 2022
调试器
├── Debug Adapter Protocol
└── VS Code 插件
文档
└── VitePress许可证
Apache License 2.0 - 详见 LICENSE