MicroRTS
强化学习研究者的微型 RTS 博弈环境,支持 MCTS/HTN 等多种 AI 算法对战
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
强化学习研究者的微型 RTS 博弈环境,支持 MCTS/HTN 等多种 AI 算法对战
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
MicroRTS 是一个极简化的即时战略游戏环境,专门用于快速验证强化学习、多智能体协同和游戏 AI 算法——比直接上手《星际争霸》省去 99% 的环境配置时间。

Farama Foundation 是全球最大的开源机器人学习平台维护组织,旗下拥有 PettingZoo、Shimmy、MiniRTS 等一系列标准化 RL 环境。MicroRTS 便是其中最具代表性的游戏 AI 研究工具。
2013 年,西班牙巴塞罗那学者 Santiago Ontanón 在 AIIDE 学术会议上发表了一篇论文,提出了一个大胆的设想:与其在复杂的商业游戏中调试 AI 算法,不如先在一个"麻雀虽小五脏俱全"的微型 RTS 游戏里练手。这篇论文便是 MicroRTS 的起点。
RTS 游戏(Real-Time Strategy,即时战略)的核心挑战在于三点:资源有限、多单位协同、实时决策。玩家需要同时管理经济(采集资源)、军事(建造单位)和战术(微操单位),这与真实世界的调度问题高度相似。Ontanón 选择 RTS 而非围棋或 Atari 游戏,正是看中了其"多目标、持续对抗、空间博弈"的复合特性。
2019 年,Farama Foundation 正式接手项目维护,将其纳入标准化学术工具链。这意味着 MicroRTS 获得了持续更新、文档规范化和社区支持三重保障。如今,它已经是 IEEE CoG(游戏计算国际会议)年度比赛的御用平台,每年吸引全球数十支研究团队参赛。
值得注意的转折: 2025 年 8 月 11 日,Farama Foundation 宣布 MicroRTS Java 版正式停止维护(deprecated),但推荐用户迁移至 MicroRTS-Py(Python 重写版)。这意味着 Java 版本不再接收新功能,但代码库依然可用,教学和研究场景完全够用。
MicroRTS 的游戏地图是一张网格棋盘(通常 16x16 或 24x24),两名玩家各自拥有基地(Base)、工人(Worker)、战斗单位(Light、Ranged、Heavy)和资源点。游戏目标是摧毁对方基地。
与真实 RTS 的差异:
| 特性 | 真实 RTS(星际2/Warcraft3) | MicroRTS |
|---|---|---|
| 地图规模 | 数百x数百格 | 16x16~64x64 |
| 单位种类 | 数十种 | 4种战斗单位+工人 |
| 决策频率 | 每秒数十次操作 | 可调(默认 10fps) |
| 随机性 | 高(战争迷雾、暴击等) | 可配置(确定性/随机) |
| 观测范围 | 战争迷雾(部分可见) | 完全/部分可观测均可 |
关键配置参数:
partiallyObservable=true:开启战争迷雾,AI 只看到己方单位视野范围deterministic=true:消除随机性,保证实验可复现gameDuration:最大帧数,超时则平局项目中 lib/bots/ 目录预置了多个 JAR 包,均为历年 microRTS 比赛冠军 AI:
这些 Bot 本身就极具研究价值——可以直接下载 JAR 运行,与自己的算法对打,量化差距。
对于需要深度定制的用户,MicroRTS 暴露了完整的事件接口:
// 微操控制:每帧决定每个单位的行为
public class MyAI extends AI {
@Override
public AIAction getAction(int unitId, GameState state) {
// 自定义决策逻辑
return new AttackAction(targetId);
}
}
这种设计让研究者可以专注于 AI 逻辑本身,而不必处理底层游戏引擎。
src/
rts/ # 核心引擎:游戏状态、地图、单位、资源管理
ai/ # 所有内置 AI 算法实现
mcts/ # 蒙特卡洛树搜索及其变体
minimax/ # 极小化极大搜索(带 alpha-beta 剪枝)
montecarlo/# 朴素蒙特卡洛
portfolio/ # 多策略组合
machinelearning/ # ML 相关实验代码
socket/ # 远程连接(Server/Client 模式)
gui/ # Swing 界面
util/ # 工具类
AI 算法的技术亮点:
src/ai/mcts/ 下有多个实现,包括 UCB1 选择、随机展开和反向传播,是 AlphaGo 的核心技术前身# Ant 构建(推荐)
ant build # 编译 src/ + test/ 到 bin/
ant test # 运行单元测试
ant export_jar # 生成可执行 JAR
# 直接 javac
javac -cp "lib/*:src" -d bin src/rts/MicroRTS.java
java -cp "lib/*:bin" rts.MicroRTS
# 运行 GUI
java -cp microrts.jar gui.frontend.FrontEnd
无 GPU 依赖:所有内置 AI 算法均为传统搜索和规划方法,无需 CUDA,在普通笔记本上即可运行完整对战。
| 模式 | 难度 | 适合人群 |
|---|---|---|
| 命令行运行 | 一星 | 快速验证 RL 算法 |
| GUI 观战 | 二星 | 可视化理解游戏机制 |
| 编写自定义 AI | 三星 | 深度研究(需 Java 基础) |
| 参加年度比赛 | 四星 | 高阶研究者 |
machinelearning/ 目录内容有限,深度学习玩家需要自行对接 PyTorch 或 TensorFlowMicroRTS 的真正价值不在于游戏本身,而在于它填补了"简化版博弈环境"的空白。
学术贡献(按引用影响力排序):
| 维度 | 评分 | 说明 |
|---|---|---|
| 研究价值 | 五星 | RTS RL 领域的经典基准,引用量高 |
| 部署难度 | 一星 | Java 1.8 + Ant,5 分钟跑起来 |
| 代码质量 | 四星 | 10 年积累,算法覆盖全面 |
| 社区活跃度 | 三星 | 比赛生态持续,但主体已转向 Py 版本 |
| 实用性 | 三星 | 适合学术场景,生产环境不建议使用 Java 版 |
推荐场景: 强化学习入门、多智能体协同研究、博弈论可视化、算法教学演示。 不推荐场景: 生产部署、实时对战平台、需要 GPU 加速的深度学习实验。
分析时间:2026-06-29 | 数据来源:GitHub API + 源码解析