McWizzard
Unity Based Mobile Design
Game's High Concept
McWizzard is a top-down stealth mobile game in which the player controls a wizard who is tasked with removing multiple dragons from various castles. The wizard must navigate through the castle collecting spell scrolls whilst avoiding the other monstrous castle residents. Collecting spell scrolls also allows the player to cast different spells affecting themselves in various ways, with the main purpose to aid them in their endeavors. After collecting enough spell scrolls, the wizard can enter the boss's room and vanquish it.
My Contributions
Throughout McWizzards development, I was responsible for implementing some of the main mechanics and designing all levels in the game.
Primary Mechanics developed
• Enemy AI
o Patrolling
o Chasing
o Attacking
• Audio Management System
• Player Controls
• Collecting of scrolls
• Settings system
• Difficulty Scaling

Overview of Implemented Mechanics
AI Patrolling System
The patrolling system was designed to be primarily designer-friendly, allowing for the easy creation of patrol paths. Additionally, the system would allow designers to set each patrol point to have a given wait time and direction to look when reaching the given patrol point. Each enemy's patrol route could be set up by attaching a game object containing the PatrolPointData structure class. The AI patrolling class then pulls the attached child objects, populating the main array responsible for tracking the patrolling.
Additionally, to ensure this system does not cause performance issues, the process of populating the array of patrol points was given the ability to be baked via the click of a button, so that this process did not need to be completed at the start of every level.
AI Chasing
The chasing system follows the player until they reach the designated distance for performing their attacks. It was also responsible for dropping chase if the player was no longer in line of sight for a designated time, which was changeable in the inspector. Furthermore, I created a system that would cause the enemy to gain speed the longer they chase the player, with the max speed of the enemy incrementing in multiple different stages, with all the major variables of this system being customisable in the inspector.
Audio Manager System
The audio system was designed to allow for a high level of customisable list of randomised sounds to be created. The system does this by having an array of AudioDetails containing a reference to the audio file and the present chance of the audio file being played. During the start of the game or when the designer bakes the audio, the system will sort a secondary array in descending order and sum up the defined change of the audio being played. When the audio is to be played, a random number is generated, and the system will loop through every item in the second array to check if the random number falls within its range, playing the designated sound if it does fall within the range.

Example Image Of one Full level within MCWizzards.

The system used to manage the patrol routs of the enemy AI.