xyzzy529 / TooAngel-AI

Artificial intelligence for screeps

Home Page:https://screeps.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TooAngel Artificial intelligence for screeps

Codacy Badge CircleCI Code Climate npm version slack discord

https://screeps.com/

See rendered version: http://tooangel.github.io/screeps/

Quests

Head over to Quests

For in game room visitors:

Happy to see you visiting one of our rooms. Visit FAQ to find answers

Info

This is the AI I'm using for screeps. I managed to reach Top 10 from November 2015 - March 2016. Main Goal is to automate everything, no manual interaction needed.

The AI is deployable on a private screeps server, follow the information on Steam or npm install screeps-bot-tooangel and bots.spawn('screeps-bot-tooangel', ROOMNAME)

Note

This is not a good example for code quality or structure, most LOCs written while fighting or other occasions which needed quick fixes or in the ingame editor (getting better :-)). But I think there are a couple of funny ideas. Every contribution is welcome.

Features

Tweaking

Add a src/friends.js with player names to ignore them from all attack considerations.

E.g.: module.exports = ['TooAngel'];

Add a src/config_local.js to overwrite configuration values. Copy config_local.js.example to src/config_local.js as an example. src/config.js has the default values.

Debugging

Within the config_local.js certain config.debug flags can be enabled. To add debug messages Room.debugLog(TYPE, MESSAGE) and Creep.creepLog(MESSAGE) are suggested. Especially the creepLog allows granular output of the creep behavior based on the room and the creep role.

Upload

install dependencies

npm install

add your account credentials

to screeps.com

To deploy to the live server provide the credentials.

via env

export email=EMAIL
export password=PASSWORD

via git ignored file

echo "module.exports = { email: 'your-email@here.tld', password: 'your-secret' };" > account.screeps.com.js

or edit and rename account.screeps.com.js.sample to account.screeps.com.js

And deploy to the server:

grunt

to private server

Create a .localSync.js file with content:

module.exports = [{
  cwd: 'src',
  src: [
    '*.js'
  ],
  dest: '$HOME/.config/Screeps/scripts/SERVER/default',
}];
grunt local

Develop

grunt dev

Release

Releasing to npm is done automatically by increasing the version and merging to master.

npm version 10.0.1
git push --follow-tags

Every deploy to master is automatically deployed to the live tooangel account.

Testing

node utils/test.js will start a private server and add some bots as test cases. Within in the tmp-test-server directory the server can be easily started via screeps start.

Design

More details of the AI design

About

Artificial intelligence for screeps

https://screeps.com

License:GNU Affero General Public License v3.0


Languages

Language:JavaScript 100.0%