IT201 - Sprint 4 - Carlos Fuentes
TOWER DEFENSE GAME
WITH A MAIN MENU DISPLAYING THE OTHER SPRINTS
DISCLAIMER - MAKE SURE TO CLICK THE BUTTON TO GO FULLSCREEN
Features are as follows:
SPRINT 01:
Features:
Mouse Location:
The input would be the user moving their mouse anywhere in the game where the DisplayMousePosition file tracks the coordinates of the mouse location. The output would be the text showing the coordinates of where the mouse is.
Brush:
The input would be the user clicking down their mouse, the output being able to draw anywhere in the game.
Color Change:
The input would be the user clicking the key “e”, the output would the brush changing color.
SPRINT 4
Features:
Placeable Turrets -
The input the game receives from the user would be whichever button the user clicks on. It goes through the condition if there is enough case to place the turret. If yes, the user can place down the turret, if not then the user can’t place down the turret. The output would be the user placing down the turret. The buttons are displayed because of the Shop Script that I have.
Description:
The user is now able to place 3 different turrets however, they cost “Cash”, which is the currency I used in my game. Every node is available however, once the node is taken up, the user can no longer place a turret in that node. When the user hovers over the node, it will either be green or red. If the node is green, the user has enough cash and can place their desired node. If the node is red, it usually indicates that the user does not have enough cash or a turret is already placed in that node. Each turret has its set range, its own attacking speed and cooldown, as well as its own effects when the turret attacks the enemy. Once the enemy is within range of the turret's attacking area, the turret will then attack the enemy. I made buttons for the user to choose from, indicating the separate turrets with each one of them having its own price point. All the turrets are prefabs as well as their effects that go along with them. The inputs would be from the buttons, which the user can choose 3 different turrets from, each having its own price point.
Animations:
Inputs would be either the player pressing the “e” key on the keyboard to end the game or when the player loses all his/her lives. The “GameOver” canvas screen is going to be fading in as well as the text and buttons associated in the canvas screen which are also animated with scaling or rotating. The output would be the game over screen fading in, as well as the other animations to the different attributes within that canvas screen. This is done in the GameManager and GameOver scripts.
Descriptions:
Using unity animations, I basically made the “GAME OVER” screen fade in once the user loses all his lives or if they want to end the game themselves, the can simply just hit “e”. I did also change the animation states using the animation controller with the effects of the turret,(This effect is more noticeable with the launcher turret as it shoots a huge explosion.).
Camera Feature:
The inputs would be the user hitting any of the “WASD” keys or wherever the mouse location is at, the user will move in that direction. The output would be the user moving in the direction they desire. This is possible because of the Camera Controller Script.
Description:
The user can easily move during the game with the “WASD” keys and as well as their mouse. Depending on where the mouse is placed, the camera moves within that direction.
Cash Feature:
The inputs and outputs would be the player spending the cash on placing turrets and gaining cash whenever an enemy is destroyed. This is done in the Enemy script that I have. I made it to where each enemy spawned has a set value of 50.
Description:
The player starts off with $500 “Cash”, which is the currency I made for the game. Whenever the player destroys an enemy, they get $50 each time. The player also loses cash whenever they place down a turret. The first turret costs $170, the launcher turret costs $445, and the laser turret costs $800.
Turret Features :
The inputs of course will be determined by the player based on which turret the player choses. And the outputs vary as all the turrets have different outputs whether its shooting slow, fast, having more damage, less damage, slowing or hitting multiple targets at once, etc. This is all down in the Turret, TurretFoundation, and Bullet scripts.
Description:
Most of the features are in the turrets as you need to differentiate them. All of the turrets has its own damage modifiers, ranges, and in some cases special effects.
Damage Feature:
Each turret has its own damage output, as well as its range and in some cases can slow down enemies or hit multiple at once. The launcher turret has an explosion radius that can hit multiple enemies at once. The laser turret can slow down enemies. The laser turret has the most range with 30, the launch turret has a range of 25, and the standard turret has a range of 15.
Fire Rate Feature:
Each turret has its own fire rate, which outputs how fast the turret will shoot. The laser is a constant beam, the standard turret has a rate of fire of 8 and the launcher has a rate of fire of .8, being the slowest out of the turrets. This feature also determines the cooldown of the turrets attacking, which again the launcher has the slowest cooldown as the laser turret is a constant beam, which has no cooldown.
Special Effects:
This applies only to the launcher and laser turrets. Once the launcher shoots its missile and hits the target, the missile will have an explosion radius which hits multiple targets at the same time. I also implemented a particle system once the missile explodes, particles appear as well as a light which I add animation to. The laser turret actually slows down the targets once it hits the target.
Turn Speed Feature:
Each turret has its own turn speed, the launcher having the slowest turn speed and the laser turret having the fastest turning speed.
Status | Released |
Platforms | HTML5 |
Author | cfuentes15 |
Made with | Unity |
Leave a comment
Log in with itch.io to leave a comment.