Giter Site home page Giter Site logo

kbot's Introduction

KBot

A simple, built-from-scratch Starcraft bot using BWAPI and modern C++.

Build status

Branch Visual Studio GCC & Clang
master Build status Build Status
development Build status Build Status

KBot is developed with Visual Studio 2017 on Windows but build services ensure it can be compiled on Linux with GCC and clang as well.

Quick build with Visual Studio

Run build.sh from VS 2017 Command Prompt to build BWAPI and KBot for debug and release.

Concepts and Structure of KBot

Incomplete but gotta start somewhere. ;-)

KBot is built in a hierarchical manner that is reflected in its classes.

Structure

Looking at the following list, the higher level item usually holds the class instances of its subordinated items.

  • KBot: Implements the BWAPI interface.
    • Manager: Handles all economic units and tasks.
      • Base: Abstraction of a base. (depot, minerals, workers...)
      • BuildTask: Abstraction of a unit to be created.
    • General: Handles all military units and tasks.
      • Squad: A group of military units sharing a task.
    • Enemy: Informational data base about the enemy.

Ownership

A few lines of unit ownership in KBot.

SSCAIT

KBot is running on SSCAIT. Vote for it to see it play on Stream. :)

kbot's People

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

kbot's Issues

Groups don't like tight spaces

I was watching your bot compete! I liked a lot of the fundamentals and data it presented, but I noticed an issue that I am not sure you are yet aware of.

With sufficiently large squads, your bot will try to move through a narrow space to attack or explore behind the bottleneck. However, it seems the bottleneck starts to separate your squad too much, which the bot appears to not like, and so instead gathers the squad up before trying again.

It may be worth trying to allow your bot to separate squads into smaller squads, and allowing multiple groups to work in tandem (thus a battle group would stay loosely together, while the squads could still stay tightly together). Hope it helps, but I don't know where else to throw this at you. :)

Bot immediately crashes in debug mode.

Maybe a problem with BWEM? Timeout in map initialization or something like that?
For some reason Visual Studio complains about missing debug symbols on crash, so it's hard to investigate.

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.