My favorites | Sign in
Logo
                
Code license: MIT License
Labels: CPlusPlus, Starcraft, Broodwar, AI, BWAI, BWAPI, API
Show all Featured downloads:
BWAPI_Beta_2.2.zip
Show all Featured wiki pages:
BWAPIManual

AIIDE 2010 Competitors

The recent speed hack was specifically for competitions such as this, so that developers can test their AIs in style. You should be able to switch between the competition's DLL and the SVN, just don't go to the competition without verifying that your AI works with their DLL!

Some users have already expressed concerns about competitors' "Starcraft know-how", so make sure you read up on some tutorials, and watch some pre-recorded games. The Starcraft community's interests and hopes are already sparked by this competition, so we expect to see some amazing results. Good luck and have fun!

Don't forget to keep in touch, we're really really nosey. Please post any problems or suggestions for BWAPI in the Issues tracker.

For those of you that don't know about the AIIDE 2010 competition, go here.

BWAPI Beta 2.2 is here!

Download link is on the right. List of changes: http://code.google.com/p/bwapi/wiki/Changes

Also join us on IRC at: QuakeNet #BWAPI

BWAPI Beta has arrived!

The Brood War Application Programming Interface (BWAPI) is a free and open source C++ framework for creating AI modules for Starcraft: Broodwar. Using BWAPI, programmers can retrieve information on players and individual units in Starcraft as well as issue a wide variety of commands to units, opening the doors for custom AIs with new micro and macro algorithms.

This is a screen shot of BWAI, an AI module created with BWAPI:

By default, BWAPI only reveals the visible parts of the game state to AI modules. Information on units that have gone back into the fog of war is denied to the AI. This enables programmers to write competitive non-cheating AIs that must plan and operate under partial information conditions. Furthermore, by default BWAPI disables the Starcraft GUI, relegating the user to the role of a spectator while the AI module plays the game. This is done to ensure that the winner of AI vs AI matches is determined solely based on the programming and algorithms in the AI module itself, rather than by human assistance and intervention.

However at the start of a match AI modules have the ability to enable one or more cheat flags, which increase the functionality of BWAPI. When an AI module enables a cheat flag, its activation is announced to all other players in the Starcraft match, which makes hosting non-cheating AI competitions and matches painless - simply disqualify AI modules that enable these flags. Currently there are two cheat flags. The first one, once enabled, provides the AI module with complete map information on all units in the game, not just visible ones. The second flag, once enabled, provides the AI with input from the user and re-enables the Starcraft GUI, allowing the user to play Starcraft along with the AI module. This allows programmers to write AI modules that use all the information on the map as well as make hybrid set-ups where human players use custom AIs and user interfaces to augment their performance.

Video of BWAI in action:

In a nutshell, with BWAPI you can:

But wait, there's more!

Writing a custom AI from scratch using BWAPI can be a daunting task, so to kick-start AI development, a number of standard add-ons have been created which execute common tasks. The Brood War Standard Add-on Library (BWSAL), provides several robust components which execute basic tasks, such as constructing buildings, training units, gathering resources, and build-order management. For people who are familiar with Broodwar's AIScripts, BWAI is an AI module under development which parses AI Scripts in a LUA syntax and feeds the commands to BWAPI and BWSAL.

Getting Started

Download the BWAPI Beta zip on the right and head over to the BWAPI Manual.

Please compile the project using a Release build.

Projects Using BWAPI

BWAPI Development

Interested in developing BWAPI?.









Hosted by Google Code