Genre -- Meaningful Game; First-Person; Story
Team Size -- 4
Individual Role -- Lead Programmer
Techniques & Software -- Unity Engine; Ink Narrative Scripting
Inspirations -- Real Life; Social Anxiety; Relationships
Your friend Alex has invited you to a party soon after you both arrived at college. He wants you to get out of your shell and meet new friends here, but your own social anxiety will make that difficult. Can you manage your anxiety and establish enough new friendships to last the night?
The Social Thread is a game developed by our team to speak about how social anxiety can manifest in different environments. One's web of relationships is made up of several individual threads, each representing the strength of friendship. We wanted to give a physical representation to this relationship web as we created the experience. As the player walks around the party, their anxiety bar ticks upwards. Standing near a friend allows a relationship thread to slowly tick the anxiety bar downwards. However, each thread can only reduce a certain amount of anxiety before becoming inert, so the player is forced to talk to new NPCs and generate new threads.
My primary focus was on the core mechanics of the game, including creating the relationship thread (the blue line in the image above), making timers for the game's time and how fast the anxiety can tick upward, and interactions between the player and NPCs. Creating the relationship thread is perhaps the most interesting part due to all that it needs to do. First, the line represents how "close" the player and NPC are with respect to their friendship, so attributes like color and width get adjusted based on how much the NPC "likes" the player. However, the threads are not infinite length, so various line of sight and distance checks are made to toggle the thread ability to reduce anxiety.
The narrative designer wanted to explore the possibilities of using Ink, which is a program that can create branching dialogues in a simple format. Unity had some plugins and libraries that could integrate Ink, but tying the various functions of Ink back into usable Unity functions required some research. Most of how Unity and Ink handled the dialogue box was written by the narrative designer, but I tied together the functions entering and exiting that dialogue system. For example, when the player walks up to an NPC and interacts with them, a signal is sent to Ink to begin the dialogue, and that signal also creates the UI text boxes for the dialogue. Once the exchange is over, the UI closes, and relevant information is passed along to other scripts to create the relationship thread.