What is this?
AI Village is a project that I am currently working on at university for my final year project. This project has completely been made with Blueprint. I am making full use of EQS and behavior trees on the AI. My aim is to try create a small village of AI that will go about there daily lives, similar to the Sims. I hope to have the AI interact with most house hold objects, that will affect them in some way. So interacting with food will feed the AI and so on. AI will also interact with each other and be able to detect and avoid hazards. The player will be able to interact with the AI by creating hazards for them to deal with, or help them by placing useful objects in the world. These hazards may have AI of there own, for example a zombie hazard. Players will also be able to posses some hazards such as the zombie hazard to make things harder or easier for the AI, depending on what the player did as the zombie AI.
How does it work
The AI actions are mainly based on the meters they have. Each AI have several meters that deplete over time. Some of these meters are health, hunger, stamina, energy, balder, hygiene and social. More meters may be added if needed and I think they will help. I have each meter depleting at different rates over time except the energy meter and stamina. Energy is calculated off the AI’s stamina and hunger and can not be edited by the player. The stamina meter is depleted if the AI is moving, and if they are still it will increase. Once a meter is low enough the AI will begin to desire that meter. From this the AI finds objects that will improve that meter and use them. Each meter is weighted differently, so health takes priority over everything then its hunger. This helps the AI decide if they should eat before sleeping for example. Player can adjust the meters as they wish to test the AI or make conditions harder for them. You can also make the meters deplete faster by giving the AI an illness.
The meters and AI stats are all displayed on UMG elements that can be seen by clicking on the AI or an object. Clicking on AI will show its current meters and allow you to adjust them. You can also hide selected meter lists and give affects to the AI. Clicking on an object will show how that object will affect the AI.
The player is able to build objects into the world to help or hinder the AII have created object pools for objects and hazards that can be placed in the world. Once the player enters build mode they are able to select from a list the different objects or hazards available and place them in the world. AI can then interact with these objects or hazards in some way. For hazards I currently have the zombie that will attack the closest AI civilian, this still needs a lot of work. But I also have a fire that can be placed on objects. This fire will then spread to nearby objects setting them on fire to. Burnt objects can not be used by the AI until they are fixed.
Current improvements and ideas to add
I currently have some improvements and ideas that I would like to add, if I have time. These include more hazards and objects for the AI to interact with. Mainly objects that can improve the AI in more ways, but at different amounts compared to other objects. This is so I can add some sort of judgement to the AI. Getting the AI to check if a object will be more hassle to interact with than another. The idea is to check the distance from different objects and calculate the amount gained compared to the time it would take to travail to it, or use it. So AI might choose to interact with a close object that gives them less meter values rather than travail a distance to one that gives them more. This would be useful if the AI needed a meter to be increased quickly.
I would also like to add some sort of day and night cycle so AI will be more likely go to sleep at night. This could also make some hazards more dangerous at night, like the zombie. A strength meter will be nice to allow the AI to check its strength and see if it can fight an enemy or not.
I have more ideas and improvements that I would like to make and i’m going to try and add as many as I can.
Here is a short video to show of my current progress on the AI:
Here is another video that demonstrates the fire hazard and build mode:
Thank you for looking at my work. I hope you enjoy it. please feel free to add any comments or give me advise, I will much appreciate it.