All Projects → neumond → pybrood

neumond / pybrood

Licence: MIT license
Another BWAPI Python binding made with pybind11

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pybrood

ZZZKBot
ZZZKBot is a bot (AI) for Starcraft: Broodwar. It is designed to compete against other bots. It is not designed to compete against humans. It uses BWAPI as an API for interacting with Starcraft: Broodwar. I am not intending to support/maintain/develop ZZZKBot in future, although I haven't ruled it out either.
Stars: ✭ 57 (+280%)
Mutual labels:  bwapi, broodwar
JBWAPI
Pure Java BWAPI Client implementation for JVM languages
Stars: ✭ 16 (+6.67%)
Mutual labels:  bwapi, broodwar
Bwapi
Brood War API
Stars: ✭ 1,482 (+9780%)
Mutual labels:  bwapi, broodwar
Gtk Fortran
A GTK / Fortran binding
Stars: ✭ 171 (+1040%)
Mutual labels:  binding
Raylib Cs
C# bindings for raylib, a simple and easy-to-use library to learn videogames programming
Stars: ✭ 182 (+1113.33%)
Mutual labels:  binding
tree-sitter.el
An Emacs dynamic module exposing tree-sitter.
Stars: ✭ 59 (+293.33%)
Mutual labels:  binding
dragome-sdk
Dragome is a tool for creating client side web applications in pure Java (JVM) language.
Stars: ✭ 79 (+426.67%)
Mutual labels:  binding
Node Postal
NodeJS bindings to libpostal for fast international address parsing/normalization
Stars: ✭ 165 (+1000%)
Mutual labels:  binding
luacc
Lua Code Combine
Stars: ✭ 36 (+140%)
Mutual labels:  binding
Rustler
Safe Rust bridge for creating Erlang NIF functions
Stars: ✭ 3,052 (+20246.67%)
Mutual labels:  binding
Kaguya
C++ binding to Lua
Stars: ✭ 247 (+1546.67%)
Mutual labels:  binding
Cairocffi
CFFI-based cairo bindings for Python.
Stars: ✭ 186 (+1140%)
Mutual labels:  binding
jsvm
Embeddable JavaScript Virtual Machine interface for Android, powered by Duktape.
Stars: ✭ 18 (+20%)
Mutual labels:  binding
Proposal Smart Pipelines
Old archived draft proposal for smart pipelines. Go to the new Hack-pipes proposal at js-choi/proposal-hack-pipes.
Stars: ✭ 177 (+1080%)
Mutual labels:  binding
screp
StarCraft - Brood War replay parser
Stars: ✭ 71 (+373.33%)
Mutual labels:  broodwar
Node Tree Sitter
Node.js bindings for tree-sitter
Stars: ✭ 172 (+1046.67%)
Mutual labels:  binding
necktie
Necktie – a simple DOM binding tool
Stars: ✭ 43 (+186.67%)
Mutual labels:  binding
Nimterop
Nimterop is a Nim package that aims to make C/C++ interop seamless
Stars: ✭ 244 (+1526.67%)
Mutual labels:  binding
Rxdatasources
UITableView and UICollectionView Data Sources for RxSwift (sections, animated updates, editing ...)
Stars: ✭ 2,784 (+18460%)
Mutual labels:  binding
VIZIA
A declarative GUI library written in Rust
Stars: ✭ 551 (+3573.33%)
Mutual labels:  binding

Pybrood

docs

Binding made as from-scratch code generator, outputting msvc project.

Precompiled installation

Requirements:

  • Windows 7 32 bit (just exactly SSCAIT requirement) NOTE: I couldn't successfully run BWAPI injector under Wine, although recently I've been told it's possible.
  • Python 3.5
  • Installed BWAPI and SC
pip install pybrood

Documentation

Read the docs

Compiling from source

Additional requirements:

Building BWAPI.lib and BWAPIClient.lib

You may experience "access denied" errors while working directly in "program files/BWAPI". Better use separately cloned git repo of BWAPI where you have full access.

For msbuild invocation use special VC++ related cmd shell from Launch menu. Otherwise you can use usual cmd shell.

  1. Make some changes in bwapi source files first:

    • disable mass file copying in bwapi/BWAPILIB/BWAPILIB.vcxproj:

      • line 64: <PreLinkEvent><!-- PreLinkEvent>
      • line 94: </PreLinkEvent></PreLinkEvent -->
    • create file bwapi/svnrev.h:

      Figure out revision number:

      cd bwapi
      echo $(( $(git rev-list HEAD --count) + 2383 ))
      static const int SVN_REV = 4708;
      #include "starcraftver.h"

      This prevents "Client and Server are not compatible" error.

  2. Build BWAPI.lib:

    cd bwapi\BWAPILIB\
    msbuild /p:PlatformToolset=v140 /p:Configuration=Release /p:Platform=Win32
    

    Output file is bwapi/lib/BWAPI.lib.

  3. Build BWAPIClient.lib:

    cd bwapi\BWAPIClient\
    msbuild /p:PlatformToolset=v140 /p:Configuration=Release /p:Platform=Win32
    

    Output file is bwapi/lib/BWAPIClient.lib.

Building Pybrood

  1. pip install -r generator/requirements.txt
  2. Setup paths in generator/config.py.
  3. Run the generator python3.5 -m generator.
  4. cd to freshly generated output folder and run build.bat (it's just the same msbuild command).
  5. Copy/symlink output/Release/inner.pyd into pybrood directory. inner.pyd is a required submodule of pybrood.
  6. Now you should be able to import pybrood.
  7. Optionally you can build your local copy of documentation:
    cd output/docs/
    sphinx-build . -b html _build/html
    
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].