Personal Space

Personal Space is a 3D mobile game about interpersonal relationship. It was created in three days in Columbia University Game Jam: Space.

DateMar. 31, 2017 - Apr. 1, 2017
RoleDeveloper, Composer
MembersLea Liu, Song Ye, Wangshu Sun

Introduction

Personal space is a 3D mobile game created in 3 days, together with Lea Liu, Song Ye from NYU Game Center during Game Jam: Space held by Columbia University.

I participated in game concept design and Unity development, and composed the BGM.

Concept

The game is about “personal space”:  your goal is to reach your destination inside a maze, but you need to interact with people: if you don’t connect with anyone, you will feel cold inside and eventually die of loneliness. “Safe” interaction will warm you up, but getting too close will annoy people and make you feel embarrassed.

Development

After having a vague vision, we discussed about the code implementation of core game mechanics, and I was responsible for implementing the interpersonal interaction.

Safe Distance -> Comfort Zone

To visualize the distance, I start off with an empty prototype and defined two types of zones – a “comfort zone” (“C”) and an “alert zone” (“A”) for each of the NPCs. Using trigger events in Unity, the “safe distance” is interpreted as inside comfort zone but not alert zone, namely C & !A. Otherwise, the player will either feel “hot” (embarrassed) while touching the alert zone, or feeling “cold” (lonely) when not touching any of the zones.

It took a while to figure out the logic using three trigger events OnTriggerEnter(), OnTriggerStay() and OnTriggerExit(), but I successfully figured out a way to use them as in the snippet below:

Temperature: 1 hot/embarrassing, 0 normal/comfort, -1 cold/lonely

void OnTriggerStay(Collider coll) {
	if (coll.gameObject.tag == "Alert Zone") {
		temperature = 1;
	}
	if (coll.gameObject.tag == "Comfort Zone") {
		temperature = 0;
	}
}

void OnTriggerEnter(Collider coll) {
	if (coll.gameObject.tag == "Pedestrain") {
		feeling += collisionShame;
	}

	if (coll.gameObject.tag == "Comfort Zone") {
		temperature = 0;
	}
	if (coll.gameObject.tag == "Alert Zone") {
		temperature = 1;
	}

	if (coll.gameObject.tag == "Finish") {
		SetSuccess(true);
	}
}

void OnTriggerExit(Collider coll) {
	if (coll.gameObject.tag == "Alert Zone") {
		temperature = 0;
	}
	if (coll.gameObject.tag == "Comfort Zone") {
		temperature = -1;
	}
}

NPC Personalities

Each NPC is different in their walking speed, and the speed changes over time, creating a more life-like feeling.

Further more, we added emoji bubbles and corresponding sound effects to show the feelings of NPCs.

BGM Composition

Because it’s still a working build, we want the feeling to be just as “awkward” and funny, rather than some fancy deep melancholic stuff, thus I composed this simple BGM, using GarageBand on iPad:

http://soundcloud.com/sunwangshu/awkward

Result

The mechanics worked, and the game turned out surprisingly thought-provoking as per personal relationships:

  • sometimes, you got to annoy people in order to warm yourself up;
  • sometimes, you got to follow a certain people to warm each other, just like a close relationship, but at times you could be split away by different goals;
  • some other times, it is just too hard and too precious to get someone to help you

Next Steps

  • The frame rate was not really high on iPhone, and we suspect the reason was that there were ~ a hundred NPCs walking and doing way finding towards their own goals. We plan to fix the problem by loading only some part of the map dynamically instead of the whole.
  • Also the UI needs to be improved, most people would overlook the color change of the player and die suddenly. Lea suggest we can add color effect all over the screen to emphasis the feeling.
  • The control was designed like a virtual keypad centered around the player on center of the screen. It didn’t feel very friendly for most people, and I suggested instead change the position of virtual keypad every time when a player touch and release their finger, and anchor it around where the finger first touches the screen.
  • Further implement the individuality of NPCs, so that some may be warm-hearted and some may be cold and distant.
  • More levels were planned as well to express different feelings in different situations, like being cornered by crazy fans, or trying to find someone and some comfort in a distant land.

Overall the mechanics worked well, and we want to continue developing this game at some point to deliver this experience and inspire more people.