Forsaken Kingdom.
Introduction
I will start by saying that this is something I plan on returning to, I intend on trying to finish soon.
We were given a simple task: to create a tower defense game incorporating a specific set of mechanics. The art style was heavily inspired by Fear & Hunger. Drawing from the lore of my DnD game, I decided to base the tower defense game on a segment of the story that took place during one of our DnD sessions.
Table of content
Noteworthy mechanics
A wave spawner with multiple segments made using scriptable objects. Enemy AI that spawns in a randomized lane that has a select few waypoints. Shop and upgrade system that allows the purchase and upgrade of towers. Enemy damage that can end the game for the player. Enemy death reward, upon killing an enemy, the player gets money.
Wave Spawner

Waves are crucial in a tower defense game. What I did was create two lists, one called "Wave Structure," which contained the wave parts. For example, Wave 1 had two parts: the first part summoned 10 of the first enemy with specific spacing, while the second part did the same but at a faster rate or perhaps spawned different types of enemies.

Wave System
I initially planned to use a JSON file for my wave system, but wanting to be efficient, I decided to do some research. I ended up discovering what scriptable objects are and after reading through the documentation and learning how to implement them
I realized they were a perfect replacement for a JSON file. Being the only one in class to use them made me feel accomplished, and my research paid off by helping me create a simple and efficient wave structure function.

Upgrade System

Upgrading was quite simple as well. When you click on a tower, you can upgrade it if you have enough money. The system checks a component attached to the tower that holds information about the next level. Upon confirming the upgrade, the game deletes the old GameObject and replaces it with a stronger one, increasing its strength and other stats.
It also switches the Text on the UI for the stats of each tower by grabbing the stats of the currently active tower and placing them there.

Reflection
I believe I should have focused more on coding different mechanics and making the game as bug-free and polished as possible, rather than dividing my attention equally between art and coding. The art should have been prioritized last, after ensuring the game was as polished as it could be within the time I had to work on it.