Documentation + User Guide


Documentation + User Guide

Concept vs Final Version

Throughout the time spent on this project, I can say that the end result didn’t stray too far from my vision of the game in the first place. I stayed very close to the original concept on a lot of aspects and even expanded past the concept towards the end once I accomplished most of the original concept. The boss intro, music, bloom, player reward, pogoing and difficulty modes are examples of going beyond the concept, as I hadn’t even considered these things when coming up with the idea. In terms of what was thought up initially, below is a list of features from the concept and how they compare to the final version.

An image of the main concept art for reference

The stage is the same layout from the main concept art image, with two platforms hovering on either side and a main stage for the player to move around in/

The boss has the same design in the concept, as translating the blocky art from the concept into the actual game was surprisingly easy. Even the joint movement of the arms was properly implemented, although not quite to the same length and size as in the concept.

2 of the attacks are the same, with the spike wall and laser beam rotating attack being implemented almost exactly as described in the concept art. The only issue here was that having the arms slam for the spikes was much harder to implement, and thus I ran out of time to properly implement it. Instead, the arms just sort of rush downwards but not quite slam. 

The players movement is exactly as planned, the player sprites are also exactly as they appear in the concept, with the only issue being that I didn’t quite get to implement the eyes looking in the attack direction. Otherwise the sprites are basically 1 for 1.

The player's attack is exactly as planned, even the animation followed what I described in the concept.

The color scheme is different from the white to gray and faded blue shown in assignment two. This was due to two reasons, one being that the initial inspiration for the arena is hornets battle arena in the godhome pantheons from Hollow Knight, where its a pale blue windy background and golden arena and walls. I wanted to be able to make the blue work in the background but just never got it to look nice in my opinion. The other reason is because changing the background to a dark gray color lets the bloom of the boss attacks stick out nicely. The lasers almost glow because of that without me having to add any lighting effects at all, which I found to be a really good addition to the game. The stage being gold also nicely contrasts with this black background and player and stayed with the initial inspiration for the stage.

There is no phase two of the boss, whilst I would have loved to add this, this wasn’t implemented because of time constraints. I just didn’t have enough time and it wasn’t high enough of a priority to add to the game.

There are no different hand utilities such as the spike, saw, or club looking hand extension things. This is because I quickly realized I’d only have like 2-4 attacks total in the fight, and that I wouldn’t even be using the hands for most of them since I hadn’t gotten the hands working by halfway through the project anyway. As such, I just decided they weren’t necessary and I wouldn’t be able to make use of them even if I did add them onto the hands in some way.

The boss tp locations translated exactly as planned in the concept page. 

Asset List and Description

The assets were bundled into three categories: scripts, others and processing profiles. Not a lot of effort was put into proper naming conventions or efficiency so it is a bit muddled. All musical elements were taken from free online sound effects websites, as I have no idea how to make them myself. Some scripts were taken or inspired by the tutorials in this course.

Scripts

BossController

This handles the bosses AI / behavior, methods for calling attacks and moving between positions

ChangeDifficulty

Changes the difficulty playerprefs between veteran and normal

ChangeMusicVolume

Changes the volume of the music based on the sliders position

ChangeSoundEffectVolume

Changes the volume of the sound effects based on the sliders position

DestroyAfterTime

Destroy an object after time, useful for boss projectiles. Might be in a previous tutorial, but was not intentionally taken from one.

DrawLineBetweenPoints

Draws a line between two points that can move, used for the boss arms

EndGameListener

Checks to see if game has ended or not, modified version of the listener from tutorials

HealthBarUI

Draws the player health and the enemies health bar, also determines the health of the boss

InverseKinematics

Does the math to make the arms move like actual arms with joints

LaserBeamRotate

Makes the laser gameobjects rotate and change opacity during the laserbeam attack

MasterController

Houses all functions for the player, including movement and getting hit

MoveBetweenTwoPointsCurve

Useful for making a smooth transition for the boss between its resting points and at the start of the fight, taken from a previous tutorial

PauseMenu

Pauses the game and brings up the pause menu canvas stuff

PlayerAttackController

Controls the swing attacks for the player, as they are separate objects. Covers the animation, the cooldowns, the direction of the swing

PlayerColorChange

Unused script, was meant to be a reward for beating the boss in which the player would be a constantly changing rainbow, however was unoptimized and caused frame drops so unused.

PlaySong

Starts the music in either the menu scene or the boss scene

QuitGame

Unused since a web browser doesn't need a quit game button

SceneSwitcher

Switches between the 4 scenes in the game, being the menu, boss fight, win screen, lose screen. Taken from a previous tutorial

ShowIfBeaten

Changes the medallion on the menu to be invisible if the player hasn’t beaten the game yet, but for some reason isn’t working on the itch build, is a small problem, not really a bug though just assume you deserve that medal for starting up the game

SpikeMoveUp

Handles the bosses spike wall attack, making them move up then back down after a time.

Other assets

Attack on titan theme

This is the music that plays on the main menu, gotten from Samuel Kim Music: https://youtu.be/GfSFKimZxoQ

Also from Attack On Titan

Beam pivot prefab

This is the laser beam prefab for the bosses laser circle attack, has the relevant scripts and appearance

Black hole

This is just a black coloured square that covers the bosses face while doing the laser beam attack so you don’t see the end of the laser beams, as it looks awkward.

Boss death particle

The particle effect the plays when the boss dies

Boss arena scene

The scene where the gameplay and fight takes place

Bosswin scene

The scene that is displayed over the boss arena scene if the boss wins the fight

Enemy hit particles

Particles that play when the player hits the boss

Gradient

This is the background image used for the fight, just a simple gradient that I recoloured to fit the simple colors of the game

Healthend 1

The end cap of the boss’s health bar for the left side. Was also just flipped and used for the right side as well

Healthend 2

Not used, was meant to be for the right side of the boss health bar, however ended up not needing it

Healthfull

The full sprite of the players health icons, it's just a square

Healthsplit

The split in half, darkened version of the player's health icon, shows if the player has lost this health point.

Hit hurt

Sound the player makes when they get hit

Imu

The song that plays when the player fights the boss, made by DIego Mitre Music: https://youtu.be/7Zsu2MQq1Hw

Also from One Piece

Laser2

Sound effect for the laser beam, settled on using this one since many of the others I tried didn’t work at all

Menu scene

Scene for the main menu of the game

Minecraft

The font style the game uses, not sure if it actually is from minecraft or not, just found it on a font style website

New Physics Material

Material applied to the player to stop them from sticking to walls

Player Hit Particles

Particles that emit from the player when they get hit

PlayerAnimationController

This went unused, as I quickly decided to just use a spritesheet and in-script controller instead of a proper one as it was just easier to do.

PlayerAnims

The spritesheet for the player, housing all the sprites they have when moving around

PlayerAttack

The frames / sprite sheet for the player attack animation, when the player swings the sword

PlayerWin

The scene that appears if the player wins the boss fight. Has the victory text on it

RedHealthbar

Is a red square, Is drawn and stretched to fix the red front of the boss health bar

Spike Sprite

Sprite initially used for the spike wall attack, ended up not using it as I could not color the sprite since it was completely black

Spike Prefab

The prefab for the spike wall, with its appearance and scripts to make it move

SpikeIndicator Prefab

The appearance of the spike indicators that appears on the stage just before the spike wall appears

Spikey Projectile

The prefab for the projectile used for the bosses hand attacks, has the appearance and relevant scripts to make work

SQUARE sprite

The backbone to all my art in the game, was used to make the spikeyprojectile prefab, blackhole, spike prefab, spikeIndicator prefab, the stage platforms and the menu art for the player. 

Swing whoosh 1

Sound effect for swinging the player sword. There are three so it doesn’t get too repetitive hopefully. 

Swing whoosh 2

Sound effect for swinging the player sword

Swing whoosh 3

Sound effect for swinging the player sword

YellowHealthbar

Yellow Square, stretched and scaled to fit the behind part of the bosses health bar that appears when the boss is hit

There are also profiles created for the processing effects, however I have no idea which ones are used or not since there were issues creating them and I made too many. These are listed in the BossArena_Profiles folder and the BossWin_Profiles folder

Summary of Tester Feedback

From the testing session in week 12, I received a total of 8 responses to the form.

The main points were:

  • Difficulty, some people found it frustratingly hard
  • Dash cooldown was off, differed depending on the framerate
  • Boss was sort of hard to see against the background
  • Pogoing was pointless (still fun though)
  • Zoom out the camera a bit, players didn’t see the edge of the stage and just walked off
  • Lack of attack variety, two attacks did get repetitive to fight against

All of these were addressed in the last week of work, as well as some other things I noticed for myself (such as bloom on end screens and layering issues). Difficulty was addressed by adding two difficulty modes, normal and veteran. Normal features slower laser beam speeds, more time between spike indicators and spikes appearing and more time to react to the third attack. Veteran is just what I was playing as in the editor mode whilst working on the project. The dash cooldown was just a simple fix of moving the cooldown loop to fixed time so it was actually consistent no matter the framerate. Whilst I did want to add some glow or an outline to the boss, I tried both of these and they didn’t work out so I instead just made the main boss body lighter so you could see it better. The third attack I implemented can be avoided by pogoing on top of the boss, which addresses the pointlessness of pogoing and the lack of attack variety. Did just change the size of the camera a bit so players could actually see the edge of the arena and realize they would fall off. That was about all I could get to in the last week in terms of addressing the feedback.

Some other miscellaneous points that weren’t necessarily acted on feedback or improvements were:

  • Current music fits the game well
  • Sound was balanced fine
  • General player movement was smooth
  • Holding mouse down might be nice
  • Another option for left shift dashing would be handy for some
  • Jumping up through platforms to stand on them like in some other games might be handy here (didn’t do this since would have to do one way collisions, plus a way to drop down through the platform
  • Some victory music maybe, a cape to wear if you've beaten the game
  • Invulnerability frames on the dash (didn’t do this since deemed it a skill issue and also not too useful)




User Guide

Controls

Harrowing has a relatively simple control scheme with only 5 different inputs to control the player.

A and D move the player left and right at a constant speed, there is no need to worry about acceleration or acceleration and the player can even more at this speed in the air. The player cannot however move while the game is paused or while dashing.

Space lets the player jump. The jump height of the player is determined by how long the button is held, letting the player tap jump to fit in gaps if needed, or hold it to reach the floating platforms.

Left Mouse Button lets the player attack by swinging their sword. The direction of the sword is based on if the player is holding W or S, which will make it swing up and down respectively; if not, then if the player is facing left or right, it will swing left side or right side. 

Finally, the player can press the left shift to dash a set short distance. During this time, the player will become slightly transparent and only become fully visible once the dash is off cooldown. You can only dash left or right, depending on the direction you are facing. You are not immune to boss attacks during a dash

UI Elements

During the fight, the player can press escape to open up the pause menu, however this cannot be done during the boss’s intro cutscene as it messes with the music sync.

On both the menu screen and the pause screen, 2 volume sliders are found in which the player can use their cursor to move the slider up and down, which will immediately change the volume of either the sound effects in the game, or the music track.

On the menu, there are two difficulty buttons, normal and veteran, which you can click to change the difficulty of the boss fight. For players new to the genre or not familiar with these types of games, I would heavily recommend not choosing veteran difficulty to start with

Finally, the play button on the menu will start the boss fight, thats it.

Gameplay Functions

Boss behavior

The boss has a distinctive pattern to its moves and attacks, such as what moves it chooses and when it decides to move. Figuring this out might give you an advantage during your fight!

Spike wall

One of the bosses attacks is a spike wall. The boss will summon spike indicators at the bottom of the stage from left to right. During this time, you should try and quickly position yourself between the indicators, as giant spikes will soon emerge from them to damage you

Laser beam

The boss will summon a circle of lasers that rotates at a constant speed. The lasers periodically turn off and on, leaving you with a window where you might be able to skip through a laser to have more space to dodge them.

Hand Spike Shooting

The boss will stretch its arms outwards and the hands will glow white to indicate this attack. It will then fire projectiles from the top two hands and bottom two hands. Trying to find a spot none of these projectiles hit is key to dodging this attack. You’ll also be able to get an early warning when this attack is coming if you figure out how the bosses behavior works

Getting Hit

When hit by any of the bosses attacks, the player will get knocked back a bit and enter a brief period of invulnerability frames. After getting knocked back, use the i-frames to reposition yourself.

Falling off the stage

The stage is not endless and has clear bounds so be careful where you stand. Whilst going offscreen can be helpful dodging the laser attack, make sure you land back on the platform as if you fall off, you're not coming back up!

Pogoing

Pogoing is a feature in which, if you land a downward slash on the boss, you will get knocked up a bit and are able to continue “pogoing” on the boss. This might be useful for dodging a certain boss attack or hitting the boss during some of its attacks.




References

Music assets:

Diego Mitre Music (2024). Imu’s Theme But It Keeps Changing | One Piece 1089 | Extended Version. [online] YouTube. Available at: https://youtu.be/7Zsu2MQq1Hw  [Accessed 31 May 2024].

Main Boss Music

Samuel Kim Music (2021). Attack on Titan S4 Episode 13 OST: Niccolo Revenge for Sasha Theme (HQ Cover). [online] YouTube. Available at: https://youtu.be/GfSFKimZxo  [Accessed 31 May 2024].

Main Menu Music

Sound Effects:

mixkit.co. (n.d.). Download Free Sword Sound Effects | Mixkit. [online] Available at: https://mixkit.co/free-sound-effects/sword/

sword swing sound effects

sfxr.me. (n.d.). jsfxr. [online] Available at: https://sfxr.me/

 was used for the player hit sound effect

Code was taken from the following tutorials:

bendux (2022). 2D Player Movement In Unity. [online] YouTube. Available at: https://www.youtube.com/watch?v=K1xZ-rycYY8&t=2s [Accessed 31 May 2024].

Basic movement and jumping + physics material no friction 

Robot Academy. (2017). Inverse Kinematics for a 2-Joint Robot Arm Using Geometry | Lesson | Robot Academy. [online] Available at: https://robotacademy.net.au/lesson/inverse-kinematics-for-a-2-joint-robot-arm-using-geometry/

Not code, but maths was translated into code to get the arm inverse kinematics working

Unity Technologies (2019). Unity - Scripting API: [online] Unity3d.com. Available at: https://docs.unity3d.com/ScriptReference/.

Unity scripting API was a godsend for looking up methods and properties I could use when writing scripts

Hexagon (2020). Glow Your UI in UNITY using URP. [online] YouTube. Available at: https://www.youtube.com/watch?v=OIQ72Ipzu2o [Accessed 31 May 2024].  

Helped me with applying bloom to UI elements as well.

Special Thanks to Ian Lewis for helping with the inverse kinematics math.

Special Thanks to all the playtesters that gave feedback on the game during the testing session.


Extra Section

Almost all of the feedback was constructive and nice, however there was one response that was very unhelpful and aggravating to read and I am going to talk about it because it frustrated me. Feel free to not read it if you want, I’m just mad about it. Don’t mark this part, it doesn’t affect the rubric at all.

This person had no complaints about the music or sound, but when asked if the boss attacks felt fair, they responded with There is a little requirement for the player's skill. But play it a cou ple times and it'll be fine.” What does this mean??? That you don’t need any skill to beat it? That even with all the skill in the world you won’t be able to beat it? What’s the little requirement? It doesn’t make sense to me. When asked if the game felt reasonably polished, if not what they are, they responded with The graphics are not very polished and the background color needs to be changed. the boss could be a little more detailed to make it look more pressing. More platforms can be added.” Wowzers. No problem. I’ll just remake the entire game's art and animations in the one week I have left. Sure thing. Then, the background color NEEDS to be changed. Why?? It's not because you can't see the player, or the boss attacks since they are almost obnoxiously bright. Why not just make the boss brighter? Who knows, they didn’t explain themselves. Then making the boss more detailed to be more pressing. I don’t know what you mean by more pressing, as in it stands out more? What more details do you want? What should I actually change about it, I don’t know because they don’t say anything specific. Then they say I should add more platforms. WHY???? More platforms to where? So you can climb to the top of the screen, lose your character and fall off? Bump your head on the top of a platform that's inconveniently placed? At least tell me where you think a platform should be, because this makes no sense. Finally, in the compliments section instead of the other feedback section, they say “Make the game map complexity a bit more. Make the overall scope of the screen larger and maybe a little more visual comfortable. The player needs to be given some hints that leaving the platform will die.” Make the game map complexity a bit more??? What in the hell does this mean?? Add more platforms?? Why??? Explain yourself, I need reasons to do things, not just things to do. The larger screen, yeah I get that it makes sense that's why I changed it. But then giving hints that leaving the platform will kill the player, what hints do you want? A bright flashing warning sign across the screen saying danger? What do you expect to happen when you walk off screen? That you can just keep walking endlessly and avoid fighting the boss at all? It was just infuriating and I do not appreciate this feedback. All the others were really good though cheers.

Files

Week 4 build.zip Play in browser
May 31, 2024

Leave a comment

Log in with itch.io to leave a comment.