Game Documentation


Comparisons to the concept

Spear ended up being rather close to the concept document, excluding a couple of features that weren’t implemented, the major one being bonus collectibles for additional scoring. We’ll go over each one in a bit more detail, though:

Environment

The environment ended up being very close to what was envisioned in the concept document, as the sample sprite sheet used for that ended up being the one used in the final game, as well as encapsulating the sort of ruined tower aesthetic for the level design.

The Spear

The spear was implemented mostly to the specs of the concept document. The major difference is that rather than using the spear as a jump boost, it will pull you towards the point of impact. The use of the spear in puzzles was not implemented, due to time constraints, but could still be added in the future.

The Puzzles

The puzzles were implemented with most of the features in the concept document! The major missing factor is differences in puzzles, as currently the only puzzle that exists involves collecting coins to open a path. The switches and using the spear as a trigger did not get implemented.

Movement

The movement is very close to what was originally imagined in the concept document! As mentioned earlier in the spear section, the major difference is that rather than a boosted jump, the spear on collision will pull you to the point of impact. The spearless movement, however, was implemented rather well, with the addition of being able to ramp up jump height off of angled floors.

Enemies

Enemies were implemented in a pretty rudimentary state; they simply chase the player around, at varying speeds. They do, however, have checks for whether they are on screen, and also whether they have direct line of sight to the player, to prevent them from chasing you through walls/from the other side of the map.

Feedback

The testing session went rather well! There were only 3 responses to the form, but they provided some very useful feedback. What the form was asking and the responses to it are as follows:

Do the controls suit the style of game?

2 of 3 responses rated them at 5/5, and the remaining person rated it 4/5. This infers that the control scheme is rather suitable for the style of game, which makes sense as the controls for the player are straightforward, and the spear just requires a little testing.

Does the art style suit the game?

3 5/5 responses here. This is a good sign, as the aesthetic that’s currently in the game is what I had initially envisioned in the concept document, and it being reaffirmed as a good decision is great to hear from other people.

Did you manage to jump high off of an angled floor?

This was something added to see how intuitive the angled jump-boost was. All 3 testers did not notice the ability to do so, and so in the submission of the game, I’ve added angled floors in more prominent locations, like the edges of platforms, in the hope to make the mechanic more obvious.

Did you encounter any bugs? If so, what kind?

There were some pretty consistent bugs that were found, such as enemies disappearing, and the spear being backwards, as well as the spear staying attached when you died. All of these have (at least attempted to have) been fixed, and the game has only a couple things that remain that are more obvious now that these ones are fixed.

How difficult did you find the game controls?

This had a very spread-out response. On a scale of 1 being easy, and 5 being hard, there was a response for each of 2, 3, and 4. This shows, compared to the earlier question of how well the controls suited the style of game, that the spear mechanic can be rather hard to get used to, more than likely through the swinging controls. There was an attempt to delve a  little into fixing the swing, but this was put to the side in order to make a more complete prototype.

Thoughts on enemy placement?

Two 5/5s, and a 4/5. The next question, ‘Anything you can suggest to help enemy placement’, then revealed a few things. Firstly, they looked too much like consumables or a check point. There’s been an attempt to rectify this by turning them from a pinkish colour to a deeper red. Another tester suggested adding more and allowing the player to kill them with the spear, which was not something that was implemented, but may be explored in the future. The third player’s only comment was the one enemy in particular was in a very bad place, as it was rather close to a checkpoint.

Any other suggestions?

This was a really helpful one! UI elements to show when a checkpoint has been passed was the first bit of feedback I got from this question and was implemented immediately. The doors now have a particle system that plays once when you pass them for the first time. One player chose not to provide anything for this question, and the final player asked for camera movement to see what’s below the player. This wasn’t implemented directly, but the camera now sits lower than it used to, providing more downwards vision.

Asset list:

Will be in alphabetical order, with the folders it’s contained in the description of the asset

Scripts

Checkpoints – This is what plays the confetti when a player passes through a checkpoint. Just instantiates an object that has a particle system. DestroyOnCollision – Destroys the object that this script is attached to when it’s collided with, used for the collectible coins – Taken from the KIT109 tutorials at UTAS
DestroyOtherOnCollision – Modifies the above to destroy what collides with this object. Used to destroy puzzle doors after they’ve moved out of the way
DrawRope – Edits the drawline on the spear to draw a rope from the spear to the player.
EndGameListener – Detects when the game has ended to play the finishing scene over the top. – Taken from the KIT109 tutorials at UTAS EnemyRespawn – Cycles through an array of enemies to reset their position when the player dies.
FollowPlayer – In the Raycasting folder, draws a line from the object it’s attached to, and draws straight toward the player. – Taken from the KIT109 tutorials at UTAS
Movingobject – Controls the moving platforms, accepts a left limit for movement, and a right limit for movement, and moves between their X positions
Mover – In the AI folder, Class script that allows the Seek script to function correctly – taken from the KIT109 tutorials at UTAS PlatformParents – Attempted to make the player a child of the moving platforms to move with them, making them a child works, but the effect does not.
PlayerControl – Player controls, for movement left/right and jumping. – Taken from the platformer live code demo for KIT109 at UTAS PlayerShooting – Throws a prefab into the gameworld, in this case, the spear – Adapted code from the KIT109 tutorials at UTAS
PlayVideo – Used to make the video in the background of the title screen play – Helped work by volkak on this reddit post https://www.reddit.com/r/Unity3D/comments/ah8yuy/videos_do_not_play_in_webgl_build/
PuzzleMovement – What it says on the tin. Accepts a moveTo object, a speed, and an array of coins, and once those coins are gone, it moves the attached object towards the moveTo.
RaycastUtils – Base folder for some additional raycast utilities – Taken from the KIT109 tutorials at UTAS
ReadHighScore – Used on the high score screen to display the highest time
Respawn – Respawns the player if they hit a hazard, and triggers EnemyRespawn
SceneSwitcher – Used to navigate between scenes – Taken from the KIT109 tutorials at UTAS
Seek – In the AI folder, checks to see if the enemy it’s attached to is on screen, and if it can see the player, moving towards the player if both are yes – adapted from code from KIT109 tutorials at UTAS
SpearMechanics – Used to implement the mechanics of the spear. Activates the distance joint on the player when wood is hit, breaks the spear if it hits anything else
Timer – Keeps track of the time in the level
TimeShower – Shows the time when the player finishes the level

Prefabs

CheckPointParticles – The prefab for the confetti effect for the checkpoints
SpearPrefab – Contains all the parts that make the spear work, like SpearMechanics and DrawRope, as well as a collider and rigidbody for its movement and collisions

Sprites

Coin_silver – Spritesheet used to make the coins and their animation – (Bellanger, 2012) GoalJar – Sprite for the end goal – Made personally. PlayerSprite – Spritesheet used for the player and their animations, including some that weren’t implemented. – (Disthron, 2015) Castle_tileset_part 1, 2, and 3 – Grouping these together as they all serve a similar purpose but provide different parts. All three are tile sheets that provide objects placed in the world, part 1 provides the floors and walls, part 2 provides the doors, torches, and wood, and part 3 provides the spikes and chains. - (rubberduck, 2014)

Others

There are a few other things worth noting that are probably not worth making categories for their own, so they’re going here.

Blur – In materials, a Shader used to create the blur effect for the title screen – (Zii, 2020)
SlipNSlide – In materials, a physics material to prevent the player from sticking to the sides of walls
Title – In StreamingAssets, an MP4 that’s used to play the video on the title screen.

References:

Bellanger, C., 2012. Animated Coins. [online] OpenGameArt.org. Available at: <https: opengameart.org="" content="" animated-coins=""> </https:>

 Disthron, 2015. Mr. Necromancer Man [Animated]. OpenGameArt.org. Available at: https://opengameart.org/content/mr-necromancer-man-animated

rubberduck, 2014. pixel art castle tileset. [online] OpenGameArt.org. Available at: https://opengameart.org/content/pixel-art-castle-tileset

Zii, 2020, UI BLUR in Unity ShaderGraph for 2D&3D games, Youtube.com, available at: https://www.youtube.com/watch?v=cjfNgra1uWk&ab_channel=Zii

Files

SpearBuildU.zip Play in browser
Oct 17, 2021