Skip to content

Commit

Permalink
v1.0.0, Added ML readme info
Browse files Browse the repository at this point in the history
  • Loading branch information
JoshLmao committed Mar 10, 2021
1 parent 7cd87d5 commit 15d7586
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 1 deletion.
2 changes: 1 addition & 1 deletion ProjectBoss/Config/DefaultGame.ini
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[/Script/EngineSettings.GeneralProjectSettings]
ProjectID=131FDFCC472EFA91268E9E97C4358371
ProjectName=Project Boss
ProjectVersion=0.0.1
ProjectVersion=1.0.0
CompanyName=JoshLmao
Homepage="https://joshlmao.com"
ProjectDisplayedTitle=NSLOCTEXT("[/Script/EngineSettings]", "A84CCA474F27B6FDD8E11C989ADC110C", "Project Boss")
Expand Down
Binary file modified ProjectBoss/Content/ProjectBoss/Maps/MainMenu.umap
Binary file not shown.
16 changes: 16 additions & 0 deletions ProjectBoss/Source/ProjectBoss/ML/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Machine Learning

In the project, I used linear regression on the training dataset to be able to create the best theta. Below is an overview of the architecture of the implemented machine learning model.

![ml-architecture-overview]()

The system takes 4 inputs while creating one output, the final (additional) cost. The inputs are tied to one action which allows for the data to be taken from the action after executing.

## Training Data

The application is able to track and store the relevant data needed to create an model, based off of multiple session of training. The data is stored in the ```/ProjectBoss/project-boss-ml-data.csv``` file.

Inside ```Source/ProjectBoss/Boss/GOAP/GOAPAIController.cpp```, the GOAP sequences are tracked and stored until end of play, where the data is then parsed from the sequences and then saved to the file.

### User Participation
If the user has not enabled participation on the main menu, to track and store their data, then no new training data will be appended after a play session. If participation is enabled, then the enemy should learn and train to the player's style.
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,23 @@
# Project Boss (6CS007)


[![releases](https://img.shields.io/badge/download-/releases/-green.svg?style=flat-square)](https://github.com/JoshLmao/6CS007-ProjectBoss/releases)
[![contact-twitter](https://img.shields.io/badge/twitter-JoshLmao-blue.svg?style=flat-square&logo=twitter)](https://twitter.com/joshlmao)
[![contact-website](https://img.shields.io/badge/website-joshlmao.com-lightgrey.svg?style=flat-square)](http://joshlmao.com)

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. 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.

## GOAP/ML Implementations

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

* [GOAP](./ProjectBoss/Source/ProjectBoss/Boss/GOAP/README.md)
* [Machine Learning](./ProjectBoss/Source/ProjectBoss/ML/README.md)

## Plugins

This project was made using the follow plugins:
Expand Down

0 comments on commit 15d7586

Please sign in to comment.