davechurchill / StarcraftAITournamentManager

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

Add support for mixed type bots #14

Closed edran closed 7 years ago

edran commented 7 years ago

Bots that are based on TorchCraft require both a dll and an exe to run. While it's possible to hack TorchCraft to launch a single executable, or to use client mode, it's probably safer to allow the use of dlls.

This pull request adds this feature by defining a new bot type, "mixed", which combines proxy and dll bots. This new type allows users to load a dll in StarCraft, while also enabling them to provide a run_proxy.bat script if deemed necessary.

To avoid too much confusion this close to the tournament, I have not renamed the required script to something like script.bat, however we might consider doing some refactoring around this new type after AIIDE.

Note: I've provided compiled binaries of the server and client using javac 1.8.0_144 x86, however you might want to check them after merging. All I can say is that I tested them for a couple of hours, and everything looked functional :)

davechurchill commented 7 years ago

@richard-kelly When you get back can you review this pull request?

I would honestly prefer if we could make two options per bot: "dll" and "script", where a bot has to have one or the other or both selected. That way, we don't need to add a 3rd type and it's a bit more robust. So I don't think we will accept this request as-is, but instead re-code the features which shouldn't take long

richard-kelly commented 7 years ago

@edran, this is just a clarification of the settings, right? Currently for proxy bots a dll can still be included and BotName.dll is placed in the bwapi settings file.

edran commented 7 years ago

Oh, I see what you are saying. Proxy bots are forced to provide a fake dll. What's the use case for that?

davechurchill commented 7 years ago

It was when I didn't realize you couldn't specify no dll :)

richard-kelly commented 7 years ago

I tried not specifying the dll for proxy bots and found that the dll path is required for earlier versions of BWAPI (but not 4.2.0), so Dave there was a good reason for doing it that way :)

davechurchill commented 7 years ago

This is no longer required so I'll close the issue