Home

Awesome

Code and data used in the "GAN-Aimbots: Using Machine Learning for Cheating in First Person Shooters", to be published in IEEE Transactions on Games (early access version here).

Note: Code quality is best classified as "researchy", mixed with bad case of not following code styles.

For data, see this Zenodo record.

Contents and overview

Requirements

Playing with the aimbots in ViZDoom only works on Windows!

Experiments were ran on Python 3.6, but should work on any Python 3.x. For other requirements, see requirements.txt.

Note: To compare different classifiers, you also need to install auto-sklearn.

Running the experiments

To repeat the experiments in paper with shared data, run ./scripts/run_all.sh in the root directory. If all works out, this should train DNN classifiers in different setups and evaluate them, and results should match closely to what was reported in the paper. This will also train the GAN-Aimbots, but they are not used for the results, as that would require data collection.

The whole process should take well less than a hour. No GPU is needed.

All results will be printed out in the console window and figures are placed under figures directory.

Trying out the game

Run one of the data_collection_* scripts to try out the game and different aimbots. For a newcomer, we recommend playing data_collection_performance.py (takes 30min) which will let you play with and without all aimbots used in the work.

Data collection scripts

Scripts starting with data_collection_* are Python scripts that were used to gather the data, in their original form (including the messages to users). These were packed into single executable files (.exe) using PyInstaller.

Launching any of the following scripts prompts user to agree with a consent agreement, and after agreeing launches a Doom game with or without aimbots. Data is stored in the same directory where script was launched.