Behind the Scenes of

CalypsoTitle.png
 

Enemy AI

The first test pass of the AI consisted of three states: roam, chase, and attack. These states were indicated by the colors of green, blue, and red respectively. All enemies use a state machine and a different collection of states and state transitions to make their behavior unique. This allowed enemies to be easily added as I could reuse a generic state for multiple enemies.

The final ram enemy consisted of four states, idle, roam, chase, and charge.

 

The Cat

The orange diamond represents the point on the player the cat moves to

The orange diamond represents the point on the player the cat moves to

Movement

I wasn’t entirely sure how I wanted to implement the cat. Initially I considered having the cat sprites and the character sprites connected, but I thought it would lead to the cat’s movement feeling too stiff. I also considered having the cat pathfind to the player, but it made the cat’s movement too unpredictable and I quickly realized this would mess with my plan to have the cat provide light in the depression area as the cat was constantly lagging behind. Therefore I attached a point to the player which I could animate to move with things like the players jump, and then created a script for the cat to move to this point, that means when the player turns from left to right, the cat will glide to its new location rather than snap with the flipping of the players sprite, and I could closely control where the cat would be at all times.

Lighting

The light on the cat is made up of two lights. One of them is a sprite light using a mask I created in order to have stylized beams of light. I use a secondary point light to tone down the mask effect and to strengthen the overall feel of the cat glowing.

Two lights attached to the cat

Two lights attached to the cat

Light mask

Light mask

Weather Effects

The rain in the anger area uses Unity’s particle system. It consists of white squares that are scaled down on the x axis and up on the y to be narrow. The particles are affected by gravity so I placed the emitter a bit above the scene so they are at max velocity by the time they are visible. The drops have varying starting sizes and I added particle trails to the drops to add variety in length and width. This creates a nice sporadic stormy feel and adds to the sense of depth.

The lightning is an animation of a strike that changes the global light intensity using a script. It sets the intensity to a high value and then a low value and then at the end back to the default. The low value is used to simulate your pupils dilating from the sudden brightness.

 
My Beautiful Trailer Storyboard

My Beautiful Trailer Storyboard