archive by month
Skip to content

switching to BWAPI 4.4.0

I’m in the process of switching Steamhammer to BWAPI 4.4.0. There are more steps to it than I expected. It involves switching from ancient Visual Studio 2013 to modestly out of date VS 2017. I hated dealing with Microsoft enough to make the upgrade, but it wasn’t actually difficult. The compiler is more strict about language conformance, and I needed a little research to figure out the minor tweaks. There are still a bunch of warnings that I’ll look at later; at first glance they seem insignificant. Changes to keep up with updates to BWAPI’s API were trivial; I had been ready for more. Up to here, everything was planned for.

I did not realize that BWAPI no longer installs BWAPI.lib but expects you to compile it yourself as a project dependency. BWAPI no longer includes a lib directory at all. See the commit. The change is to work around this issue of link errors, which looks like Microsoft’s fault. The closest thing to a mention in the change log (under BWAPI 4.3.0) is below; you have to read the closed issues to find out the problem and solution. (Steamhammer’s documentation is also behind reality....)

Added [Release|Debug]_NoCopy configurations for BWAPILib and other projects which could be used outside of BWAPI itself (bots, libraries etc). This allows for automatic rebuild of these files when BWAPI or your compiler updates #786

I wonder—could the change cause headaches for CIG and AIIDE as they compile entries? I can imagine issues with project dependencies. They certainly need to know about it, at least.

I have more to do. On the cost side, I’ll need time to run test games to see if Steamhammer has hatched any new bugs. On the benefit side, I’m looking forward to removing Steamhammer’s workarounds for the BWAPI bugs in version 4.1.2. They are holding back its play (though there are bigger weaknesses).

Trackbacks

No Trackbacks

Comments

MicroDK on :

I am actually doing the same thing. :) Microsoft forced me because for some reason the vs2013 project could not compile anymore on Windows 10... So I upgraded to vs2017 and bwapi 4.4, which in turn also required me to remove bwta2... so I replaced this with bwem-community. This is done now and it only took me 3-4 evenings using Cydonia (Locutus fork, https://github.com/Jabbo16/Cydonia) as inspiration. But I experience some production issues which I am trying to deal with now...

Antiga / Iruian on :

The new man vs machine ladder developed by Sonko is doing beta testing today and also requires 4.4 support. Sounds like SH may be able to join participate soon!

Jay Scott on :

I’m looking forward to it. At some point I should add configuration stuff for playing against humans—a number of behaviors are designed to exploit other bots, and behaviors to exploit human weaknesses are different.

Antiga / Iruian on :

It's interesting. Right now only Krasi0 / PW (as far as I'm aware) have vs human configs. Basically they don't sprint stats at game start, turn off some of their weirder bot exploitation openers and set their learning to pure random to not be exploitable. (Tons more that could be done, but that is sorta the bare minimum)

Jay Scott on :

It would be fun to use up the human’s APM with constant harassment and simultaneous attacks in different places. That’s an ops boss skill, though, so not this year.

Bytekeeper on :

Fun for authors. But fun for humans?

I believe bots shouldn't abuse their high APM to wear out human players. That won't be satisfactory for neither the human player, nor the bot author.

I think it's fine to abuse the high APM to micro the hell out of units. For exaple, it's fun to watch Locutus' goons.

But there might be a thin line between that and the "low hanging" fruit of smothering a human by forcing attention on the whole map while not playing good at any spot.

Jay Scott on :

Ha ha! I expect it would lead to more pressure for APM limits for bots, and that is as it should be. It’s a topic that has to come forward.

Dan on :

To clarify: It's not pure random -- it's still learning -- but randomness weighs much more heavily.

Hannes Bredberg on :

Yeah, I guess I should have been more clear about the .lib in the release notes. It has been added for anyone who decides to update from now onwards: https://github.com/bwapi/bwapi/releases/tag/v4.4.0

Jay Scott on :

That looks like a clear and useful bit of documentation. Thanks! Now I feel worse for being behind on Steamhammer’s docs....

MicroDK on :

I have looked closer at Microwave's production issues after upgrading to bwapi 4.4. When placing buildings, especially creep or gas extractors, buildings often go into a loop of assigning worker and removing the worker assignment. As a test, I tried to downgrade to bwapi 4.2, then all production issues went away and Microwave played normally. I will do more debugging to find the code that creates the loop.

Add Comment

E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Submitted comments will be subject to moderation before being displayed.