Skip to content

LQR86/MinSC

Repository files navigation

MinSC - Minimal StarCraft for MCP

MinSC是一个为Model Context Protocol (MCP)设计的最小化星际争霸游戏环境,用于AI Agent的实时策略游戏训练和测试。

🎮 当前功能

核心游戏系统

  • 地图系统: 1024x768像素地图,随机分布的8个资源点
  • 单位系统: 工人单位,支持移动、选择、资源采集
  • 建筑系统: 指挥中心,支持工人生产和资源存储
  • 游戏循环: 60FPS实时渲染,事件驱动的游戏逻辑

交互控制

  • 单位选择: 左键点击单位,拖拽框选多个,Shift+点击多选
  • 单位指令: 右键空地=移动,右键资源点=采集,右键建筑=交互
  • 建筑操作: 选择指挥中心后按W键=生产工人,S键=停止生产
  • 游戏控制: Space键=暂停/继续,ESC键=退出游戏

游戏机制

  • 双方对战: 蓝色玩家1 vs 红色玩家2(当前可手动控制双方)
  • 资源采集: 工人采集绿色资源点,携带量10/10满载后需返回
  • 资源管理: 指挥中心存储资源(容量500),支持工人卸载
  • 单位生产: 指挥中心生产工人(耗时3秒,队列最大5个)
  • 视觉反馈: 选择框、路径线、血条、进度条、携带指示器

🚀 快速开始

环境要求

  • Python 3.13+
  • Windows/Linux/macOS

安装运行

# 进入MinSC目录
cd MinSC

# 启动游戏(推荐,跨平台)
python launcher.py

# 或者手动激活虚拟环境
venv/Scripts/activate  # Windows
# 或 source venv/bin/activate  # Linux/macOS
python src/main.py

🎯 游戏测试指南

游戏界面说明

视觉元素识别

  • 绿色圆圈 = 资源点(矿物),大小表示资源剩余量
  • 小方块单位
    • 浅蓝色方块 = 玩家1的工人单位
    • 浅红色方块 = 玩家2的工人单位
  • 大方块建筑
    • 深蓝色大方块 = 玩家1的指挥中心(左上角)
    • 深红色大方块 = 玩家2的指挥中心(右下角)
  • 选择状态
    • 黄色边框 = 已选中的单位/建筑
    • 白色线条 = 单位移动路径
  • 状态指示器
    • 单位上方绿色条 = 血条
    • 单位右上角小圆点 = 资源携带指示(黄/橙/红色)
    • 建筑下方黄色条 = 生产进度条

基础操作测试

  1. 识别游戏元素

    • 找到地图上的绿色圆圈(资源点)
    • 识别蓝色工人(左上角附近)和红色工人(右下角附近)
    • 定位两个指挥中心:蓝色(左上)和红色(右下)
  2. 单位选择

    • 左键点击蓝色工人单位,观察黄色选择框出现
    • 拖拽框选多个单位(从空地拖到包围单位)
    • Shift+点击添加单位到选择(可选择敌我双方单位)
  3. 移动控制

    • 选择蓝色工人后右键点击空地,观察单位移动
    • 观察白色移动路径线和圆形目标点
    • 测试移动到地图不同区域
  4. 资源采集

    • 选择蓝色工人右键点击绿色资源点(圆圈)
    • 观察工人移动到资源点并开始采集动作
    • 注意工人右上角出现的小圆点(资源携带指示器)
    • 观察资源点大小随采集而缩小
  5. 资源卸载

    • 工人携带资源后(右上角有圆点)右键点击蓝色指挥中心
    • 观察工人移动到指挥中心并卸载资源
    • 资源携带指示器消失
  6. 单位生产

    • 左键选择蓝色指挥中心(大方块),出现黄色选择框
    • 按W键开始生产工人
    • 观察建筑下方出现黄色生产进度条
    • 等待3秒后新的蓝色工人在指挥中心附近生成

高级测试场景

  1. 完整资源循环

    • 蓝色工人:采集→卸载→再采集的完整经济循环
    • 观察指挥中心资源存储变化
  2. 多单位协作

    • 框选多个蓝色工人
    • 右键不同的绿色资源点,观察工人分散采集
  3. 生产队列管理

    • 选择蓝色指挥中心连续按W键建立生产队列(最多5个)
    • 按S键取消生产队列
  4. 敌我单位对比

    • 分别选择蓝色和红色工人,观察颜色区别
    • 测试红色工人的移动和采集(同样的操作)
    • 注意:当前版本没有战斗系统,敌我单位可和平共处

📊 游戏状态

当前实现 ✅

  • 游戏引擎 (Pygame 60FPS)
  • 地图和资源系统
  • 单位系统 (工人)
  • 建筑系统 (指挥中心)
  • 基础RTS控制
  • 资源采集和管理
  • 单位生产

待实现 🚧

  • MCP三层决策API
  • 战斗单位 (战士)
  • 更多建筑类型
  • AI对战系统
  • 网络多人游戏

🔧 架构设计

目录结构

MinSC/
├── src/
│   ├── engine/          # 游戏引擎
│   │   ├── game.py      # 主游戏循环
│   │   └── map.py       # 地图系统
│   ├── units/           # 单位系统
│   │   ├── unit.py      # 基础单位类
│   │   └── worker.py    # 工人单位
│   ├── buildings/       # 建筑系统
│   │   ├── building.py  # 基础建筑类
│   │   └── command_center.py # 指挥中心
│   └── main.py          # 程序入口
├── venv/                # Python虚拟环境
├── launcher.py          # 跨平台启动器
└── README.md

核心类关系

  • Game: 主游戏循环,事件处理
  • Map: 地图管理,资源点生成
  • Unit: 基础单位类,移动和选择
  • Worker: 工人单位,资源采集能力
  • Building: 基础建筑类,生产和状态管理
  • CommandCenter: 指挥中心,工人生产和资源存储

🎯 下一步开发

  1. MCP接口设计 - 三层决策API架构
  2. AI Agent集成 - 支持外部AI控制
  3. JVS框架集成 - 七步PDCA验证环境
  4. 性能优化 - 支持大规模单位和建筑

MinSC项目是JVS框架生态的重要组成部分,为AI Agent提供了一个标准化的RTS游戏测试环境。

许可证

MIT License

About

Minimal StarCraft for MCP - A simplified RTS game engine providing Tools API for AI agents via Model Context Protocol

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors