Enchanted Garden


Project Type: Video Game

Project Duration: 5 months

Software Used: Unity

Languages Used: C#

Platforms: PC, Web

Role(s): Programming, Design


Enchanted Garden combines gardening with the chaotic gameplay of Overcooked. Use your alchemical skills to fend off eveil spirits that are trying to steal your plants.

Avatar
Avatar
Avatar

Enchanted Garden was created by a team of four people, including myself. I led the team throughout production, taking on the roles of lead designer, programmer and producer.

Some of my contributions included:

  • Design and Prototyping:

    I created the initial concept pitch for the project, and developing the initial prototype for the game based upon this concpet pitch. I then iterated upon the prototype throughout pre-production using playtest feedback to improve and solidify the core gameplay features. I also led the creation of the game design document that would be used as a reference during production.

  • Interactive Game Objects:

    There are a number of game objects that the player can interact with in different ways, such as: picking them up and putting them down; using them on other objects; combining them with other objects. I created a composition based approach for defining these iteractive objects and their behaviours using interfaces. This made adding new interactive objects and behaviours into the game a fast and simple process.

  • Fox AI:

    The fox NPC is used to instruct the player on how to interact with the game in response to gameplay events happening in game, such as instructing the player on how to refill the cauldron when it is empty. I created an action queue for the fox and a number of generic actions, such as moving to a target location or showing a given UI object. These generic actions could then be composed to create an instruction which would add the relevent actions to the action queue. These instruction were triggered in response to gameplay events, causing the fox to carry out the required actions to deliver the instruction to the player. Using an action queue ensured that instructions would not be missed by triggers overlapping.

  • Adaptive Music:

    Each level of the game features low, medium and high intensity music tracks. These tracks are short and were adapted such that the beginning of each track could smoothly blend into the end the others. When a track finished playing, the game state would be evaluated for the gameplay’s current intensity, primarily based on the number of active spirits. The music track with the corresponding intensity would be selected as the next track to be played.

  • Dynamic Camera System:

    I led the implementation of dynamic camera system using the Cinemachine plugin. The system would update the Cinemachine camera in response to game events, such as adding the fox to the target group when it gave an instruction and removing it from the target group after the instruction had been given. Although the gameplay environment would have been small enough to fit on a single screen with a static camera, the decision was made to use a dynamic camera as it allowed for the player’s attention to be directed towards important gameplay elements.