top of page
ryandwakeford

GOAP Based A.I - The Results

Hello and welcome back. It has been a while since I have given updates to this personal project of mine but I have returned with the results from my testing which I set out to do at the end of the last post. In this post I will be displaying the GOAP system in action. After I have demonstrated the GOAP system, I will be discussing my plans and ambitions for the future of this project.

As with any of these posts, if you haven't been keeping up to date with my progress on the A.I system, I would highly recommend heading back and reading the previous posts as I talk about the systems creation up until this point. If you have been keeping up to date, let us continue.

 

The GOAP System

Over the past couple of months I have been working on and off this project slowly adding all the different scripts I needed to ensure that my A.I was fully working. This included all the actions that the agents needed to be able to perform their roles as intended.


For testing and simplicity purposes, a lot of the actions are limited by the data that the actions had access to which allowed me to create working actions without worrying about the interactions between the implementation and usage of complex data. I will explain this in more detail later on during this post.


Due to not being an artist myself, I have sourced free to use models for this project from other creators on itch.io, OpenGameArt.org and the Unity Asset Store, ignoring the white cylinders still used to depict the agents due to inaccessibility to models and animations.


In this preview, there are 8 different jobs being completed:

  • Woodcutter - They are in charge of collecting wood for the village via chopping down trees.

  • Miner - They are in charge of collecting ores for the blacksmith to use in making weapons.

  • Blacksmith - They are in charge of smithing swords from the ore collected by the miners.

  • Stonemason - They are in charge of collecting stone for the village from the quarry.

  • Rancher - They are in charge of tending to and raising animals, collecting their produce when they are ready (such as milk from a cow)

  • Farmer - They are in charge of sowing and harvesting crops from the farms fields.

  • Miller - They are in charge of milling the wheat harvested from the farms into flour for the bakers.

  • Baker - They are in charge of baking the flour into bread for the village.

 

The Future

Now that I have a functioning system, I would love to expand on this further adding even more details to this entire project and maybe eventually moving the project from a standalone A.I testing scenario into a somewhat functioning game with gameplay features as well.


What additions I could add are really only limited to my skill at creating the necessary actions and logic as well as the overall vision of the project itself. What I mean by the vision of the project is that currently I have been creating a medieval village/city builder scenario largely influenced by the Stronghold game series by Firefly Studios. What this means is that I don't really want to be adding in high-tech style jobs and buildings, and just stick to the time period of the middle-ages.


This doesn't mean that there isn't much left to add to the project in terms of village workers. There are still jobs such as:

  • Tanners

  • Leatherworkers

  • Fletchers

  • Brewers

  • Landlords (Public houses)

  • Poleturners (Weaponsmiths with speciality in polearms)

  • Armoursmiths

  • Market Owners/Merchants

I would also love to improve the data handling and general implementation of more advanced data management methods into the project which would break the rigidity of some of the jobs and associated actions. This could be the introduction of scriptable objects for the animals and crops for the ranches and farms respectively, as well as products made within workshops and bakeries.


For example, the farm is currently hardcoded and set up to be a wheat farm, only allowing the farm to produce wheat for its output. However, with the implementation of scriptable objects and player interaction with the in-game buildings and workers, there could be a drop down option for the farm allowing the player to choose a particular crop to grow in that farm. The workers actions would that react to the specific crop that the player has asked to be sowed and then proceed to plant the correct crop.


There are also improvements that I would love to add to the overall scenario to improve the feel of the project and that is an overhaul of all the models, with the addition of proper animations and sounds for everything: the workers, animals, wildlife and foliage.


Lastly, I would love to add in combat focused agents into this A.I system. This would add another feature into the system that could then potentially help the finalised system be transitioned into a game.


With these plans in mind this project is far from over, alas a bit slow to be updated due to time limitations. However, that is it for this post. I hope you enjoyed the project I have currently created so far. As it goes, there will no longer be smaller update blogs about this post as the development on the project has started to slow down but I will endeavour to provide blog posts regarding large updates I have regarding this project, if any.


If you have enjoyed this short series and project, be sure to share this with anyone who may find this interesting and don't forget to check back regularly to see if there is any news or updates regarding this project!

1 view0 comments

Comments


bottom of page