A computer game start screen, with characters on the left, and the title and buttons on the right
a cluster of overlapping pink rectangles in the top left corner of the background a cluster of overlapping pink rectangles in the top right corner of the background

3 Animals in a Trench Coat

Role

  • Game Developer
  • Game Designer
  • Level Designer

Team

  • Michelle Lin – Environment Artist, Game Designer, Level Designer
  • Jenise Cheung – Character Artist, Game Designer, Level Designer

Tools

  • Unity & C#
  • Visual Studio Code
  • FigJam

Context

Semester-long project for Advanced Game Design course at SFU, January – April 2024.

The purpose of this project was to design and develop a fun and engaging original game with rich gameplay elements. My team chose to create a puzzle game.

Overview

3 Animals in a Trench Coat is a 2D top-down puzzle adventure game about a parrot, a monkey, and a dog who disguise themselves as a human and accidentally join a spy organization. Controlling the three animals, the player must use their different abilities to solve puzzles and complete missions without revealing their true identities.

Process

Core Game Design

After the initial idea of the main character actually being three animals stacked on top of each other in a trench coat—with each animal having unique abilities—we decided that the animals should be able to separate from the stack. I considered different possibilities for how the player would control and separate them, and decided that switching between them to access their abilities would be best. To add more humour and stakes to the gameplay, I suggested that the disguise would only fool NPCs if all three animals are in the trench coat. As soon as one of them leaves the stack, the disguise is rendered ineffective.

Level Design

To design the specific levels and puzzles, as well as the details and flow of the story, we collaborated in a FigJam file. Here we would brainstorm and visualize ideas, using sticky notes and stickers to visually communicate them to each other.

A screenshot of a map layout
A screenshot of one of our level designs in FigJam.

Development

My main contribution to the project was developing the game in Unity. The core mechanic of the game is that the player switches between the animals to select which one to control, and can split one off from the stack to move separately.

Switching between the animals in the stack. Video clip from final game.
Splitting an animal from the stack. Video clip from final game.

This was the first mechanic I had to prototype for our game.

To start, I simplified the task by focusing on switching between the three animals within the full trench coat stack (as in, none of them separated from it). First, I tried having a separate object for each animal being selected, and when the player switched characters, the first animal's object would be hidden and the second would appear in its place. However, I soon found that when a hidden object was made active again, it can briefly be seen in its original position before teleporting to the new location, and after trying multiple ways to fix this issue, I decided to change the basic structure of the mechanic's implementation.

The teleportation issue when using different objects in character switching, recreated in Figma.

I changed my approach to have one object for the trench coat stack and to change the sprite when a different animal was selected, with a variable in the script holding the value of the current animal. When this method worked without problems, I started implementing the splitting mechanic using the same principle of having one object with three sprites for the stack of two animals, and had a separate object for each individual animal.

The first prototype of switching and splitting.

Final Game

Here is a link to the video if the embedded one doesn't load.

Play the game on itch.io!

Reflection

As I had no prior experience with game engines, I had to learn how to use Unity to develop our game almost entirely on my own, which was an intimidating thought. To make it more manageable, I simplified the task by splitting it into smaller pieces, which I would focus on one at a time based on importance and difficulty. An example of this is how I built the main mechanic, by first focusing on the most basic aspect—switching between animals—before moving onto the next part—the splitting. By the end of the project, I had gained not only experience in using Unity, but also more confidence in my programming and self learning abilities.