Documentation


Documentation

This is the final Devlog for this Uni project.

Comparison to original concept document

Overall the project stayed quite faithful to the concept document I had originally created. Most ideas were implemented and new ones were added along the way, at the same time some areas fell a bit short or didn't make it in. Going over the Key features that were listed in the concept document, almost all features were added including Movement, Melee combat, magic, 2 player coop, a Gate to defend. The main difference was definitely the lack of enemy variety that I had originally envisioned. The tentacle enemy started out as essentially a fodder enemy but after designing and creating all the Art, Ai, interactions with the player it turned out to be the only one in the game. While I am relatively happy with how they turned out some enemy variety would have done a lot for the game. This is why the little tentacle spike attack was added last minute as a compromise between not being able to create a brand new enemy with only a short amount of time remaining but still wanting something to make the game more interesting. Some other differences are the lack of walls that were mentioned and the addition of shield stamina, originally I had the idea of allowing players to build up some form of walls or traps to assist but never got around to it. The art also proved to be a big challenge as I have minimal experience with creating it, I think at a bare minimum the art conveys what I want to players experience. 

Feedback summary

General Gameplay

The gameplay was positively received by testers and was enjoyable for its back and forth melee gameplay, however the general consensus seemed to be that attacks took a little too long and the shield was overpowered. Based on this feedback I increased the speed of attacks and added the ability to chain a second light combo attack. A shield stamina bar was also introduced which stored charges that allowed players to block a certain amount of hits and would recharge very quickly whennot blocking, it was done this way to stop players from indefinitely blocking and instead incentivising weaving in attacks or movement between blocks. Some other feedback was that there should be more feedback for hitting enemies, getting hit etc. In the final product more visual feedback and sound effects were added to further sell the feel of combat.

Difficulty

Testers found the game to be quite average in terms of difficulty slightly leaning towards to harder side. I think a lot of this came from the effectiveness of the shield at the time and the AI of enemy's getting stuck on objects if there spawners  were generated in a bad spot. With the shield stamina in place and the Ai now having the ability to path find around objects the game difficulty should have spiked up significantly, maybe a bit too much honestly.

Controls

Testers found the controls to be appropriately bound for the single player mode. 

Visuals

The art was positively received by testers but I still believe there is a lot of room for improvement.

Game Performance

Testers game performance was overall smooth with a slight drop in performance when enemy's got out of hand. Added in a spawn limit to counteract this a little bit.

Bugs/issues

During testing a number of bugs were brought to my attention and have since been fixed. These included an invincibility bug, Enemy's getting stuck, Spawns stopping after a certain amount of time, render order for enemies, Stun locked from enemies.

General Feedback

There were some splits between movement being locked while in attacks or other animations but in the end I opted to keep the locked movement, Without it the game felt very floaty and took some fun out of the decision making of when to attack or block. Sounds were requested which were added eventually. All the other general feedback has been addressed above as move of it was regarding the combat.

Asset List

Scripts

Player Character related scripts

  • Attacking
    • Main script for handling all player actions and animations (apart from movement).
  • Explosion
    • Handles the explosion effect for the fireball and is responsible for dealing damage.
  • Fireball
    • Handles the fireball game object.
  • HitDetect
    • Used to detect if players attacks connect and if they should deal damage + regenerate mana.
  • Multiplayer
    • Responsible for controls of each individual  and any flags that required multiple players e.g. single player/multiplayer mode.  Spike attack targeting.
  • ObjectRend
    • Script used to render the players behind or in front of enemy's/objects.
  • PlayerAudio
    • Stores most of the players audio commands. Animations call upon these methods via animation events to play sounds.
  • PlayerHealth
    • Stores players health and updates it to the health bar.
  • PlayerMana
    • Stores players health and updates it to the mana bar. Also responsible for checking mana costs for spells.
  • PlayerMovement
    • Handles the players movement and direction.
  • ShieldBar
    • Handles shield stamina.

Enemy related scripts

  • DestroySpawner
    • Detects if players are standing on spawners and if it should destroy them
  • EnemysHealth
    • Stores enemy health and kills tentacles when health drops to or below zero.
  • EnemyRend
    • Script used to render enemy's behind or in front of other enemy's/objects.
  • PortalSpawn
    • Script that creates spawners randomly in the play area.
  • Spawner
    • Spawns enemys
  • Spike
    • Responsible for everything the spike attack does once created by the SpikeAttack script.
  • SpikeAttack
    • Creates warning underneath player at random intervals then calls for the Spike script.
  • T_AI
    • Main script for tentacle AI. Handles Movement, Pathfinding, Target acquisition.
  • T_CombatChecker
    • Scans a radius for the amount of players nearby and calls for the TentacleAttack script if close enough.
  • T_HitDetect
    • Used to detect if tentacles attacks connect/ or are blocked and if they should deal damage or not.
  • TentacleAttack


    • Flips Tentacles to face targets and play attack animations

Prop Related Scripts

  • Gate
    • Stores Gate HP and animator.
  • GateLocation
    • Stores Gate Location.
  • MoonGo
    • Handles movement for the moon.

UI Related Scripts

  • Button1
    • script to activate Singleplayer mode on button press.
  • Button2
    • script to activate Multiplayer mode on button press.
  • CameraController
    • Swaps camera to alive player.
  • Loss
    • If a loss condition is met (All players die, gate destroyed) swaps to defeat scene.
  • MenuBtn
    • Back to title screen.
  • SceneSwitcher
    • Used by other scripts to switch scenes.
  • Volume
    • Updates volume based on the volume bar in the settings screen.
  • Win
    • Displays ending text based on win or loss.

Art

All art used in this game was created by me (Apart from the text font).

Sprites

  • Gate
  • Grave
  • Moon
  • Player
  • ShieldBar
  • Spawner
  • Tentacle
  • Tree
  • Wall
  • GateBar
  • HealthBar
  • ManaBar
  • BigBackground
  • TitleImage

Prefabs

  • Director
  • Player
  • Fireball
  • Tentacle
  • Target
  • Grave
  • PlayerRendererFab
  • PlayerRendererFab (Enemies)
  • Spawner
  • Tree
  • HealthBar
  • ManaBar
  • ShieldBar

Credits

Sound Effects

https://pixabay.com/sound-effects/slash-21834/

https://pixabay.com/sound-effects/sword-sound-2-36274/

https://pixabay.com/sound-effects/metal-hit-26-193292/

https://pixabay.com/sound-effects/sword-slash-with-metal-shield-impact-185433/

https://pixabay.com/sound-effects/heal-up-39285/

https://pixabay.com/sound-effects/fire-magic-6947/

https://pixabay.com/sound-effects/oof-97698/

https://pixabay.com/sound-effects/high-tech-spectral-creature-194036/

https://pixabay.com/sound-effects/cute-monster-wiggle-100273/

https://pixabay.com/sound-effects/fireball-whoosh-2-179126/

https://pixabay.com/sound-effects/door-slam-172171/

Font

https://www.dafont.com/dogica.font

Get Gloaming Emanations

Leave a comment

Log in with itch.io to leave a comment.