This post is the first in a series on creating a bot for the game Path of Exile based on deep learning and other machine learning techniques. The goal of the project is to create a bot that operates based on visual input, is able to navigate levels successfully, can defend itself, and of course to have fun and learn something in the process.
Path of Exile is a hack-and-slash style RPG similar to Diablo, Titan Quest, etc. A screenshot from the game is shown below in Figure 1.
Figure 1: Screenshot of Path of Exile
The player interacts with the game primarily by using the mouse to move, attack monster, open chests, etc. Keyboard hotkeys are also used for special attacks, potions, and menu shortcuts.
The idea for the bot is to use a Convolutional Neural Network (CNN) to classify images from the game in order to build an internal representation of the world. This internal representation of the world is then to used to guide the character through the world. The basic idea of the bot is represented in Figure 2 as a flowchart.
Figure 2: Flowchart of Bot Logic
The main loop of the bot program takes a still image from the game and passes it to a CNN. The CNN predicts what is occurring in the still image. These predictions are then passed to an internal map of the world. The internal map of the world is then updated based on the latest predictions. Given the present state of the internal map of the world, a number of actions are generated. Finally, these actions are then translated into mouse and keyboard input and sent to the mouse and keyboard. The loop is repeated indefinitely. Easy, right? Right.
The programming language chosen is Python (3.6). The primary libraries to be used are:
Subsequent blog posts will explore breaking down the above components further and implementing them.
Disclaimer: Path of Exile is a copyright of Grinding Gear Games. The purpose of this series is to explore robotic systems and deep learning. No copyright infringement is intended.