Platform

Engine

Language

Development Time

Team Size

Programmer

PC

Unity

C#

7 weeks

4 design + 5 art

Ygg

Ygg is a third-person story-based adventure game with focus on visual narrative and experimental mechanics. In Ygg the player uses a flute to solve puzzles and interact with the environment to gain information about the world and protagonist.

My role

As a programmer, the most notable points I was responsible for were:

 

The camera system

The puzzle system

 

As well as other miscellaneous tasks such as implementing audio, small interactions with the

environment and bug-fixing.

The Camera System

The camera controller is highly customizable with a high number of systems interacting together to create a smooth experience.

 

 

Input

Determines how much the player can pitch the camera up and down, as well as how fast (speed also determines yaw input speed)

 

 

Distance

As the player looks upward, the camera will move closer to the player. The curve determines how the distance interterpolates between lowest to highest pitch.

 

 

Field Of View

Same as with distance. The reason the curve is flipped is because the FoV should be higher when looking upward.

 

 

Offsetting

When pitching upwards, the camera offsets a bit to pivot above the player, so that the player can see more clearly (and also avoid the camera going below ground).

 

 

Drifting

As the player walks, the camera should 'drift' to always look in the direction the player is moving. This process is rather complicated with a lot of timers and curves, which is the result of playtesting and iteration.

Code
<Camera View>
<Camera Controller>
<Camera Volume>

Camera Volumes

Focus Volume

To guide the players' eyes on certain key-points we can place focus volumes.

When the player enters the focus volume, the camera will interpolate towards a specific orientation and stay there until the player leaves or changes the camera angle manually.

Code
<Focus Volume>

Rail Volume

During long walks we can place rail volumes to guide the player in a certain direction or have them look at a specific object.

The rail camera works by placing 2 or more camera points, which the volume will then interpolate between as the player moves through.

Code
<Rail Volume>

The Puzzle System

When the player encounters a token like this, it's time to solve a puzzle.

The puzzles takes the shape of melodies that the player has to decode and play using the flute.

Code
<Note>
<Melody>

Miscellaneous

Wisps

The player will encounter beings called Wisps while playing.

Their behaviour is semi-random and controllable by walking into certain collision volumes.

Code
<Wisp>
<Wisp Behaviour>

Snow

The snow deforms when the player walks over it, creating persistent trails.

This is achieved by manipulating and deforming the Unity terrain.

Code
<Snow Terrain>