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
Harrowing
yeah
Status | Released |
Author | patttriple |
More posts
- Devlog Week 5May 26, 2024
- Devlog Week 4May 19, 2024
- Devlog Week 3May 11, 2024
- Devlog Week 2May 05, 2024
- Devlog Week 1Apr 27, 2024
- Harrowing Concept Devlog Assignment 2Apr 21, 2024
Leave a comment
Log in with itch.io to leave a comment.