Blizzard / s2client-api

StarCraft II Client - C++ library supported on Windows, Linux and Mac designed for building scripted bots and research using the SC2API.
MIT License
1.66k stars 282 forks source link

Using Coordinator::StartGame(...) with map name can start old version of the game without any notice #226

Closed Archiatrus closed 6 years ago

Archiatrus commented 6 years ago

Hi,

I noticed that if you start the game via a cached map, e.g. coordinator.StartGame("Interloper LE"); then it can happen that an old version of the game gets started without any notice. In the console it says Base60321 and if you click in the client on the replay it says current version but in my case all the design changes of 4.0 are not available (Shield Battery, energy based Chrono, etc). To fix this I went in the client and started a game on Interloper LE to update the cached version. It did not work. If I start the game as coordinator.StartGame("InterloperLE.SC2Map"); all 4.0 changes are present. But starting a bot game via local map means I can not share the replay without the map file. Moreover, in the client I can not choose the "watch with others" option when viewing the replay.

To fix this issue: Please pass at least a status message to the console that an older version of the game is started and why. To go a bit further: I would like the coordinator to be able to check the version and re-cache if the map is not available in the cache or outdated. Not always needing a local map file would make it much easier to share replays and debug bots for competitions.

Regards

Archiatrus commented 6 years ago

I actually re-cached like described here. But starting the game via map name still launches the game without the 4.0 changes (and wrong liberator costs). So my point about automatic re-caching is moot since it does not solve the problem.

KevinCalderone commented 6 years ago

Can you try deleting the cache and then manually playing a game on the map?

Assuming you are on Windows, try deleting the folders at these two paths: C:\ProgramData\Blizzard Entertainment\Battle.net C:\Program Files (x86)\StarCraft II\Battle.net

To re-cache the map, launch the game via the Blizzard launcher and play a custom game.

Archiatrus commented 6 years ago

Deleting C:\ProgramData\Blizzard Entertainment\Battle.net solved the problem. I can now open the correct version with coordinator.StartGame("Interloper LE"); Thank you.

(Would be nice if it would do the re-caching automatically though :) )