为了开始编写我的智能体(Agent),我决定先从资料比较多的星际争霸2来入手。
下载游戏
由于我弄的时候网易暴雪还没复合,我是通过下载国服程序+注册国际服账号登入的(其实好像用不上,sc2py是打开地图编辑器形式单机运行……我还想让我写的ai代替我与我的高中同学对战呢,但貌似不行)
下载代码、地图
代码源:
google-deepmind/pysc2: StarCraft II Learning Environment (github.com)
https://github.com/google-deepmind/pysc2地图源:
https://github.com/Blizzard/s2client-proto#downloads配置环境
安装sc2包
放置地图
把上面“地图源”的地图下载并解压到星际的Maps文件夹即可被sc2包找到(密码在声明里写了,是iagreetotheeula)
不同的样例代码中使用的地图名是不一样的(对于不同地图你的策略编写也是不同的)。比如bot_vs_bot.py 这个脚本,用的就是"AcropolisLE"地图,星际2的Maps文件夹中没有就会报错。(碎碎念:Maps文件夹……想起了自己高中玩魔兽地图编辑器的时候……)
运行
直接用vscode执行代码会报错
No module named 'examples'
File "F:\games\Battle.net\Agent\python-sc2-develop\examples\bot_vs_bot.py", line 11, in <module> from examples.protoss.warpgate_push import WarpGateBot ModuleNotFoundError: No module named 'examples'
说白了就是python包的路径没找对,我上面注释的那两行解开注释就行了,就是把代码的根目录加上,作为寻找的路径
然后就能看见星际2的窗口化执行了。