--------------------
| BWAPI 4.0.1 Beta |
--------------------

The BWAPI web site    https://github.com/bwapi/bwapi
                  
Documentation         https://bwapi.github.io/
Documentation (old)   http://code.google.com/p/bwapi/wiki/BWAPIManual
Blog                  http://bwapi.blogspot.com/
Google Group          http://groups.google.com/group/bwapi
Forums                http://www.broodwarai.com/forums/
Bug Reports           https://github.com/bwapi/bwapi/issues
IRC Channel           Freenode #BWAPI

1. Introduction to BWAPI
------------------------
      The Brood War Application Programming Interface (BWAPI) is a free and open
  source C++ framework that is used to interact with the popular Real Time Strategy
  (RTS) game Starcraft: Broodwar. Using BWAPI, students, researchers, and hobbyists
  can create Artificial Intelligence (AI) agents that play the game.
  
     The installer contains all the necessary include files, libs, and dlls
  required to compile and run an AI module and also comes with four projects
  to help get you started in AI development with BWAPI:

    - Example AI Module - This project shows how to build an AI module DLL which
                          is the standard way of making autonomous agents with
                          BWAPI. The Example AI Module shows how to print
                          "Hello world!" along with a bit of example code that
                          shows how to read information about the units in the
                          game.

    - Example AI Client - This project demonstrates how to build an AI client program
                          (no longer an experimental way of making AIs for
                          BWAPI, but rather well tested and widely used way at this point). 
                          Like the Example AI Module project, this
                          project shows how to print "Hello world!" along with a
                          bit of example code that shows how to read information
                          about the units in the game. The AI Client allows for more flexibility 
                          in the implementation - one could potentially use non-microsoft 
                          compilers, even embed other programming languages via FFI
                          (see http://sscaitournament.com/index.php?action=tutorial for an 
                          example using Java). This is currently the recommended way of
                          developing a new AI.

    - AI Module Loader  - This project is a very simple AI client program which
                          can load and run Example AI Module DLLs, essentially
                          a way of making your AI Module run in a separate
                          process without actually converting it to a client
                          program.
                          
    - Example Tournament Module - This project shows how to build a tournament module which
                                  can manage tournaments by limiting what the AI module can
                                  do and control the flow of the game without altering the
                                  AI module itself. The tournament module is only available
                                  in RELEASE mode.

  Build Instructions:
    1. Run the installer and go to the installation directory.

    2. Open ExampleProjects.sln in Visual C++ 2013 (Express or Professional) and build the solution.

  All projects should now be built and can be found in the solution directory's Release or
  Debug subdirectories. Make sure to run the corresponding version of BWAPI and set the
  proper settings for Release and Debug binaries.

  To run the Example AI Module:
    1. Open <starcraft folder>/bwapi-data/bwapi.ini and set ai to
       the path to your newly built ExampleAIModule.dll.
       
    2. Run Chaoslauncher with BWAPI Injector checked.

    3. Start Starcraft: Broodwar and create a match.

    Note: With BWAPI you can switch to windowed mode using the shortcut ALT+ENTER.
     
  To run the Example AI Client:
    1. Open <starcraft folder>/bwapi-data/bwapi.ini and comment out the ai field with a semicolon.

    2. Run Release/ExampleAIClient.exe

    3. Run Chaoslauncher with BWAPI Injector checked.

    4. Start Starcraft: Broodwar and create a match.

2. Bug Reports
--------------
   BWAPI is not perfect. As you write custom AI modules using BWAPI you may run
into bugs or other problems. We cannot find all the bugs on our own so your
feedback is invaluable and can be very helpful for improving BWAPI. When you
find a bug, please contact us on the IRC or file an issue at
   http://code.google.com/p/bwapi/issues/list

Additionally, if the program experienced an exception, then a log will be created in
   <starcraft folder>/Errors/
which may be useful.
