Giter Club home page Giter Club logo

fishing_bot's Introduction

fishing_bot

Bot for World of Warcraft 3.3.5 to use computer vision in order to perform the in-game fishing mechanic.

General Algorithm

The bot sends a keystroke to throw the bobber in the water. Then it takes a screenshot and uses a convolutional neural network to find the bobber location (see detection algorithm). After that, it captures the specific part of the screen constantly until a certain luminosity threshold is exceeded, which means that the bobber has sunken, releasing bright water particles. Then it sends a mouse right click at the location of the bobber to capture the fish.

Detection algorithm

The core of the detection algorithm is a neural network able to decide whether a bobber is present in an image or not. Its architecture consists of convolutional layers with max pooling layes in between and followed by some linear layers. It takes an 2D colored image as input and outputs the probability of a bobber being present.

This neural network was trained by a computer generated dataset. Each positive image in this dataset contains a randomly rotated, translated and scaled instance of a rotoscoped bobber in front of a randomly zoomed background (out of many captured in-game backgrounds) with added noise. Each negative image contains only the noised background. The backgrounds have random rectangles blacked out for reasons that will become obvious later. To detect the position of the bobber using this neural network the following algorithm is used:

  1. The neural network is applied to a sliding window with a fairly large size to find the general area of the bobber.
  2. The window with the highest probability is then split through its max length axis to two or three parts. Only one of these parts is alternatingly kept, while the others are blackened out. The products of this process is passed through the network to locate the subwindow in which the bobber lies.
  3. If the dimensions of the subwindow are small enough, the process terminates, else we repeat step 2 to the subwindow.

Authors

Disclaimer

This bot was not used for cheating but purely for research purposes.

fishing_bot's People

Contributors

dspil avatar

Watchers

 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.