opendilab / DI-star

An artificial intelligence platform for the StarCraft II with large-scale distributed training and grand-master agents.
Apache License 2.0
1.23k stars 115 forks source link

Cannot open replay file generated from 'python -m distar.bin.play' #38

Closed ZiyiGaoCN closed 4 months ago

ZiyiGaoCN commented 4 months ago

I tryed blizard offical SC2 and pysc2, neither can open replay file generated by 'python -m distar.bin.play'.

If I open with pysc2, it turns out that has an error 'pysc2.lib.remote_controller.RequestError: SC2APIProtocol.ResponseReplayInfo.Error.ParsingError: 'Could not open initData for the replay: C:\Users***\AppData\Local\Temp\StarCraft II\TempReplayInfo.SC2Replay'. https://github.com/google-deepmind/pysc2/issues/25, probably suggests that the error comes from a broken replay file.

If need me to provide the broken replay file, pls let me know.

ZiyiGaoCN commented 3 months ago

It turns out that you cannot contain any underscore in your player_name, that's a weird setting of SC2 client application. To fix this, makesure user_config.env.player_ids just contains lower case or number.

hsbhc commented 1 month ago

Hi, how can I ensure that user_config.env.player_ids only contains lowercase letters or numbers? I encountered the same issue when I executed pymarl to save the replay file.

hsbhc commented 1 month ago

事实证明,您的player_name中不能包含任何下划线,这是SC2客户端应用程序的一个奇怪设置。 要解决这个问题,请确保user_config.env.player_ids只包含小写字母或数字。

ZiyiGaoCN commented 1 month ago

Hi, how can I ensure that user_config.env.player_ids only contains lowercase letters or numbers? I encountered the same issue when I executed pymarl to save the replay file.

It seems like we use different entrypoints to save the replay. I am not sure how pymarl works, but you may want to find out the player name when it sends request to save the replay file. If it does have underscore then you identify the problem.