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
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.
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
For more information on the implementations of GOAP and ML, please read the specific README.md
files for each.
This project was made using the follow plugins:
- GOAP NPC Plugin for Unreal Engine
- (This project contains edits to this plugin. Check
/ProjectBoss/Plugins/GOAP/
for source)
- (This project contains edits to this plugin. Check
- UnrealEnginePython
- (Using davidjo's 'Building4.25' branch)
- (davidjo's Building4.25 branch cloned for backup)
- Clone the repository to your system
- Install Unreal Engine 4.25.4 & Python v3.6.8
- Install the required prerequisites assets in
Prerequisites.md
- Run the install-py-requirements.bat file to install the required Python packages
- Or install the Python requirements in
py-requirements.txt
if you can't run.bat
files
- Or install the Python requirements in
- Right click
ProjectBoss.uproject
and selectGenerate Visual Studio project files...
- Launch the project
You can specify which Python is used by changing the pythonHome
variable inside /ProjectBoss/Plugins/UnrealEnginePython/Source/UnrealEnginePython/UnrealEnginePython.Build.cs
Check out the package guide for more information on deploy/packaging/shipping the game
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/
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.