GithubHelp home page GithubHelp logo

sonophoto / soar-sc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bluechill/soar-sc

0.0 2.0 0.0 293.72 MB

Soar-SC, Soar Starcraft AI

C++ 43.36% AutoHotkey 0.01% Makefile 0.32% Batchfile 0.20% Shell 0.71% Lua 13.95% HTML 7.73% Groff 0.17% CSS 0.02% C 33.40% Objective-C 0.15%

soar-sc's Introduction

Soar-SC

Soar-SC stands for Soar-StarCraft. Soar-SC is an Artificial Intelligence (AI) research platform made, maintained, and updated by Alex Turner. The AI plays StarCraft: Brood War (Not StarCraft 2!). The platform consists of the middleware and an agent capable of playing and beating the built-in StarCraft AIs on up to and including the 'Difficult' setting (the 2nd hardest difficultly behind 'Insane').

Soar-SC uses the Soar Cognitive Architecture made at the University of Michigan. It also uses an extension to Soar called SVS which stands for Spatial Vision System. SVS allows a Soar Agent to do spatial reasoning. Soar-SC uses a beta version of SVS and because of this there are still some bugs that SVS is the cause of.

Soar-SC also uses the Brood War Application Programing Interface, shorten to BWAPI. It uses version 4 of BWAPI, currently in beta. This means that there are bugs that occur which are not related to Soar-SC but will cause the entire system to crash occasionally. These bugs will hopefully be fixed by the time BWAPI v4 is out of beta and is stable.

The middleware of Soar-SC interfaces between BWAPI and Soar, which contains the AI portion of Soar-Sc. It does this by having two seperate queues and seperate threads which a class, called Soar-SC, keeps in sync and maintains. Soar_Link is the link to Soar and BWAPI_Link is the link to BWAPI.

Soar-SC also uses a custom viewer for SVS which is easier to use in a Real-Time Strategy Game (RTS) like StarCraft. The custom viewer is based on Zenilib v4, written by a University of Michigan graduate student.

The AI Portion of Soar-SC can gather minerals, build units such as SCVs and marines, build and place buildings without the need to have predetermined locations for them and will attack in "groups" of marines. The AI can only play as Terran currently.

List of current goals and work

Completed goals and work

  • Better Terrain Algorithm for parsing a map (flood fill)

  • Displaying updates about the Agent through the StarCraft user interface

  • By default using watch 0 and outputting using RHS rules

  • Virtual Objects (No more predetermined build locations)

  • Reoccurring Scouting (The AI will continuously scout a map even after it has explored the entire map)

  • No more rushing (The AI will not attack as soon as it build marines)

Future Work

  • Group Unit attacks (no longer attack units with only 1 other unit unless desired)

  • Attack closest enemy (better attack strategy)

  • Add middleware support for playing as Protoss or Zerg (Almost there right now but there are bugs and other minor issues to fix)

  • Fix the bugs regarding the AI playing against enemies other than Terran

  • Add support for attacking in concaves (concaves are when you attack using a group of units and using the group to surround the enemy in a half/full circle as you attack)

  • No longer use GetCommand and a few other things so we can optimize the middleware and Soar to be even faster at running the agent. This includings no longer tracking output link or input-link changes.

  • Make the middleware AI architecture independent (ie. make it easy to switch between arbitrary architectures such as CSoar and JSoar).

Very far Future work

  • Better attack strategies

  • Better base building strategies

  • Better scouting strategies

  • Reinforcement learning

  • Utilize the other memories of Soar such as semantic and episodic memory

soar-sc's People

Contributors

bluechill avatar

Watchers

 avatar  avatar

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.