Code Monkey home page Code Monkey logo

razeandplunder's Introduction

Raze and Plunder (RnP) and Kittens

RnP (and Kittens) is a C++ Starcraft BWAPI Bot, based on OpprimoBot https://github.com/jhagelback/OpprimoBot upgraded to BWTA2 and pieces refactored to more modern and safer C++.

Features

  • Razing and Plundering are work in progress.
  • Kittens are TODO.

Building

Build system was changed from VS2013 project to CMake, which in turn generates a VS2013 project, but also opens possibilities to reach other build systems such as MinGW32 on Windows or Linux (compile only, requires Microsoft linker or a Visual Studio 2013 environment).

Dependencies

Step by step Windows/VS2013

  • Run the included script cmake-vs2013.bat, a new directory cmake-vs/ will be created which contains the Visual Studio solution.
  • Open the solution in Visual Studio. Do not edit project settings, but instead edit CMakeLists.txt

Step by step GCC/MinGW or Linux

NOTE this method can compile only at the moment, not link.

  • You will need to install MinGW (mingw32 on Ubuntu or download a Windows version)
  • Linking is not working due to Microsoft libraries being not compatible with MinGW linker.

Opprimo Readme

OpprimoBot is an AI bot for Starcraft:Broodwar. It uses the BWAPI project to communicate with the Starcraft engine. It can play all three races on (almost) all maps, but works best with Terrans.

Opprimobot (and its precursor BTHAI) is developed by Dr. Johan Hagelbäck, Assistant Professor in Artificial Intelligence at Linnaeus University, Växjö, Sweden. You can contact the author at [email protected].

Opprimobot is free to use (MIT license) in your own research or education projects. The only requirement is that if you publish anything that is based on Opprimobot (or BTHAI), add the following reference:

Johan Hagelbäck. "Potential-Field Based navigation in Starcraft". In Proceedings of 2012 IEEE Conference on Computational Intelligence and Games (CIG), 2012

razeandplunder's People

Contributors

kvakvs avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

razeandplunder's Issues

question about cmake, mingw and dll

Hello friend.

I want to make a bwbot, but I stuck in the build phase on non-windows platform. Your project is very cool, and I notice it use cmake and mingw.

I am try to imitate your cmake file to work with the bwapi/ExampleAIModule, as I know, the AIModule should build a .dll file, but if I use

add_library(${PROJECT_NAME} STATIC
   ${SRC_FILES}
)

it will only output a .a file.

add_library(${PROJECT_NAME} SHARED
   ${SRC_FILES}
)

I will alway get errors of unrecognized options -install_name.

I am using wine to run StarCraft.exe, and I think if I can build AIModule with mingw, use chaoslaucher to lauch my AIModule, then I can develop my bot on non-windows platform. BTW, I am also wonder what the AIClient use for?

You've done great job, would you mind make some notes about how to develop bwbot on linux or mac OS X, it would be very helpful to guys like me.

Chokepoint for defenses is not optimal

Bunkers are built at often good, but sometimes bad locations.
Maybe use some exploration knowledge?
Maybe choose defense position closer to the base?

Building locations are off the base

Pathing and distance calculation issue, likely
BWEM calculates chokepoint paths while old BWTA gave tile-perfect paths, so the code in some places assumes distance of 1 between path nodes.

cmake mingw BWAPI-Client-Static BWAPI-Static not exist

I ran sh cmake-mingw.sh at MacOS got the error:

CMake Error at CMakeLists.txt:363 (ADD_DEPENDENCIES):
  The dependency target "BWAPI-Client-Static" of target "rnpbot-client" does not exist.

CMake Error at CMakeLists.txt:362 (ADD_DEPENDENCIES):
  The dependency target "BWAPI-Static" of target "rnpbot-client" does not  exist.

Anything I missed to initialize the project?

Build orders suck

Add a healthy mix of premade builds + logic to calculate build paths
BOSS maybe or something GOAP based?
Configuration files for premade builds

Premade strategies

Create configuration format for different strategies and let the bot pick one.
Consider possible strategy change if the bot considers that situation has changed to a disadvantage
(a directed graph between strats maybe?)

Scouting

Consider making scouting strategies, also later scouting.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.