Blizzard / s2client-proto

StarCraft II Client - protocol definitions used to communicate with StarCraft II.
MIT License
3.76k stars 431 forks source link

Client version management #30

Closed inoryy closed 6 years ago

inoryy commented 6 years ago

In light of major upcoming changes, I'm curious if there's a way to manage client versions and if yes, how will it affect client <-> API <-> pysc2 communication.

My concern is that otherwise these massive changes essentially void some research efforts (i.e. trained agents will break due to key units missing or behaving differently).

tewalds commented 6 years ago

These changes will definitely have an effect on game play, but I don't think they're changing any of the game mechanics that much, so the protocol should be unaffected. There'll be a few new units and abilities, which will just get new ids. This will mean adding some new actions in pysc2. Also, you might need to increase some number of actions your unit can handle and retrain, but you shouldn't have to rewrite anything.

It's worth noting that you might need to retrain/refine regularly anyway due to smaller balance patches, though I suspect it'll be a long time before anyone gets to the point where the smaller balance patches matter much.

KevinCalderone commented 6 years ago

The old linux builds will still be available, so you can always play on the old versions if you want to avoid balance changes.

Our intention is to avoid version breaking changes to the API, so hopefully PySC2 will remain compatible with old versions. (Although obviously new features we add will be missing from the old game versions)