Git Product home page Git Product logo

botchallenge's Introduction

Bot Challenge

NOTE: These instructions are for contributors, if you want to try it out and use the Python API, see these docs: katharosada.github.io/botchallenge

Botchallenge is a Bukkit plugin which adds (on a separate network port) a programming interface allowing the creation of a mining bot which can move independently around the world and mine and place blocks.

This is designed for those who want an easy scriptable programming interface for Minecraft, but doesn't give total world control to all players. The bots are limited to similar rules as players. They can only see and affect the parts of the world to which they have a line of sight with a limited distance.

This creates both an interesting programming challenge and a way to have multiple people building automation for a shared world without risking destroying each other's work or the entire world. :)

How to build the server plugin

Warning: If you want to run a server you'll need a CraftBukkit or Spigot server to run it on (or anything that supports Bukkit plugins). Due to licensing concerns, these are currently hard to come by. I'd recommend getting a working server before you bother trying to build this plugin.

These instructions are for Ubuntu/Debian, but they should (in theory) translate well enough for Mac if you get the Maven, Ant and Protocol Buffer tools installed with Homebrew or package manager of your choice.

You need to first install Maven and the Google protobuffer compiler (the plugin scripting api uses protocol buffers for server/client communication so both the Python client and the server need the protocol buffer libraries and protoc compiler to generate source.)

Install Maven, the protobuf compiler and openjdk:

sudo apt-get install maven ant protobuf-compiler openjdk-7-jdk

Checkout this git repo and cd to the top-level directory then run: mvn install

In the targets directory there's a jar file called RoboMinionsPlugin, copy that jar into the plugins/ directory of your CraftBukkit server.

If you don't have a CraftBukkit server, follow the instructions at: wiki.bukkit.org/Setting_up_a_server

Setting up an Eclipse development environment

After following the build instructions above, in the repositories root directory, run:

mvn eclipse:eclipse 

This generates Eclipse workspace files which you can import into Eclipse.

You need the m2eclipse Maven plugin for Eclipse. Once that's installed, with Eclipse go File > Import... and select 'Existing Maven Projects' and point the project root directory to the root directory of your git repo.

Building and running the Python client

Again you need the protocol buffer compiler:

sudo apt-get install protobuf-compiler

OR (for Macs with homebrew):

brew install protobuf

Check that it's installed with:

which protoc

For the Python libraries, you need greenlet, twisted and the protocol buffer Python lib, you can install these with:

pip install greenlet protobuf twisted

In the proto directory, generate the Python protobuffer source with:

./gen_python.sh

Go to the client directory, and the modules are there for you to use (locally importing) if you like.

To install (again, use python3):

python setup.py build
python setup.py install

botchallenge's People

Contributors

benjamingorman avatar d0ugal avatar doismellburning avatar jhaip avatar katharosada avatar nathanator avatar rafiot avatar tsukasa-au avatar

Stargazers

 avatar

Watchers

 avatar  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.