Lab-Run

Developed for "Game Design" course

Project Description: Lab Run is a fast-paced 2D platformer, where if you fail to leave the rooms in time (or die) you have to restart and try again from the beginning of the levels. The game is divided into several levels, and each one has a unique aspect of gameplay.

Context:  Made in Unity for “Game Design” course in 2020. The team was composed of 4 Computer Science students. 

My role: I was responsible for the Level Design and programming of its many objects, traps and behaviors. I had the freedom to design the story as I built and connected the levels, by creating collectibles and flavored artifacts related to the narrative. I was also responsible for creating most of the Art (about 70%) using Adobe Photoshop and a digital table. 

More info: GitHub link. Gameplay videos link.

 

Splash Art I made in Photoshop

Ice Level

I created the Ice tileset used to build the Ice Level. I used the pencil tool in Photoshop with a 1-pixel size.

 

 

For the Level Design, I designed a map full of chilly traps that needed to be avoided:

  • Stalagmites;
  • Unstable Tiles;
  • Snowballs;

My teammates implemented and programmed the Ice mobs: Penguin and Yeti. My job was to place them in the map, in strategic positions. In this game, it’s all about coordination and timing. We wanted to make the player flee from the threats instead of facing them. 

Lava Level

I created the Lava tileset used to build the Lava Level. I re-used the ice tileset, changing the colors in Photoshop. I created 2 more tiles to make the Lava. This process involved experimenting in Unity Editor and iterating the color and feel of the Tiles.

To design this level, I gathered inspiration from Super Mario dungeon levels, in which the player must stay above the Lava. Some of the highlights include:

  • Rising Lava;
  • Keeping up with a moving platform;
  • Hot gas particles.

I designed and programmed the Magma Cube. This creature is very territorial and will try to push the player away from their personal space! I drew the sprites in Photoshop and animated them using Unity Animator.

Gravity Level

For the last level, we implemented a new mechanic: gravity switch!

I designed the level around this mechanic and the player’s quick reactions. There are multiple paths to complete this level, depending on which platforms the player jumps to.

 

To design this level, I was inspired by sci-fi space movies, where astronauts fall into the void if they miscalculate their jumps. Some of the highlights include:

  • Lazer Maze;
  • Keeping up with a moving platform;
  • Dodging enemy fire.

We made two mobs for the player to avoid.

The praying mantis charges at the player if they step on their ground. With quick reactions, it is possible to jump in and out of their attack.  

The floater shoots energy spheres at the player but doesn’t move. 

Storytelling

I created and wrote these “Mob notes” in Adobe Illustrator to create flavor in our game. These collectible notes could be found in secret locations on each level. They give a background to each Mob and give tips on how to deal with them or how to avoid their attacks. The sprites are from online sources, except for the Magma Cube, which I drew in Adobe Photoshop.

I did the same for the Power-Ups.

I had fun creating the captions and drawing the sprites. I created the sprites for each power-up, except for the Jetpack (found online), using Adobe Photoshop.

Each power-up could be found in each level: 

  • Rewind watch (given at the Tutorial level);
  • Running snickers (Ice level);
  • Dashpack (Lava level);
  • Gravity helmet (Gravity level).

 

Player Animations

I drew every limb of our character separately and imported them in Unity.

Then, I used the Unity Animation Editor to create the following animations:

  • Crouch;
  • Crocuh walk;
  • Idle;
  • Jump;
  • Run;
  • Swim.
What I have learned

With this 2-month project, I learned lots of things besides programming, art and Unity skills.

I learned that working in a team may be difficult sometimes, especially when someone merges bad code in GitHub, leading to hours of bug-fixing and re-doing scenes. The bug-fixing was part of the process, but so was sharing the happiness of working on a project everyone loved. We were constantly having new ideas and managing our expectations was not easy, as we didn’t have the time for implementing all of them. 


One of my biggest learnings was the importance of play-testing the game with non-developers during development. By the time we asked a few friends to try our game (on the week of delivery) we saw that the game was too difficult at times and it was frustrating to die and repeat the levels from the beginning. For example, it was nearly impossible to get past the penguins at the ice level unless the player knew the perfect timing, and jumping on the edge of the terrain felt unresponsive. If we had tested during development, we would have created checkpoints, nerfed the penguin fire, and improved the quality of the jumps by adding a “Coyote timer” to name a few.