Assignment 5 Update
I feel like I went too grand with my original idea's in my concept document. 6 weeks was not enough to implement everything the way I wanted, or likely even to implement it at all. Whilst I did create a small game with the core concepts I put down, namely a basic tower defence with several different upgradeable turrets, a few enemy types and a basic AI system.
Some of the major disappointments were focussing too much on balance and the fine details of the project rather than trying to get a second level, title screen, custom objects, etc. Whilst I created a solid base to build off, the game is extremely unpolished and is not even close to being finished. Whilst the majority of what is in the concept document did get done in a rough sense, I feel my game just doesn't have the completed feeling it deserves.
Feedback from both classemates and outside friends were a great help, at least working towards making it more fun. The suggestions mainly focussed around balance and adding a variety of enemies to improve the fun, both of which i successfully implemented. Turret upgrades were also suggested with a popout displaying the current damage and level, which I implemented. I was also recommended having some sort of tutorial system, as one of my testers had never played a tower defence game before and took a while to work out the controls. This tutorial is on the books for later development. I ended up focussing too hard on the balance of teh game, trying to walk the fine line between fun, challenging and consistent. This area is a major issue I have with many modern games and caught my attention for too many hours this early on the development.
Following is a list of assets used within the game and descriptions of their purpose.
- Turrets - These include the assets for the Ballista, the Slammer, The ice and the Lightning. These are instantiated whenever a player buys a turret. They are currently just a basic circle sprite with a pointer for the ones that rotate. The Slammer has a second circle sprite that is used for the area of effect damage it does. The Lightning turret has a lightning animation attached, the sprites I aquired from openart.org created and uploaded by user 13rice. This lightning animation is also used for the turrets area of effect abilities. The Ice turret simply uses a particle system emitting in a radius to show it's own area of effect.
- The enemy prefabs just circle sprites with pointers and have different colours based on their type. These are very simply an enemy for the player to defend against that moves along a dictated path towards the players base. The basic enemy is the most numerous with average speed and health. The fast enemy has low health but moves somewhat faster than the others. The tank enemy moves slowly but has significantly more health than the other two.
- The turret plates are simply an asset used as a button for the player to mouse over and dictate the position of where the player is able to build turrets.
- The ballista bolt is a custom pixel art create by myself and is used for the projectile fired by the ballista turret.
- The Move Nodes are used to create a path for the enemy to move along from point to point.
- One asset that isn't a prefab is the ObjectsArray. This is an invisible game object used to store many of the details that various script pull information from as they are instantiated. It holds the location of each of the move nodes in the level, the number of coins the player currently has, the active state of the build menu and which build plate the player has clicked.
- The BuyCanvas is simply a canvas that contains the buttons the player uses to buy turrets after having clicked on a build plate.
- The UI_Canvas contains the health bar of the player base, the text for the coins, the countdown timer between waves and the flashing notice when a player attempts to buy a turret without enough coins.
- The spawner quite simply is a start point for the enemies to instaitate at. It also counts enemies spawned, destroyed and which wave it currently is, as explained later under it's attached script description.
- AIController script. This controls all ai in every aspect, with scripts for health, speed, damage to deal and coins awarded when destroyed. It also contains functions for a speed debuff being applied and reset when needed and a timer for this debuff to last.
- BallistaShooting script. This script is attached to the ballista turret to control it. Within is the fire rate, instantiating and firing it's projectile, upgrade cost and sell value and it's aiming script.
- BaseHealth script. This is a very simple script containg nothing but the current health of the player base and a trigger to take damage whenever an enemy collides with it.
- BoltDamage script. This script is attached to the ballista bolt and contains a simple script to detect collision with an enemy and dealt damage on collision, this also conatins a small script to destroy itself after a time without collision.
- ClearBallista script. This script is entirely unused and is only in this list as it's still in the game files.
- Coins script. This script holds the current count of coins the player has and holds the functions for running tests to check if the player has enough coins when they attempt to buy or upgrade a turret.
- HealthBar script. This is attached to to the health bar ui object and simply controls the slider to give the player a visual of the current health of the base.
- IceTurret script. This is attached to the ice turret and holds it's current upgrade cost, sell value and how much to slow the enemies that are within range.
- Lightning script. This script is on the Lightning Turret holding it's upgrade and sell value, damage, slow percentage to apply to enemies within range, how long the enemies are to stay slowed for, damage dealt with each burst and the controlling script of the animation for the lightning effect.
- ObjectsArray script. This is attached to the ObjectsArray object and is simply used to hold the information mentioned up in the asset description.
- RzycastUtils script. This script was used in experiments with the turrets, though ultimately never ended up being needed.
- SceneSwitcher script. I was planning on using this when i created a menu and other levels and is simply a script to be attached to buttons and switch to a new scene when said button is clicked.
- Shockwave script. This script is attached to the slammer turret and controls it's damage, deleay between bursts, upgrade and sell value. This script also holds a simple "animation" script in the form of repeatedly scaling and resetting the shockwave sprite for it's area of effect animation.
- Spawner script. This script is used to spawn enemies, keeping track of how many have been spawned so far, how many are destoryed, what wave it currently is, how many of each enemy to spawn, when to run the next wave timer and increasing enemy damage and health each wave.
- TurretBuild script. This is used to determine where to build a new turret when requested and disabling the build plate while a turret is on it.
- TurretButtons script. This is attached to the buttons on the BuyCanvas and has a simple function to instatiate a new turret when one of the buttons is clicked, reducing the current coin count depending on which turret is bought.
- TurretDetails script. This is attached to the popup that appears when a player clicks on a turret, containing details on the amount of damage the turret deals or how much it slows the enemy by. It also contains a script the change the turret colour on mouse over.
- UpgradeSell script. This simply script is attached to the upgrade/sell buttons in the turret popup and controls the selling or upgrading of the turret, modifying the turret's traits upon upgrade with increased damage or slow percentage dealt.
The final name of the game will still be Lebral's Keep. This game is a basic tower defence game where the player must defend their base by building various turret types to destory the enemies before they reach the base, with various types of enemies to make the player think about what type of turret to use where. The controls for this game are very simple, the player clicks on the plates that highlight on mouse over and choose a turret to build from the menu that pops up, assuming they have enough coins, which are gained from destroying enemies. The player can also upgrade or sell a turret by clicking on the turret and selecting the option they want from the popup window that appears.
Over all I'd say I couldve got more work done on this project in the allotted time if I hadn't have let myself get bogged down with fine details.
Lebral's Keep
Status | In development |
Author | Hungr612 |
Genre | Strategy |
Tags | Tower Defense |
More posts
- Week 6 - Final update for UniOct 17, 2021
- Week 4Oct 03, 2021
- Week 3 - Turret info bubbleSep 26, 2021
- Week 2 - Added working turretsSep 16, 2021
- Week 1 Update editSep 12, 2021
- Week 1 UpdateSep 12, 2021
- Game ConceptAug 15, 2021
Leave a comment
Log in with itch.io to leave a comment.