/6CS007-ProjectBoss

🎮🤖 6CS007 year-long project artefact for implementing goal-oriented action planning (GOAP) and machine learning inside UE4. The agent is able to adapt to the enemy player's skill level

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Project Boss (6CS007)

releases contact-twitter contact-website

6CS007 year-long project artefact for implementing goal-oriented action planning (GOAP) inside UE4, where the agent is able to adapt to the enemy player's skill level by using machine learning to adjust costs and perform actions. Created using Unreal Engine 4.25.4

Project Aim

The aim of my project and this artefact is to see if I can use goal oriented action planning (GOAP) and machine learning to create an enemy that is able to adapt itself to the player, adjusting it's play style to match and create a challenging, but defeatable enemy.

Dissertation Report

The final dissertation report can be found here, which was completed for my final year of university at University of Wolverhampton in 2021. The report contains a literature review of the main elements of the artefact, as well as design, implementation and experimentation sections.

Dissertation Report: Project Boss Report v1.0

GOAP/ML Implementations

For more information on the implementations of GOAP and ML, please read the specific README.md files for each.

Plugins

This project was made using the follow plugins:

Project Install Instructions

Setup Instructions

  1. Clone the repository to your system
  2. Install Unreal Engine 4.25.4 & Python v3.6.8
  3. Install the required prerequisites assets in Prerequisites.md
  4. Run the install-py-requirements.bat file to install the required Python packages
  5. Right click ProjectBoss.uproject and select Generate Visual Studio project files...
  6. Launch the project

Set your Python Directory for UnrealEnginePython

You can specify which Python is used by changing the pythonHome variable inside /ProjectBoss/Plugins/UnrealEnginePython/Source/UnrealEnginePython/UnrealEnginePython.Build.cs

Packaging

Check out the package guide for more information on deploy/packaging/shipping the game

Logging

The project logs out useful gameplay information related to abilities, health, damage, machine learning, the GOAP system, etc. There are a handful of custom log categories that can be used to filter the logs. The full list can be found here under the region, Logs.

In the packaged build, the logs can be found at [PackagedBuild]/ProjectBoss/Saved/Logs/

Questionnaire

Once users have played at least 5 games of Project Boss, they are asked to complete this questionnaire form for feedback. The questions are relevant to their experience and also gives the users a chance to provide feedback on the game.