Documentation and User Guide


Description

Beach Defense is a tower defense game were players must play slowly eroding towers to defeat waves of oncoming enemies. This involves playing a range of towers with different stats onto the level to kill the waves of enemies. The game includes a roguelike aspect as the player must reset every run and improve their deck as they make their way down a route towards their end goal.


The game mostly stuck to my planned designs except for the lack of effect cards, which would be a second type of cards, which would do an effect that would either effect all the towers for a shot time, like increased damage for 10 seconds, or a momentary effect, like damaging all enemies on the screen. The only other deviations from my plan was to forgo adding more sprites and music for the game. These deviations were mainly due to my decisions to add features which I decided had either more effect on the game or took higher priority over the other features.

Feedback

The main feedback I received was that the game was not very balanced and that some of the features were not clear. To improve this for the final game I have increased the stats of single target towers to help minimize the difference between towers. To improve clarity of the game I have created a tutorial for the games cards and for the battle scene. I have added a visual effect that improve clarity as well, these include a red flash when the player does not have money to play a card, a effect for when you earn money, and an indicator for when a new round is approaching. I also fixed various bugs that plagued the game that were uncovered during testing, such as a bug which stopped cards from being reset after every run. There was also a bit of feedback which I have not implemented either because it was to much of a stretch to add or it did not feel like it was in the spirt of the game. These include making the battles less barren and making some towers better against certain types of enemies.

Assets

  Sprites

  • Beach Background: basically deprecated background for all of the levels
  • Wave: The top part of the wave. Adapted from art create through by AI (reference 2).
  • Wave Bottom: The bottom part of the wave which consists of a solid color
  • Beach Tileset: The tile set for the paths in the game
  • Cards: A collection of various cards which represent the towers within the game.
  • Tower Base: The sprite used to determine the plots the towers can be played on. As a planned temporary solution the tower based has also been recolored to used for the various towers
  • Ant0 - Ant3: The animation sprites for the ant
  • Crab0 + Crab1: The animation sprites for the crab
  • Fly0 + Fly1: The animation sprites for the fly
  • Bullet Pellet: A circle sprite used for all the projectiles
  • Card Icon: A basic rectangle used for the route map
  • Enemy Icon: A skull with a circle around it
  • Goal Icon: A shield with a circle around it
  • Question Mark Icon: A question mark icon used for the route map
  • UI_Heart: A simple red heart icon used for the players help
  • UI_Pearl: A simple pearl icon used for the players currency
  • UI_Skull: A skull without a circle used for the rounds counter and for the route map
  • Explosion Particle: A simple white square used for the explosion particle. Imported from the tutorials
  • Battle Example: A screenshot of a battle map used for the help screen

  Prefabs

  • Cards: A collection of prefabs which represent all of the cards contain the towers used in the game
  • Tower Base: The plot of land that the cards are played on to create towers
  • Towers: A collection of prefabs which represent all of the towers in the game which contain their stats
  • Bullet: A projectile which does various effects when hitting an enemy
  • Enemies: A collection of prefabs which represent all of the enemies in the game
  • Enemy Spawner: A spawner which creates rounds of enemies and then spawns them in a steadily pace
  • Enemy Spawn Icon: A icon for the paths where the enemies can spawn which also contain where enemies can spawn
  • Health Bar: The bar that displays the amount of health the towers and enemies have left. This was created based on this tutorial linked as reference 1.
  • Map Background: A container of the basic objects that are in all of the battle maps and don't stay the same across the maps, like the wave, background, and camera
  • Route Manager: The manager for the route maps which contain all of the route nodes and the possible battle maps
  • Route Node: The nodes on the route which contain the type of interaction when moving to that node
  • Offer Card: The card which is offered when the player picks a new card. The object mimics the look of the card it is repersenting.
  • Round Indicator: A indicator which displays a representation of the time left till the next round
  • Earn Money: A animation which is used whenever the player earns money
  • Explosion: A particle effect which displays when an enemy or tower is destroyed. The particle was imported from the tutorials.

  Scripts

  • Bullet Collision: The script for when the bullets collided with another object. This was adapted from the tutorials.
  • Bullet Stats: The stats for the bullets
  • Create Health Bar: Script to create a health bar below an object.
  • Destroy After Delay: Destroys the enemy after a timed delay. This was adapted from the tutorials.
  • Destroy Out of Combat: Destroys the game object when is out of the map for a certain amount of time.
  • Difficulty Manager: Managers the difficulty selected in the difficulty select scene.
  • Difficulty Selecter: Sets the current difficulty in the difficulty select scene.
  • Display Manager: Managers the post processing display for the battle maps
  • Earn Money Animation: Creates an effect when the player earns money
  • Enemies Goal Collision: Loses the player health when an enemy collides with the goal
  • Explosion On Destroy: Creates a particle effect when the object attached is destroyed. This was adapted from the tutorials.
  • Fade To Destroy: Fades the object over a time and then destroys it.
  • Game Manager: Manages the status for the game and persists between all of the scenes.
  • Health Bar Display: Script to manage the status and display area for the health bar. This was created based on this tutorial from reference 1.
  • Player Stats: Manages the status of the player in the battle scenes
  • Reload Scene: Testing script which always the player to go to move to the map 0 with 'r' and skip the battle with 'n'
  • Round Indicator: Indicates the time until the next round
  • Route Manager: Manages the nodes of the route and the battles maps the scene can go to
  • Route Node: The script to manage the individual nodes for the route
  • Scene Switcher: Basic script to switch what scene in loaded. Imported from the tutorial.
  • Start Game: Script for the buttons to start the game and reset the values.
  • Wave Approch: Script which moves the waves vertically and does the animation in which the wave damages all of the towers.
  • Wave Move: Script which moves the waves horizontally
  • Won Scene Switch: Scene which switches the scene when a battle is won
  • Card Stats: Script which contains the values for the cards in the game
  • Deck: Script which manages and contains the deck of cards for the game
  • Offer Card: Script which manages the individual offer cards
  • Offer Card Buttons: Manages the interactions for the button in the offer card scene
  • Offer Manager: Script which manages the offer cards values
  • Path Follower Scripts: Scripts which manage the path finding for the enemies. Slightly adapted from the tutorials
    • A Star Helper
    • Draw Helper
    • I Path Helper
    • Mover
    • Path Follower
    • Path Node
  • Create Enemy Wave: Script which creates a series of waves of enemies based on an difficulty number
  • Enemy Stats: The script which manages the values of the enemies
  • Spawn Wave: Script which manages spawning enemies from the various spawn locations
  • Generate Money: Script that allow a tower to generate money every so often
  • Place Tower: Script to place a tower
  • Tower Shoot: Script that allows a tower to shoot at nearby enemies
  • Tower Stats: Script which contains the values for the towers and manages values.

  Scenes

  • Title: The home screen of the game
  • Difficulty Select: The difficulty selection for the game
  • Win Game: The win screen for after every successful battle
  • Lose Game: The lose screen for after every unsuccessful battle
  • Battle Help: The help screen for information about the battles
  • Card Help: The help screen for information about the card
  • Route 1 - Route 2: The two alternate routes for the game
  • Map 0 - Map 10: The 11 alternate battle maps for the game
  • Offer Card: The scene to offer a card after every battle and when navigated to on the map

User Guide

Beach Defense is roguelike tower defense in which you have to place down slowly eroding towers to defend against hoards of beach critters. In the game you have to work your way your enemies while collecting more elaborate towers in order to reach home.

The game only uses a mouse to play and as such has very basic commands.

Controls:

  • Battles:
    • Click a card to select it
    • Click a tower plot to place a selected card (clicking else where will deselect the card)
  • Map / Route:
    • If there are multiple nodes that are adjacent, click the one you which to go to.

Difficulty Select:

  • Click on the wanted difficulty
    • Clicking on the title 'Difficulty' will result in essentially a god mode
  • Click Play will select the difficulty and start the game

References

  1. How to make a Health Bar (Unity 2D Tutorial for Beginners) (2018) YouTube. Code Monkey. Available at: https://youtu.be/Gtw7VyuMdDc (Accessed: 26 May 2023).
  2. Wave art generated by AI, https://creator.nightcafe.studio/, Generated 22/2/2023

Leave a comment

Log in with itch.io to leave a comment.