darkmatter2222 / EVE-Online-Bot

A Bot to play Eve Online leveraging various methods including popular machine learning tools. At this point, its a full blown AI.
MIT License
96 stars 19 forks source link
ai automation bot classification convolutional-neural-networks eve eve-online game image-classification image-processing machine-learning mining online pyautogui python r-cnn screenscraping tensorflow

EVE Online Bot

:star: Consider leaving a Star on GitHub — Great motivation to continue development!

TensorFlow

:warning: WARNING
This is for educational Purposes only. Authors of this Repo or associated repos take no responsibility for its usage.

Table Of Contents

:gift:Features

The following are features of this bot and for the most part, work out of the box after the user has configured their environment.

:bulb:Objectives

Objectives are high level functions where all the rules to accomplish the particular objective have been aggregated and normalized into a sequence of events.
Some objectives can be short lived such as navigating waypoints. Other objectives can consume an entire session such as mining.

:construction:Auto Miner

This objective consumes the entire session, and in fact, will create its own session and manage both the launcher and login process. This bot was built to be a One Click start and will manage itself.
Key Features:

ML Component:

Pixel Density Component:

Tesseract Component:

ML Component:

Pixel Density Component:

Tesseract Component:

:wrench:Sub Functions

:office:Architecture

alt text

:floppy_disk:Installation

This bot consumes your mouse and keyboard, good for running on standalone PC.

:clipboard:Requirements

  1. 1920x1080 Monitor
  2. UI set to 125% scaling (tesseract needs this)
  3. UI Windows locked and transparency disabled
  4. Eve Online running full screen or windowed
  5. Create your virtual environment (python 3.9)
  6. Install requirements (pip install -r requirements.txt)
  7. Install your tensorflow of choice:
    • pip install tensorflow (recommended, for CPU only)
    • pip install tensorflow-gpu (will require additional GPU setup, not recommended)

:page_with_curl:Settings

Working on a YT video for this. You will need to configure this for your personal setup. Some of this config is done by hand, the rest is done by an overlay tool.

General Config

In this config file, under "default.general", set "log_dir", "monitor_number", and "eve_launcher" to your appropriate settings:

"general": {
    "log_dir": "\\\\databrick\\N\\eve_logs",
    "monitor_number": 2,
    "eve_launcher": "D:\\EVE\\Launcher\\evelauncher.exe"
},

Note 'monitor_number' is just a random number the toolkit assigns to your monitors. if you only have 1 monitor, set the value to 0. Experiment what number is yours in the next step.

"mongo_logging": {
    "mining_bot": {
        "mongo_host": "mongodb+srv://cluster0.ufnlr1u.mongodb.net/?retryWrites=true&w=majority",
        "mongo_authMechanism": "SCRAM-SHA-256",
        "db_name": "Eve",
        "collection_name": "History"
  }
}

Note To disable Mongo Logging, just delete 'mining_bot' dictionary from the config.

ml_botting_core

Note You wont need to alter anything under, 'ml_botting_core' if you are using the repo as intended. 'ml_botting_core' feeds directly into, ml-botting-core

Static Screen Locations

Out of the box, the following command would work, we are starting the Overlay tooling to set your static clicking and reading space.

Start_AI_Pilot.py --config_file "AI_Pilot\ai_pilot_config_v2.json" --setup_mode 1

Your objective, click and drag the dots to align with how it appears below.

Note

  • Set your UI Scaling to 125%
  • Set your UI Transparency to 0%
  • Lock your windows and be sure they are not obstructed (sett he chat window to be in a non invasive location)

Running Miner

Very simple, will auto start the game client.

Start_AI_Pilot.py --config_file "AI_Pilot\ai_pilot_config_v2.json" --headless_miner 1
Setting up Locations:

Set up about 9 locations and have the names added to the list in the config file under node "mining_sites", Be sure to add a "Home" location for unloading.

Running Project Discovery

Have the game open, have project discovery open and have already configured the two PD Ranges and Click Target.

Start_AI_Pilot.py --config_file "AI_Pilot\ai_pilot_config_v2.json" --headless_project_discovery 1
"click_target_pd_submit_target": [
    1173,
    696
],
"range_pd_top": [
    101,
    458,
    567,
    682
],
"range_pd_bottom": [
    101,
    214,
    571,
    424
],