top of page

Tower Types (3D Unity Tower Defense Game)

   This project began as Unity tower defense prototype that I created for a college assignment. Shortly after completing my bachelor’s degree, I reworked this prototype into an independent game that I released.  

   To start development, I initialized how the player was able to place towers in set positions and created a set of waypoints for enemies to follow sequentially.  

   While the game prototype was now working, I felt the player needed more input into their playstyle and game experience. To give the player this decision I built up a plan to implement 5 different tower types, and several enemy types, all with varying stats such as health, speed, cost, and damage. Their balance is critical for the player to not be forced into a “meta” or clear best playstyle. 

   For the towers I wanted there to be a mix of stats from high damage to long range. I also wanted there to be a mega tower option that was expensive, but combined the best (or near best) of all the stats. Before implementing the towers, I laid out several stats such as speed, range, damage, and cost into a Microsoft Excel document. Additionally, I calculated the DPS (Damage Per Second) to see the value of a tower when the enemy is in range. These values changed slightly over production as playtesting begun. The final values can be seen in the Tower Type Statistics Chart below. 

Tower Types Chart.PNG

   Next, I added a variety of enemies for the player to defeat. I added enemies with a similar variety to the towers ranging from fast and frail to slow but strong. The array of enemy types forces the player to become more aware of the challenge of the round. For example, a sniper tower is good for a slower tank enemy because the sniper has a high damage. However, the sniper tower is not well suited to face multiple fast enemies as the tower’s low fire rate my not allow the tower to hit all of the fast enemies in time. Additionally, the sniper is the least efficient in terms of Cost Per DPS seen by the Tower Type Statistics Chart. So, it may be more could more effective to use a fast tower, a tower with a higher Firing Speed, placed in a position to compensate for the towers smaller range. This constant struggle to decide what tower setup is best is the foundation of Tower Types and its game loop. 

   I incorporated an easy and hard difficulty which changes the spawns per each round. The harder difficulty also contains more enemies which leads to income and thus more towers. Additionally, I added a final boss enemy to the end of the last round of hard mode to add a greater sense of completion. 

   While playtesting I came across small problems such as a tower being too expensive and enemies doing too much damage to the base. However, my main struggle during the testing phase was balancing the currency. If there was too much money given to the player, the player could place too many towers making the game too easy. Not enough funds and the opposite problem arose. Additionally, certain waves in particular felt harder than others. One solution I implemented was mixing in some easy enemies, that give smaller rewards, into the later rounds to supplement the player’s funds before a challenging round. Additionally, if I felt that rounds were too easy, I would remove some of the easier enemies from the round before so the player had to be more finically mindful. I had to playtest with multiple play styles to average together what I felt was a fair difficulty for the game. This process varied between the difficulties as easy mode contained far less enemies than hard mode.  

   Eventually, the game had reached the point in which I felt it was ready for release. I released the game Tower Types on Itch.io in January 2022.

Displaced (Group Capstone 3D shooter)

   Recently I have been working on a 3D Unity shooter capstone game in which the player must balance between melee and range states. Each combat state has exclusive abilities such as the ability to wall run, recharge health, and recharge ammo. The group consists of 12 people with five programmers, five art/asset developers, one UI developer, and one lead. My role has mostly been to create many of the environment objects and their functionalities. Some of the objects I have put more of my time into are doors, elevators, jump pads, collectables, and level sequencing and management (game manager/level manager scripts and environmental events such as enemy spawning). 

   One thing that became clear during the start of development was the increased need to more documentation. Our current set up for communication at the time was a mix between Trello, Discord, and weekly meetings. We decided that we were going to use GitHub’s built-in wiki system to help expand our communication. This system allows you to create tabs for reference on each area that may need more explanation. Here we can go in detail on what our objects are, how they can be used, and how to change their variables to have them work properly for each situation. For me, most of my work in the doc came in the “Environment Objects” tab. (Download link for examples below)

Independent Puzzle Project (2D Unity Puzzle Game)

   This capstone was made independently in one semester. The game is a puzzle game centered around spells and how the spells interact with the environment. At first, I planned on creating a larger rpg style game, however due to the timeframe of the project I decided to scale my original idea down into a puzzle game. I decided to create a pull and push spell to start as they could be useful to not only solve puzzles, but also can be used in unison with other spells later on. One example of this is an area where you must use a spell to gain more vision to help you plan learn where exactly you need to push and pull to open a door.

   While I had a plan on how to implement the spells, I struggled at first with the implementation. This is mostly because I had to select which object to pull based on the direction of the mouse. I decided to use a ray cast that would protrude from the player in the direction of the mouse. I implemented an animated beam to signal the force of the spells. Finally I then continued adding other puzzles and spells that spawn a minion and spawn a ghostly projection of the player.

bottom of page