尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

python-sc2快速上手指南:20行代码写出第一个星际争霸II AI机器人

python-sc2快速上手指南:20行代码写出第一个星际争霸II AI机器人 python-sc2快速上手指南20行代码写出第一个星际争霸II AI机器人【免费下载链接】python-sc2A StarCraft II bot api client library for Python 3项目地址: https://gitcode.com/gh_mirrors/pyt/python-sc2python-sc2 是一个用于 StarCraft II星际争霸II的 Python 3 AI 机器人 API 客户端库它的核心目标是简单一个能实战的 worker rush 机器人只需要约20行代码而不是200行。无论你是游戏AI初学者还是想研究机器学习的开发者这篇 python-sc2 入门教程都能帮你快速写出并运行第一个星际争霸II AI机器人。一、python-sc2 是什么为什么值得学python-sc2 通过暴雪官方的 s2client-proto 接口与游戏通信让你用 Python 直接接管游戏读获取单位、资源、地图、战争迷雾、建筑等全部战场信息写下达采矿、建造、训练、攻击等指令跑一键启动游戏进程、创建对局、保存录像、批量对战它同时提供高层抽象self.workers、self.can_afford()和低层接口是学习 RTA 策略AI、强化学习环境的理想工具。核心功能模块都在sc2/目录下重点文件包括 bot_ai.py机器人基类、unit.py单位、units.py单位集合、client.py客户端、game_info.py地图信息、main.py启动入口这些文件都有完整的类型标注和文档字符串。二、安装 python-sc2 的3个前置条件1. 安装 Python 库Python 3.9在终端执行pip install --upgrade burnysc2说明项目 PyPI 包名为 burnysc2导入时用的包名是sc2。项目配置见 pyproject.toml支持 Python 3.9 ~ 3.14。2. 准备星际争霸II 游戏客户端Windows / macOS通过暴雪客户端安装即可Linux可通过 Wine 或 Lutris 运行 Windows 版或安装无界面的官方 Linux 版并设置环境变量SC2PFWineLinux WINE/usr/bin/wine SC2PATH/path/to/StarCraft II/WSL 用户注意WSL 2 需额外配置SC2CLIENTHOST和SC2SERVERHOST环境变量详见 README.md 的 WSL 章节。3. 放置地图文件运行对局需要地图如 Abyssal Reef LE、AcropolisLE 等。从暴雪官方 s2client-proto 下载地图包后官方地图解压到地图目录的对应子目录如Maps/Ladder2017Season1/AI Arena 天梯图解压到地图目录根目录如Maps/AcropolisLE.SC2Map三、20行代码你的第一个 worker rush 机器人下面是整个库最经典的新手示例——一只 Zerg worker rush 机器人代码本体不足20行from sc2 import maps from sc2.player import Bot, Computer from sc2.main import run_game from sc2.data import Race, Difficulty from sc2.bot_ai import BotAI class WorkerRushBot(BotAI): async def on_step(self, iteration: int): if iteration 0: for worker in self.workers: worker.attack(self.enemy_start_locations[0]) run_game(maps.get(Abyssal Reef LE), [ Bot(Race.Zerg, WorkerRushBot()), Computer(Race.Protoss, Difficulty.Medium) ], realtimeTrue)逐段读懂它继承BotAI所有机器人的基类sc2/bot_ai.py它自动帮你维护self.workers采集工人、self.units全部单位、self.enemy_start_locations敌方开局位置等常用状态。on_step回调游戏每走一步就调用一次iteration是第几步。这里只在第0步行动命令所有 worker 直线冲向敌方基地。run_game启动对局指定地图、玩家列表你的机器人 中等难度电脑对手、realtimeTrue真实速度运行可以肉眼观看。运行python examples/worker_rush.py完整版见 examples/worker_rush.py还支持save_replay_as参数自动保存录像几秒钟内就能看到自己的 Zerg 虫族冲上屏幕甚至偶尔赢下电脑——这就是最简单的有实战意义的机器人。四、读懂机器人开发的5个核心概念概念所在文件作用BotAIsc2/bot_ai.py机器人基类提供on_start/on_step/on_end生命周期Unitsc2/unit.py单个单位可.attack()、.build()、.train()、.gather()Unitssc2/units.py单位集合支持closest_to()、filter()、of_type()等链式查询Point2sc2/position.py坐标与距离计算distance_to、towardsrun_gamesc2/main.py一键启动游戏、创建对局、结束清理写机器人最常用的写法是链式查询例如# 找出所有矿场内10格、离当前工人最近的矿堆 minerals self.mineral_field.closer_than(10, self.start_location) drone.move(minerals.closest_to(drone))这种集合 → 筛选 → 取最近的风格让 AI 逻辑读起来像自然语言是 python-sc2 被广泛采用的关键原因。五、进阶玩法从 solo 训练到多场自动对战1. 人与机器人同屏对战把自己换成Human玩家就能亲手与机器人交战示例见 examples/play_tvz.pyrun_game(maps.get(Abyssal Reef LE), [ Human(Race.Terran), Bot(Race.Zerg, ZergRushBot()) ], realtimeTrue)2. 机器人 vs 机器人批量对战用GameMatchrun_multiple_games可以批量跑多场对局非常适合评估AI策略示例见 examples/bot_vs_bot.py。仓库的examples/目录还内置了三大种族的完整教学机器人强烈建议逐个研读Zergzerg_rush.py、onebase_broodlord.py、hydralisk_push.pyProtosscannon_rush.py、warpgate_push.pyTerranramp_wall.py、mass_reaper.py、onebase_battlecruiser.py3. 观看与分析录像run_replay可以回放 .SC2Replay 文件并逐帧调用你的ObserverAI用于复盘和学习示例见 examples/watch_replay.py。配合self.score属性还能读取 APM、击杀价值、采集速率等详细战报数据sc2/score.py。4. 性能调优小技巧在BotAI的__init__中设置以下属性可显著提升执行速度详见 README.md 的 API Configuration Options 章节raw_affects_selection True减少选择单位时的开销distance_calculation_method 2使用 scipy cdist 加速距离计算在on_start而非__init__中设置self.client.game_step 2每2帧决策一次六、常见问题排查Q1运行后提示找不到游戏/地图先确认SC2PATH环境变量指向正确安装目录、地图文件放在正确位置并保证游戏客户端可正常启动。Q2机器人卡住不动检查on_step中是否有耗时过长的同步计算。实时模式下每步预算约45ms重计算可放到后台或用game_step降频。Q3想支持多机器人/外部进程BotProcessProxysc2/proxy.py机制支持任意语言写的外部机器人通过 WebSocket 接入play_from_websocket是 SC2 AI Arena 天梯的标准接入方式。七、下一步学习路线从 examples/ 挑一个你最喜欢种族的机器人逐行读懂阅读sc2/下 bot_ai.py、unit.py、units.py 的文档字符串尝试改写给 worker rush 加上造孵化场 出跳虫逻辑用run_multiple_games批量对战验证策略改动python-sc2 用20行代码的简洁度向你证明了游戏AI开发并没有想象中那么遥不可及。现在打开终端安装依赖跑起你的第一个星际争霸II AI机器人吧 【免费下载链接】python-sc2A StarCraft II bot api client library for Python 3项目地址: https://gitcode.com/gh_mirrors/pyt/python-sc2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表