Simulating Personality and Emotion in AI Agents through Individual-Based Modelling

This is a 2D simulation that was created for my Final Year Project at the University of Staffordshire. Made entirely in C++.

The agents within this simulation complete actions and receive emotional responses from this and other stimuli, which affects their overall emotional state and influences future actions. Each agent has 6 randomised traits that modify the personality of the agent, which in turn alters the intensity of certain emotions (the effects of this can be seen in the bottom table). This means some agents may feel certain emotions much more strongly than others. When an agent has a dominant emotion, they will change to the relevant colour shown in the pie chart.

Each agent has hunger, thirst, and social needs which the agent must fulfil. The lowest need becomes the next goal for the agent to complete. 

Every agent can be clicked on to display all needs, emotion values, personality values, and completed actions of the selected agent and can be viewed in the side-bar (you may need to scroll down). 

When an agent completes an action, the emotional response is visually represented via an emote displayed in a speech bubble above the agent:

EmotionIcon shown
Surprise
Anticipation
Disgust
Joy
Anger
Fear
Trust
Sadness

The traits and personality effects can be seen here:

 Factors High Score Traits Low Score Traits Effect On Emotion As Factor Increases
Openness Creative Curious Complex Uncreative Conventional Narrow-minded -Surprise +Trust +Joy -Fear -Anticipation -Sadness -Disgust
Conscientiousness Reliable Careful Self-disciplined Disorganised Undependable Negligent +Sadness -Anger +Anticipation
Extraversion Sociable Friendly Talkative Introverted Quiet Reserved +Trust +Joy +Sadness -Anticipation
Agreeableness Sympathetic Forgiving Courteous Critical Rude Harsh +Joy +Surprise +Trust -Anticipation -Disgust
Neuroticism Nervous Insecure Worrying Calm Relaxed Secure +Anger +Surprise -Trust +Disgust +Fear -Joy +Anticipation +Sadness

High Score traits will elicit the effects shown on the table. Low score traits will elicit the opposite response.

For the full breakdown of the project, read my portfolio post here.

Updated 4 hours ago
Published 1 day ago
StatusPrototype
CategoryOther
PlatformsHTML5
AuthorKacey Halstead
GenreSimulation
Made withSDL, Piskel
Tags2D
Average sessionA few minutes
LanguagesEnglish
InputsMouse
AccessibilityOne button

Leave a comment

Log in with itch.io to leave a comment.