Matthew Fisher from Stanford University wrote an interesting article about implementation of a robot on the basis of stream interception API library D3D9 (Microsoft Direct 3D, which is a part of the library DirectX).

According to the author, the robot plays StarCraft 2 (SC2) by intercepting, understanding and reacting to the D3D9 API stream, then sending keypresses and mouse commands back to the game. It is not like other robots made in the SC2 editor using a scripting language, or projects like BWAPI (it works with the original StarCraft only) that works by attaching to the address space of the host application. The robots that are based on these methods often can to bypass several restrictions that the human players must cope with; for example, they can give different orders to different units at the same time, they can see exactly what is happening off-screen at any time, and they do not have to deal with trying to click on ground units that are covered by flying units.

image
Siera 21 december 2011, 13:33