Skip to content

Starcraft bot based on BWAPI and with F# controlled units. C++ C# F#

Notifications You must be signed in to change notification settings

rudym/starcraft-bot-in-fsharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 

Repository files navigation

-------------------------------------------
| starcraft-bot-in-fsharp on BWAPI 3.7.4  |
|    based on Chris Smith's sources       |
-------------------------------------------

THE PRELUDE		http://blogs.msdn.com/b/chrsmith/archive/2010/03/18/writing-a-starcraft-bot-in-f.aspx

The BWAPI web site	http://code.google.com/p/bwapi/

------------------------

Instruction:

1. Download 3.7.4 version of BWAPI https://code.google.com/p/bwapi/
 a. Copy the contents of Chaoslauncher/ (resides in downloaded bwapi) to your Chaos Launcher folder.
 b. Copy the contents of Starcraft/ (resides in downloaded bwapi) to your actual Starcraft folder.
 c. Copy the contents of WINDOWS/ (resides in downloaded bwapi) to your C:\WINDOWS or C:\WINNT folder or...  You can actually copy these Dlls to anywhere on your system PATH.  

2. How to start your bot:
 a. Launch the project (for example by running it in debug mode)
 b. Enter the solution directory StarCraftConnector\bin\Release and copy StarcraftConnector.dll to the game folder: Starcraft\bwapi-data\AI. Move back to Starcraft\bwapi-data and open bwapi.ini file. Change the name of AI there ai = bwapi-data\AI\ExampleAIModule.dll to yours (probably StarcraftConnector.dll)
 d. Launch the game! (And create your custom battle)

As Chris already written in his blog just unleash StarCraftBot9K! Simply start the application. The application will start to listen to the socket until StarCraftConnector begins broadcasting.


Working with the sources:
 a. There are three projects in the solution. First is StarCraftConnector which in output gives StarCraftConnector.dll, which is the C++ library built on top of BWAPI that broadcasts game state to a socket. (Later a C# application will listen to that data and send messages back to the StarCraft game.)
 b. Second project is named StarCraftBot9K Client (C#) which will listen for those events.
 c. And finally StarCraftBot9K (F#). Here you write the code where the decision making and the heart of the bot will reside.

P.S. Also I recommend to use ChaosLauncher for running the game: http://wiki.teamliquid.net/starcraft/Chaoslauncher


TODO:
SWIG http://www.swig.org/
Probably change the architecture to shared memory bridge. https://code.google.com/p/jnibwapi/

About

Starcraft bot based on BWAPI and with F# controlled units. C++ C# F#

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published