Code Monkey home page Code Monkey logo

overmind's Introduction

Overmind Screeps AI Build Status

  • See the changelog for patch notes
  • Documentation is available in the wiki
  • Join the discussion in the #overmind Slack channel!
  • Submit an issue here
  • Request a feature here
  • Development roadmap can be seen here
  • Find me in game here

About Overmind

What is Screeps?

Screeps is an MMO strategy game for programmers. The core objective is to expand your colony, gathering resources and fighting other players along the way. To control your units, you code an AI in JavaScript; everything from moving, mining, building, fighting, and trading is entirely driven by your code. Because Screeps is an MMO, it takes place on a single server that runs 24/7, populated by every other player and their army of creeps. When you log off, your population continues buzzing away with whatever task you set them. Screeps pits your programming prowess head-to-head with other people to see who can think of the most efficient methods of completing tasks or imagine new ways to defeat enemies.

What is Overmind?

Overmind is my personal codebase that I run on the public server. The structure of the AI is themed loosely around the Zerg's swarm intelligence from Starcraft. Overlords orchestrate Creep actions within each Colony, and the colony Overseer places Directives to adapt to stimuli.

The AI is nearly entirely automated - the only manual input required is claiming new rooms and choosing a building layout. The latest release should work right out of the box; however, if you find something broken, please submit an issue and I'll try to fix it.

Can I use Overmind as my bot?

If you're new to Screeps, I would definitely recommend writing your own AI: most of the fun of the game is programming your own bot and watching your little ant farm run! However, I've tried to make the codebase readable and well-documented, so feel free to fork the project or use it as inspiration when writing your AI.

If you still want to use Overmind on the public server, that's okay too - there are a number of people already doing this. But please realize that using a mature AI like this gives you a huge advantage over other new players, so don't go out of your way to ruin someone else's fun. In the future, I will be implementing methods for novice players to opt out of excessive aggression by Overmind bots (as long as they don't start a conflict and stay out of its way).

Installation

Out of the box

If you just want to run Overmind without modification, you can copy the compiled main.js file attached to the latest release into your script. Please note that Overmind is not (yet) fully automated; refer to the Overmind wiki for how to run the bot.

Compiling from source

To install the full codebase, download or clone the repository. (Please note that while the latest release of Overmind should always be stable, the latest commit may contain unstable features.) Navigate to the Overmind root directory and run npm install. To compile and deploy the codebase, create a screeps.json file from the example file, then do one of the following actions:

  • Compile and deploy to public server: npm run push-main
  • Compile and deploy to private server: npm run push-pserver
  • Compile without deploying: npm run compile

The deployment scripts are based on screeps-typescript-starter; for additional help, refer to their GitBook.

Setting up the Grafana dashboard

Overmind includes a Grafana dashboard (shown below) which tracks detailed operating statistics. To set up the dashboard:

  1. Register for grafana service at screepspl.us
  2. Setup the Grafana agent. I would suggest running it on a free micro instance of Google Compute.
  3. Import the dashboard from Overmind.json and change $User to your username. (Make sure to use Grafana 5! screepspl.us/grafana5)

Design overview

Check out the Overmind wiki for in-depth explanations of parts of the design of the AI. (Click the diagram below to see a higher-resolution version.)

AI structural schematic

overmind's People

Contributors

bencbartlett avatar coolfeather2 avatar rooklion avatar schealex 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.