Production 2 Project | 760 hours | Unity | Level Designer

Secret of Colors is a puzzle-platformer game in which the player takes control of a mysterious cloaked figure with the power to change colors. The player uses this power to blend into the environment while navigating to the highest point of each level, all while avoiding the gaze of your enemies

DOWNLOAD AND PLAY

 

The first prototypes of level 1, for testing.

Where Level 1 started

After initial brainstorming, as soon as week 3, I was prototyping level 1. My original Idea was to introduce the player to the eye, colors, and platforming. The original level 1 came back from QA as too difficult. At first I was confused by the feedback, so I went to the next QA session to observe to see if I could learn more.

I learned that besides the eye's wedge of death being somewhat hard to see, players had difficulty learning about the colors and the eye in a somewhat hostile environment. Between the death by falling and getting caught by the eye, players were overwhelmed. 

Level 1 needed a redesign. It wasn't a bad level, but it was a bad level 1. I made a list of objectives the player needed to learn by the end of level 1. This included movement, camera controls, switches, color changing, avoiding the gaze of the eye, and jumping. The new first level didn't have any difficult platforming, and falling to your death is not easy to do.

The biggest change to level 1 was the eye. Normally the eye rotates its gaze around the level to try and find players, but this adds a sort of time constraint.; players needed to learn how to hide from the eye before it got to them. Instead, I made the eye stay perfectly still in level 1, so players could interact with it on their own terms. It still provided a roadblock, and players couldn't beat the level without figuring out how to pass it first.


The new level 2

The new level 1

Finding the right difficulty

After reworking levels 1 and 2 to get the difficulty optimized, I worked with the lead designer to create a spreadsheet of all the planned levels. The spreadsheet listed all things that needed to be introduced and taught to the player at each level. We chose which levels we would introduce which concepts, and by what level  they should be totally proficient with that concept. I used this spreadsheet as a guide to design and build all the other levels of the game. Each week, we would go to QA at least once, and player feedback would help inform if a level needed any more tweaks.


Level Design Documentation

Systems and feedback requirements took up the time of the other intended level designers so I became the only level designer on the project.  Because there was originally going to be additional level designers, I created a standards document for the other 2 designers on the team.  The standards document also detailed my level design process, so it could be used as a reference for pacing and style.  This document delves into much greater detail on my process for designing Secret of Colors levels.

Level 8, with the 3 collectibles locations highlighted.

Multiple Level Difficulties

One concept I came up with to appeal to a wider range of player skill is having multiple ways to ramp up difficulty in each level, without actually having to add multiple modes or increase AI difficulty.

The Idea I came up with is using collectibles. In addition to just beating the level, players can test their mastery of new mechanics by attempting to get all 3 collectibles per level.  Beating the level without a collectible, or maybe only 1, would be like beating it on easy setting. Collecting all 3 per level would be like beating the game in hard mode.

Many of the collectibles ask players to do things that no level will ask them to do just to complete.  For example, pusher enemies push you farther than you could jump on your own. Players can use this to cross gaps they normally couldn't.  I placed collectibles seemingly out of reach, except by using this pusher technique. You do not necessarily need to do this to beat a level, but if you want to show complete mastery and get all collectibles, you will likely figure this out.

The level with all the collectibles obtained, and a fully restored mirror


Glass refraction shader in final level

Prototype Camera Script

In addition to designing all 10 playable levels in the build, I also had a few simple prototypes I built for game systems. The camera system, which switches between a level and third person view, was prototyped early on in the process. Once i was happy with it,  I handed it off to the programmer for implementation in the game.

Shader Programming

Looking at pictures of the game, you might notice some of the cubes have interesting refraction. Originally we were going to have all the blocks look like stained glass, and one of my initial jobs was to write the shader for that refraction. I started with Unity's default water shader because it had refraction already built in. I then removed the movement so it would stay still, and tweaked the refraction map as well. The look was too busy when every block had refraction on it, so we decided to save it for a few special blocks.

All-seeing-eyes view visualization, without the particle effects.

Wedge of Death Visualization

One of the core concepts of our game is the all seeing eye. It sits atop the level goal, spinning slowly around, looking for troublesome players to annihilate. Early on, so much of our negative feedback came from players getting caught by the eye without seeing it coming. 

The gaze of the eye used to be two walls of particle effects, and if a player touched either one, they were caught. Not only was the look unappealing, but judging a particle's position in space is very difficult, so I came up with a solution.

On top of each block is a grey square plane, the same width and depth as the box sitting on top of it. They are totally hidden from view. The eye has 2 clipping planes, which line up with the angles of the eye's gaze. These clipping planes only draw the grey squares in-between them, which creates a triangular shape showing the exact danger area of the eye's effect on top of every square. This greatly improved feedback and lowered player frustrations as well. I prototyped this solution as a proof of concept before handing it off to our programmer to implement.