Daidala

Take part in the ancient myth of the Minotaur, with a twist - instead of slaying the beast, you are protecting it. Time is of the essence. Swiftly plan your actions during flowing turns dictated by an in-game timer that regulates the movement of the enemies and the activation of your traps.

A tower defense game where everything is laid out on the board for you to use. Cunningly move the traps on the grid to make sure that they eliminate the heroes when they activate. 

Project Info

Type
2D
Tower Defence
Strategy

Role
Lead Game Designer
Product Owner
Gameplay Programmer

Duration
10 Weeks

Team Size
 
7 People

Engine
Unity - C#

My Contribution

I designed the game by myself and the later pitched it to my classmates and put together a team to develop it.

As such, I assumed the position of lead game designer and product owner and successfully managed to direct the team towards completing the game how I envisioned it, along with making the necessary adjustments from the feedback we received.

I also had the role of programmer, working closely together with the other programmer to code the game. I was mainly responsible for the enemies, implementing the pathfinding and the abilities of the enemies to make sure they behaved as intended and that the level designer and QA could work with them.

I designed the pathfinding script of the enemies of Daidala to be a completely standalone component for the enemies. I created it this way as me and the other programmer were working on the enemies at the same time, as such I needed to make sure the component would connect to the rest of the enemy behaviors without disrupting anything else.

When called, the script takes in the position of the enemy and the position of the minotaur and calculates the path towards it on the grid using the A* algorithm. When calculating, the script considers the abilities of the enemy (the disciple can walk on water by freezing it and the assassin can jump over walls, meaning that the shortest path for these two units might be different) and then returns a list of directions that the enemy must move in to reach the minotaur. The path is broken down into a list so that with each tick of the game, the enemy will advance one step in the next direction in the list.

Other features I baked into the script are the possibility of recalculating the path, which is used every time an enemy is flung away with a spring trap or a disciple on the map freezes a water tile. Lastly, the script is equipped with custom gizmos in the Unity Editor to show all the tiles that the script explored and the final path. This tool was essential for debugging and for the level designer to make sure that all of the enemies were taking the intended path.