davechurchill / StarcraftAITournamentManager

Tournament Manager Software for StarCraft AI Competitions
MIT License
77 stars 43 forks source link

Add support for BWAPI 4.4.0 (but not 4.3.0 because it crashes a lot) #34

Closed chriscoxe closed 5 years ago

chriscoxe commented 5 years ago

Update 2019-03-24: the original plan was to add support for BWAPI 4.3.0 and that is how this issue was originally written, but the plan changed to only add support for BWAPI 4.4.0, not 4.3.0 too. So I have edited this issue to replace references of BWAPI 4.3.0 with just BWAPI 4.4.0 (even though the commit history will show that 4.3.0 was added then 4.4.0 added then 4.3.0 removed).

Add support for BWAPI 4.4.0 by adding Required_BWAPI_440.zip. The only differences for Required_BWAPI_440.zip compared with Required_BWAPI_420.zip are the updated TournamentModule.dll that needs to be built (using the updated ExampleTournamentModule.vcxproj file from BWAPI, and also add the source code to a separate folder), and the updated official BWAPI.dll & updated official SNP_DirectIP.snp. Also, remove Multiple Instance Hack.bat, bspatch.exe, starcraft.bsdiff because they were removed from BWAPI several versions ago (since version 4.1.2).

For the source code for TournamentModule.dll, I will combine the updated ExampleTournamentModule.vcxproj file from BWAPI 4.4.0 with the TM source code for BWAPI 4.2.0 from after #32 was fixed, so that those permissions fixes are also applied to BWAPI 4.4.0.

To ensure compatibility with BWAPI 4.4.0, I recommend installing the latest version of the x86 "Microsoft Visual C++ Redistributable for Visual Studio 2017". https://support.microsoft.com/en-au/help/2977003/the-latest-supported-visual-c-downloads provides a download link to whatever the latest version is. The links on that page change every time they release a new version. Currently (as-at 2019-03-24), the version of the redist is 14.16.27027, although it is actually displayed in Add/Remove Programs as 14.16.27027.1.

chriscoxe commented 5 years ago

Update 2019-03-24: I've just added support for BWAPI 4.4.0 and removed the support for BWAPI 4.3.0, so the rest of this old comment about testing peformed is no longer relevant.

I've compiled my bot (ZZZKBot) linking with BWAPI 4.3.0 and tested that my bot runs as expected using ChaosLauncher with the new TournamentModule.dll (and BWAPI 4.3.0 official BWAPI.dll, SNP_DirectIP.snp) on my Win7 SP1 VMs, and committed and pushed all the changes to the ladder branch of my fork.

N00byEdge commented 5 years ago

BWAPI 4.4 now instead? :D @davechurchill

davechurchill commented 5 years ago

We plan on supporting 4.4.0, I don't think we need 4.3 and 4.4

chriscoxe commented 5 years ago

In the "ladder" branch of my fork, I've just committed and pushed all the changes to add support for BWAPI 4.4.0 and remove support for BWAPI 4.3.0.

In terms of testing performed, I have compiled my bot (ZZZKBot) linking with BWAPI 4.4.0 and tested that my bot runs as expected using ChaosLauncher (using the updated plugin BWL files from BWAPI 4.4.0) and using StarcraftAITournamentManager, both using the new TournamentModule.dll (and BWAPI 4.4.0 official BWAPI.dll, SNP_DirectIP.snp) on my Win7 SP1 VMs. I have run ten games against each of a few bots. There were no crashes, and I didn't notice any other problems. I tested that the TM client sets the character_name and game_type_extra settings in bwapi.ini correctly according to all the supported versions of BWAPI (i.e. they are set if and only if the BWAPI version is 4.2.0 or higher). I also tested it in my earlier changes for BWAPI 4.3.0 but I forgot to mention it then.

richard-kelly commented 5 years ago

Fix from @chriscoxe merged into ladder branch.