Hyper Drone Racer Log

Julian Whatley

2021

Intro

Just a quick note about what this logbook is about:

As a Masters student in Game Design at the University of Plymouth, I worked on my Final project in a Team of 3 and have documented the process as best I could below. Links and resources will be at the bottom of the page, followed by references and an email form for you to ask any questions. 

Originally it was only 2 us working on the project, but later expanded to 3 people, so naturally I took lead role with the project as the only programmer.

Links

Here you can find the links to download the project files, the game, and the Game Design Document.

Project Files on Uni OneDrive

Hyper Drone Racer available on Itch.io for download

Game Design Document on Uni OneDrive

Gameplay footage

15th June 2021

Had meeting with Dave today about what idea we’re working on. We decided to go with a drone racing style game, using an endless runner style mechanic, in a low poly city. We’ve discussed how and what obstacles will be in the city to add a challenge to the game, and how the mechanic will work. We’ve settled on having check points that the player and AI will need to go through in order to add more time to the countdown clock. Once the clock reaches 0 then the game is over, and the score is judged on the amount of check points the player has entered.

We’ve discussed how the countdown clock may work and have suggested having diegetic UI in the form of a battery indicator depleting instead of a clock counting down, and every time the drone goes through a check point the drone gets recharged by a wireless tesla charging coil.

We’ve also suggested having a man in a van following the drone to controlling. Multiple vans (AI), or one large truck with all the AI drone controllers.

 

Set up a URP Unity Scene with Collab turned on and invited David and am setting up a prototype based on a 3D flappy bird game I worked on in December 2021.

17th June 2021

Refined drone controller, but have realized it may not work as intended, I also set up a ray cast from the front of the drone to detect if it collides with something.  

I’ve come up with a quick dirty solution for when the drone goes out of bounds. When the drone approaches the edges/floor, a warning will appear saying “warning drone crash imminent.” and if the drone goes too high then it will say “warning drone almost out of range.”  

Created a Camera Follow Script with SmoothDamping. 

Testing out my LowPoly Tree and Leaf pack v3 (Still yet to be approved on Unity Asset Store)

22nd June 2021

Importing new city block that David created as a prefab, making sure the scale is correct on my prototype. City 1 now scrolling, will probably work on new spawning system though. Dave and I discussed having a more optimized city, as the city asset Dave downloaded is very unoptimised.  

We will likely still use the buildings from the asset, but will create our own floor.  

25th June 2021

Placing buildings on new floor, via script. I will likely create a random script which will only work on enable. And will pick random buildings to place on the allocated spots on the floor. 

30th June 2021

Working on getting the random spawner working, the idea is to get the buildings to spawn at a location, but not overlap with another building. 

1st July 2021

Skill sharing workshop, I was tasked with creating a skill that I can share to the entire class as a presentation that people could follow along with, so I did a live presentation of creating an endless runner with an easy to understand movement script, spawn script and a set active false timer script.

The narrative for the live presentation is as follows: 

This can be approached in 2 ways 

set up a 3D scene, make a platform tile prefab, for example a road, but can be roof tops to hop across, basically a foundation. Then duplicate it as many times as you want but ideally 3 times, have a plain empty one, then for the other 2 add some obstacles like so.  

Then create a GameObject and call it StartPointPlayArea or something similar.  

Create a StartPoint (position them ideally at 0, 0, 0) for the first method we can position the start point about 3 tiles in front of the camera.  

Now for the first method of doing it, a much easier way I think but less control.  

Set up 4 scripts called: 

Spawner 

PlatformTile 

SetActiveFalseTimer 

CityMover 

Starting with Spawner, add the script to the StartPointSpawner then write this: 

Then in the inspector, drag the StartPoint over from the Hierarchy and drag the prefab platform tile you made into the game object cityblocktile or what ever you named it.  

The fun part is setting the start time btw spawn.  

But next we go over to Platform Tiles and attach this script on to the platform tile prefab, This script basically picks a random platform tile with or without obstacles. (ignore the startpoint and endpoint, I was experimenting)  

Add the obstacles like so. And that’s done. 

The next script, set active false timer, is exactly what it says. onEnable it’ll start a countdown (wait for seconds) in this case 15 seconds then destroys the object. We attach this script to the PlatformTile 

I don’t recommend using instantiate and destroy as your game can take a performance hit, look into Object Pooling, but for now, this should work like this absolutely fine.  

Next is CityMover, or what ever you called it. Basically, you can move the platform tiles automatically. At a certain speed. Using one line of code in Update. And that’s pretty much it. Just experiment with it, add different types of obstacles etc. and yeah. I played around making a 3D flappy bird haha.  

 
The second method allows for far greater control over the speed and spawning. 

Basically this one takes the camera and checks if the platform tile is still seen on the screen, if it’s not, then it set active to false and snaps the endpoint to the startpoint on the furthest tile from the camera.  

And as you can see, theres no need for the city block mover script or the set active timer script, as the new spawner script does all the object pooling.  

I’m also working on a random building spawning system, so every tile that spawns will be unique.  

5th July 2021

Continuing the BuildingSpawner script and getting the buildings to place correctly. 

BuildingManager and BuildingSpawner scripts nearly complete, Buildings randomly spawn upon start of application, but dont randomise everytime a tile moves. 

7th July 2021

Making folders on the onedrive so my team can share their work there, and so I can have 2 more backups of the project. I will upload once at the end of the day.  

9th July 2021

In meeting with David talk about the checkpoints, and what they should look like, while I quickly make a temporary van prefab with driving animations.  

Making a barrier for when the player gets too close to the buildings, floor and ceiling(to high).  

12th July 2021

Working on new out of bounds system using a intersection shader. When the player gets near the boundary it will be visibly clear.  

I’m also having a look at creating a Outline shader for the screen. The shader will detect edges and draw a black outline on it.  

14th July 2021

Added a Boolean to disable outline post fx.

20th July 2021

Create a To Do list. 

Todo List:  

Create out of bounds scripts that pause game and say game over, try again, and do the animation event for the drone when it comes into contact with one of the colliders.  

Create script for Drone going through checkpoints to recharge depleting battery. (Battery can simple be run on a timer script that counts down, and every time the drone goes through a checkpoint it’ll just add an int value to the timer.)  

Create or adapt a way for the checkpoints to be randomly placed.  

Create a sound manager script 

22st July 2021

Continuing from yesterday.  

Added checkring obstacles and disabled colliders on them and set tigger box as trigger. 

3rd August 2021

Recovering from Covid, Now playing catch up with the team, and getting the check points working properly.  

Check points work and charge the drone. 

4th August 2021

Creating a function to check which checkpoint the player has gone through.  

Check point system now in place.

5th August 2021

Checkpoint holograms, battery percentage text, post fx, tilting  drone when strafing up down left and right. 

https://youtu.be/UknQhkx4axs Latest version 😀 Changes include battery percentage indicator text, Holographic checkpoints (dave is working on a model to make it fit more in the game world.), Drone now tilts when steering left right up or down. 

6th August 2021

Worked on the holoshader a little more to make it fit the game world, and am now working on a gameover screen which will show stats.  

Pause Game with no pause screen, GameOver with stats screen now complete. 

10th August 2021

Working on more stats to be shown on gameover screen. Add code to play the sounds. Once drone UV is done, add vfx to body of drone for each time the drone goes through a checkpoint.

11th August 2021

Continuing on yesterday’s task of getting more stats shown on screen.

12th August 2021

Class discussions/group scrums 

Continuing to work on getting more stats shown. 

Tasking David to write up a To Do list in Trello.  

16th August 2021

David is going to import the new buildings,  

I’m going to get some placeholder UI working to show more stats on the game over screen, and have a placeholder pause screen. Added press space to start text mesh pro text.  

17th August 2021

Changed some of the checkpoint colours, gave David some guidance on what or how to layout some building blocks and what colours to use. Continuing to optimise code, by moving the score/renaming score to distance score into the game controller. This way I can show the distance travelled on the Game over screen. I also put the dronecontroller update into an if statement to check if the game has started so the user can’t trigger a game over before the game has even started.  

Added a blur shader to left wall to see what it would look like. 

18th August 2021

Blending the blur shader as the player gets closer to the walls.  

New issue: distance is calculated from the centre of the object not from the edge of the object.

19th August 2021

Changed the wall shader again to something like the electric field around the drone when charging.  

I’ve redownloaded the project from the cloud to the fastest m.2 NVMe PCIe4 Drive in the world in the hopes to stop the Hold on messages which appear for as long as 30 minutes.  

New Shader and Post FX when out of bounds 

20th August 2021

Creating a Score Multiplier System. 

score + scoreValue + distanceScore * scoreMultiplier. The scoreMultiplier will change depending on what checkpoint the player goes through.  

Score Multiplier system almost finished! 

I created a visual indicator that appears on the player every time the player goes through a checkpoint. X2, x4, x6 and x8. 

Disabled all but one floor tile model on the obstacles so then we can use X empty obstacles. Ready for the tutorial when I get round to doing it, which will be shortly.  

Microstutters happen often if I try to spawn the city block tiles either side of the main spawner. Will look into garbage collection to see if that’s the cause!  

I created a fake fog shader graph because the built in fog was causing lighting issues making it look like the screen was pulsing.  

I removed all the rigid bodies and turned all the colliders into triggers, and added a rigid body to the player, and left a collider on it.  

Changed how the score system works: 
GameController.combinedScore = ringScore * combo; 

GameController.totalScore += GameController.combinedScore; 

GameController.totalScore += (GameController.distanceScore / 500); 

gameController.scoreText.text = “Score = ” + GameController.totalScore.ToString(“0”);

21st August 2021

Going to create a settings screen on a pause menu, a start screen and a loading screen, with persistent saving for settings. 

But first I’m going to add a Miss checkpoint object using something like an X when you miss. 

Now moving all the score data over to a save system which will save the high score every 3 seconds.  

A little bug, that can be easily fixed, is with the score being updated twice if you clip the sides of the checkpoints. A solution would be to hide the trigger boxes on that checkpoint as soon as it touches a check point, e.g., if player misses, then hide all trigger boxes. And have them all slightly different depths until a more permanent solution is available.  

Now working on a start scene with a settings panel prefab.   

Some Very Heavy optimisations to the code. Temp Settings when paused. Inputslider default is set to 0.5 and saves locally. 

For some unknown reason I can’t save the HighScore. 

22nd August 2021

Optimised some more code and made a simple loading screen which fakes the loading time, as the game loads super quick due to little assets, it gives the player enough time to read the tips on the loading screen. I used ShaderGraph to make the clouds animated. Optimised the ScoreManager to work correctly in adding the score. And now have a score shown on the screen when playing.  

Van Now slowly moves towards drone on X axis, Am working on tilting the van!  

Van now tilts. 

Tomorrow I will work on a sound manager and add simple effects.  

23rd August 2021

Changing some of the richtext gradients  

Just had an issue with David organising some files and deleting the wrong file, so I told him to click on collab and revert the file change back to the file that’s in the cloud.  

Working on curved world shader. 

Writing up a sound manager which can be accessed on any script. 

Disabled curved world shader because it was causing problems with the imported models as they were imported sideways etc.  

24th August 2021

Now actually working on a SoundManager 

Then will look into getting the checkpoints and obstacles spawned in time with the music like in beat saber. 

Sounds effects added for comedic purposes. 

obstacles and checkpoints now sync with music. All gameobjects correctly rotated in Prefab! 

25th August 2021

Fixed the ObstaclesSpawner script, stopping spawning the obstacles and checkpoints once the music ends even if the music property is ticked on loop. I simply reset the lastTime, timer and deltaTime variables to 0. Then I took the traffic lights prefabs and created a new nested prefab which allows to have a traffic light crossing spawn in.  

I added “It’s Loading now” sound effect to the loading screen.  

I added an Audio mixer and applied it to the Audio Sources in game to allow me to code a volume slider for the settings menu.  

Volume slider now controls volume of game and saves the value to player prefs meaning the player can come back to the game at a later date and it’ll remember the last value it was set at.  

Added a random function to assist in picking the Very nice and shame audio rarely over the normal dings and dongs.  

Stopped the obstacles moving towards the player when on loading screen.  

Found a bug where the hard checkpoints wont spawn. 

26th August 2021

Fixed a few bugs and made the hard checkpoints rare to spawn.

27th August 2021

Fixed issue with music playing before even pressing space to start.  

Importing mountains and clouds designed by Xianzhi.  

Audio visualiser currently being worked on. 

Checkpoints now bounce to the beat of the music.  

28th August 2021

Music now has intro, and loop. So every time you start the level the intro will play, then it will auto transition to the loop and loop. 

Crowds now spawn at correct height and rotation. 

Tagged all the Obstacles so I can do Object pooling with them 

Tweaks to buildings now scale to sound. Tweaks to boundaries. Tweaks to crowd’s scale.

30th August 2021

The enemy drones now move slowly towards the X and Y axis of the player 

Moved mountains around,  

Tried working on menu system that can be interacted with via controller.

31st August 2021

Made some big changes but think it may impact framerate. Duplicated the street while in play, then made a prefab of it and shifted it backwards. So now it looks like the city extends further.

Wrapping up the GDD and proof reading.

1st September 2021

Working on GDD, Menu background music, Start Menu Art. For some reason, at random, it just stops working, both the miss and enter code seems to stop for one or 2 blue checkpoints. Extremely random. Will investigate it later.

2nd September 2021

Working on a trailer.
Tried out Occlusion Culling.

3rd September 2021

Continuing to work on a trailer.  
 
Script for Trailer: 

Camera pans down from billboard and zooms towards van and then up to drone.  

Welcome to the 6th Annual Hyper Drone Tournament where 100s of competitors race their drones across the city. Let’s here you make some noise for our contestants today who have been coached by the amazing team behind Auran Star, last year’s winner. 
 
Camera then cuts, and goes to gameplay footage of drone flying through checkpoints and avoiding obstacles to the beat of the music. 

For those new here, the rules are simple: Contestants enter the back of our dedicated racer van and control their drones into the local airspace. 

Zoom into Battery on Drone! 

Using a specialised battery power sourced from our sponsor; the Aurian Army, they must traverse their way down the road.  

Checkpoints entered to beat of music. 

Don’t worry about signal distances, as the van will make sure to keep within a safe distance to your drone. Holographic Checkpoints must be passed through to gain additional battery to keep you in the field.  
 
However, if you crash into anything within the road you’ll end your run, where our voting panel will determine a final score for the performance.  
 
Looks like the first contestant is about to start.  
 
Are you ready? 
 

References

99designs (2020) ‘Speed Beast Display Font – Befonts.com’, Befonts – Download free fonts, 24 August. Available at: https://befonts.com/speed-beast-display-font.html (Accessed: 19 August 2021).
 
178-MC (2018) ‘Hermes Typeface – Befonts.com’, Befonts – Download free fonts, 28 August. Available at: https://befonts.com/hermes-typeface.html (Accessed: 19 August 2021).
 
Abacab, et al (2015) How to play an audio file after another finishes – Unity Answers. Available at: https://answers.unity.com/questions/904981/how-to-play-an-audio-file-after-another-finishes.html (Accessed: 28 August 2021).
 
Adobe (2021) Color wheel, a color palette generator | Adobe Color. Available at: https://color.adobe.com/create/color-wheel (Accessed: 28 August 2021).
 
AlmightyFork, et al (2016) How to set the parent of an instantiated game object – Unity Answers. Available at: https://answers.unity.com/questions/1220150/how-to-set-the-parent-of-an-instantiated-game-obje.html (Accessed: 5 July 2021).
 
Amaresh, et al (2014) How can I Pool array of objects? – Unity Answers. Available at: https://answers.unity.com/questions/749386/how-can-i-pool-array-of-objects.html (Accessed: 25 August 2021).
 
amcclay, et al (2006) Smoothly tilting an object from left to right?, Unity Forum. Available at: https://forum.unity.com/threads/smoothly-tilting-an-object-from-left-to-right.3262/ (Accessed: 5 August 2021).
 
Astral Throb (2018) GLITCH – A Synthwave Mix. Available at: https://www.youtube.com/watch?v=isIj3tuQTDY (Accessed: 3 September 2021).
 
Autohacker (2021) Music search result for synthwave | Epidemic Sound. Available at: https://www.epidemicsound.com/track/ygiLAYUIb7/ (Accessed: 26 August 2021).
 
better_walk_away, et al (2019) TextMesh Pro – How to set rich text through script?, Unity Forum. Available at: https://forum.unity.com/threads/how-to-set-rich-text-through-script.697757/ (Accessed: 21 August 2021).
 
BHS, et al (2012) Fade Material’s Transparency Based on Distance – Unity Answers. Available at: https://answers.unity.com/questions/242412/fade-materials-transparency-based-on-distance.html (Accessed: 18 August 2021).
 
bonez9oh5, et al (2017) Spawn a random object on more than one position – Unity Answers. Available at: https://answers.unity.com/questions/1341660/spawn-a-random-object-on-more-than-one-position.html (Accessed: 5 July 2021).
 
Brackeys (2017) Smooth Camera Follow in Unity – Tutorial. Available at: https://www.youtube.com/watch?v=MFQhpwc6cKE (Accessed: 30 June 2021).
 
Brady, et al (2015) Assigning HDR color to material property via script – Unity Answers. Available at: https://answers.unity.com/questions/1084467/assigning-hdr-color-to-material-property-via-scrip.html (Accessed: 10 August 2021).
 
bunnynsnake, et al, (2018) Random array spawn C# – Unity Answers. Available at: https://answers.unity.com/questions/1480962/random-array-spawn-c.html (Accessed: 30 June 2021).
 
Chequered Ink (2018) Game Played Font | dafont.com. Available at: https://www.dafont.com/game-played.font?text=Game+Over (Accessed: 19 August 2021).
 
Chidre (2021) Time.timeSinceLevelLoad in Unity. Available at: https://www.chidrestechtutorials.com/gaming/unity-scripting-api-time/timesincelevelload.html (Accessed: 22 August 2021).
 
Crocsx, et al (2018) c# – ShaderGraph Material Color change, Stack Overflow. Available at: https://stackoverflow.com/questions/52244901/shadergraph-material-color-change (Accessed: 10 August 2021).
 
Cyanilux (2019) Fog Plane Shader Breakdown. Available at: https://www.cyanilux.com/tutorials/fog-plane-shader-breakdown/ (Accessed: 20 August 2021).
 
cyberforce09, et al (2019) Randomly pick text from array, Unity Forum. Available at: https://forum.unity.com/threads/randomly-pick-text-from-array.738284/ (Accessed: 22 August 2021).
 
Daniel Ilett (2020) More Holograms in Unity Shader Graph. Available at: https://www.youtube.com/watch?v=wVmhqzzkFYE (Accessed: 5 August 2021).
 
darksblood, et al (2012) picking a random prefab to instantiate?, Unity Forum. Available at: https://forum.unity.com/threads/picking-a-random-prefab-to-instantiate.134197/ (Accessed: 30 June 2021).
 
Dee_Lucky, et al (2018) How to change HDR color’s intensity via shader, Unity Forum. Available at: https://forum.unity.com/threads/how-to-change-hdr-colors-intensity-via-shader.531861/ (Accessed: 10 August 2021).
 
denissuu, et al (2019) Spawning object at gameobjecs’ position., Unity Forum. Available at: https://forum.unity.com/threads/spawning-object-at-gameobjecs-position.794232/ (Accessed: 5 July 2021).
 
Devon O. (2016) ‘Unity3D Endless Runner Part I – Curved Worlds – onebyonedesign’. Available at: https://blog.onebyonedesign.com/games/unity3d-endless-runner-part-i-curved-worlds/ (Accessed: 25 June 2021).
 
diekeure, et al (2018) TextMesh Pro – Change color of a single word, Unity Forum. Available at: https://forum.unity.com/threads/change-color-of-a-single-word.538706/ (Accessed: 21 August 2021).
 
EnvatoElements (2021a) Crash Landing – Playful Font by Motokiwo on Envato Elements, Envato Elements. Available at: https://elements.envato.com/crash-landing-playful-font-QPMR2ZL (Accessed: 19 August 2021).
 
EnvatoElements (2021b) Game Over – Modern Pixel Style Font by TanahAirStudio on Envato Elements, Envato Elements. Available at: https://elements.envato.com/game-over-modern-pixel-style-font-ZFQVLNZ (Accessed: 19 August 2021).
 
EnvatoElements (2021c) Jamer| retro game font by wowomnom on Envato Elements, Envato Elements. Available at: https://elements.envato.com/jamer-retro-game-font-TUVW3C8 (Accessed: 19 August 2021).
 
Extermin8tor (2006) Heavy Weight Gamer Font | dafont.com. Available at: https://www.dafont.com/heavy-weight-gamer.font?text=Game+Over (Accessed: 19 August 2021).
 
Flood, D. (2019) Modern Machine Font | dafont.com. Available at: https://www.dafont.com/modern-machine.font?text=Game+Over (Accessed: 19 August 2021).
 
French, J. (2018) The right way to make a volume slider in Unity (using logarithmic conversion), Game Dev Beginner. Available at: https://gamedevbeginner.com/the-right-way-to-make-a-volume-slider-in-unity-using-logarithmic-conversion/ (Accessed: 25 August 2021).
 
French, J. (2020a) How to make a countdown timer in Unity (in minutes + seconds), Game Dev Beginner. Available at: https://gamedevbeginner.com/how-to-make-countdown-timer-in-unity-minutes-seconds/ (Accessed: 22 July 2021).
 
French, J. (2020b) The right way to pause a game in Unity, Game Dev Beginner. Available at: https://gamedevbeginner.com/the-right-way-to-pause-the-game-in-unity/ (Accessed: 6 August 2021).
 
Gabriel Aguiar Prod (2017) Unity 5 – Game Effects VFX – Electric Implosion and Explosion. Available at: https://www.youtube.com/watch?v=uR2jcU3x3kU (Accessed: 30 August 2021).
 
GetSongBPM (2021) MP3 to BPM (Song Analyser), GetSongBPM.com. Available at: https://getsongbpm.com/tools/audio (Accessed: 24 August 2021).
 
Hanoded (2019) Endgame Font | dafont.com. Available at: https://www.dafont.com/endgame.font?text=Game+Over (Accessed: 19 August 2021).
 
heaversm, et al (2019) Change a material’s emission color intensity property, Unity Forum. Available at: https://forum.unity.com/threads/change-a-materials-emission-color-intensity-property.611206/ (Accessed: 10 August 2021).
 
imagex (2021) Kid Games Font | dafont.com. Available at: https://www.dafont.com/kid-games.font?text=Game+Over (Accessed: 19 August 2021).
 
Impisus2 (2020) ‘I need help in C# for unity to have a car tilt, but not tip over.’, r/gamedev. Available at: www.reddit.com/r/gamedev/comments/jzlkhz/i_need_help_in_c_for_unity_to_have_a_car_tilt_but/ (Accessed: 23 August 2021).
 
jbarrett98121, et al (2012) Using KeyCode.Escape in the Input Manager?, Unity Forum. Available at: https://forum.unity.com/threads/using-keycode-escape-in-the-input-manager.151198/ (Accessed: 28 August 2021).
 
Kizhner, Y. (2019) ‘My Unity C# Code in how to loop a song’, Game Design/Development Blog. Available at: http://www.gamedesigndevelopmentblog.com/2019/09/my-unity-c-code-in-how-to-loop-song.html (Accessed: 28 August 2021).
 
LottaK (2019) Actionbound – Game Design–Tips for Creating Bounds. Available at: https://en.actionbound.com/blog/5d6cebdc5a9b3e418a1d8cdc (Accessed: 18 August 2021).
 
LuigiDonatello (2014) Waveshaper – Radio Signal. Available at: https://www.youtube.com/watch?v=4tXNtIrU4_c (Accessed: 3 September 2021).
 
mabit, et al (2012) Instantiate as a Child of the Parent – Unity Answers. Available at: https://answers.unity.com/questions/260100/instantiate-as-a-child-of-the-parent.html (Accessed: 5 July 2021).
 
mchangxe, et al (2020) Help Wanted – Make Edges Transparent, Unity Forum. Available at: https://forum.unity.com/threads/make-edges-transparent.988627/ (Accessed: 19 August 2021).
 
Medina, G. (2021) Game On Font | dafont.com. Available at: https://www.dafont.com/game-on.font?text=Game+Over (Accessed: 19 August 2021).
 
MrSanfrinsisco (2019) Disable Box Collider?, Unity Forum. Available at: https://forum.unity.com/threads/disable-box-collider.799584/ (Accessed: 28 August 2021).
 
Ned (2021a) NedMakesGames/DepthNormalsFeature.cs, Gist. Available at: https://gist.github.com/NedMakesGames/e71304ae5c9400bea80d38933eff9bac (Accessed: 12 July 2021).
 
Ned (2021b) NedMakesGames/EdgeDetectionOutlinesInclude.hlsl, Gist. Available at: https://gist.github.com/NedMakesGames/ce127e6bcad7e827ff9f4c22f04dc48f (Accessed: 12 July 2021).
 
Ned (2021c) NedMakesGames/RendererFeatureBlitMat. Available at: https://github.com/NedMakesGames/RendererFeatureBlitMat/blob/dcc7a15534826f3c1a4880b3fcf096dd94df94f5/Assets/Rendering/Desaturate/BlitMaterialFeature.cs (Accessed: 12 July 2021).
 
Ned Makes Games (2020) Toon Outlines in Unity URP, Shader Graph Using Sobel Edge Detection! ✔️ 2020.3 | Game Dev Tutorial. Available at: https://www.youtube.com/watch?v=RMt6DcaMxcE (Accessed: 12 July 2021).
 
Noobie, et al (2017) c# – Lerp alpha based on distance between 2 objects, Stack Overflow. Available at: https://stackoverflow.com/questions/47140071/lerp-alpha-based-on-distance-between-2-objects (Accessed: 18 August 2021).
 
NSdesignGames (2020) Endless Runner in Unity, Sharp Coder Blog. Available at: https://sharpcoderblog.com/blog/endless-runner-tutorial-in-unity-3d (Accessed: 25 June 2021).
 
OpendixStudios , et al (2019) Randomly spawning objects,Random Object and Spawn Point? – Unity Answers. Available at: https://answers.unity.com/questions/1634011/randomly-spawning-objectsrandom-object-and-spawn-p.html (Accessed: 30 June 2021).
 
ParadoxMirror (2011) Applause Crowd Cheering sound effect. Available at: https://www.youtube.com/watch?v=barWV7RWkq0 (Accessed: 3 September 2021).
 
Partners In Rhyme (2021) Download claps3 Sound Effects Page 1. Available at: https://www.freesoundeffects.com/free-track/claps3-426833/ (Accessed: 28 August 2021).
 
Pixels, F. (2018) Unity 2d Progress Bars, Fractal Pixels. Available at: https://www.fractalpixels.com/devblog/unity-2D-progress-bars (Accessed: 5 August 2021).
 
Placzek, M. (2016) Object Pooling in Unity, raywenderlich.com. Available at: https://www.raywenderlich.com/847-object-pooling-in-unity (Accessed: 25 August 2021).
 
Placzek, M. (2020) Improving Accessibility in Unity Games – Part 2, raywenderlich.com. Available at: https://www.raywenderlich.com/5783534-improving-accessibility-in-unity-games-part-2 (Accessed: 21 August 2021).
 
Polidario, B. (2021) Unity Tutorials: How To Make a Health Bar in Unity!, WeeklyHow. Available at: https://weeklyhow.com/how-to-make-a-health-bar-in-unity/ (Accessed: 3 August 2021).
 
primus88, et al (2013) Spawning random object at predefined locations – Unity Answers. Available at: https://answers.unity.com/questions/467959/spawning-random-object-at-predefined-locations.html (Accessed: 30 June 2021).
 
Qiut, et al (2012) Rotating an object towards target on a single axis – Unity Answers. Available at: https://answers.unity.com/questions/306639/rotating-an-object-towards-target-on-a-single-axis.html (Accessed: 23 August 2021).
 
RedCityNoise, et al (2015) Audio intro+loop, Adventure Creator forum. Available at: https://adventurecreator.org/forum/discussion/2608/audio-intro-loop (Accessed: 28 August 2021).
 
RodyPolis (2021) FREE – Lens Dirt Overlays Stock Footage Collection | ActionVFX. Available at: https://www.actionvfx.com/collections/free-lens-dirt-overlays (Accessed: 22 August 2021).
 
Ronja (2020) Instancing and Material Property Blocks. Available at: https://www.ronja-tutorials.com/post/048-material-property-blocks/ (Accessed: 18 August 2021).
 
ROSHAN PERERA (2021) ‘25+ Best Gaming Fonts in 2021 (Free & Premium)’, 2 February. Available at: https://designshack.net/articles/interviews/gaming-fonts/ (Accessed: 19 August 2021).
 
Shekhar, G. (2019) ‘Create health Bar in Unity 3D’, Gyanendu Shekhar’s Blog, 17 November. Available at: https://gyanendushekhar.com/2019/11/17/create-health-bar-unity-3d/ (Accessed: 3 August 2021).
 
simpleone, et al (2011) Reload Current Level when I die – Unity Answers. Available at: https://answers.unity.com/questions/64395/reload-current-level-when-i-die.html (Accessed: 6 August 2021).
 
Soundimage.org (2015) ‘Looping Music | Soundimage.org’, 20 March. Available at: https://soundimage.org/looping-music/ (Accessed: 24 August 2021).
 
Squirrel09 (2017) ‘Fill slider over an amount of time’, r/Unity3D. Available at: www.reddit.com/r/Unity3D/comments/5nl1tc/fill_slider_over_an_amount_of_time/ (Accessed: 22 August 2021).
 
Storyblocks (2021a) Male Voice – Nice! Available at: https://www.storyblocks.com/audio/stock/male-voice—nice-selv3r33lvbk0wxsbrv.html (Accessed: 24 August 2021).
 
Storyblocks (2021b) Male Voice Royalty-Free Music & Sounds – Storyblocks. Available at: https://www.storyblocks.com/audio/search/Male+Voice?media-type=sfx&page=6&search-origin=pagination&sort=most_relevant&vbonly=false (Accessed: 24 August 2021).
 
sunspire (2021) Abstract geometric black and white hipster fashion design print hexagon pattern Wall Mural • Pixers® • We live to change, Pixers. Available at: https://pixers.uk/wall-murals/abstract-geometric-black-and-white-hipster-fashion-design-print-hexagon-pattern-123782704 (Accessed: 12 July 2021).
 
Synthwave Goose (2021) Synthwave goose – Blade Runner 2049 – MP3 Download Free 2021, MP3 Downloader. Available at: https://mp3download.to/5en/_gYjh863j4g.html (Accessed: 3 September 2021).
 
tag104367, et al (2017) Xbox one controller mapping [SOLVED] – Unity Answers. Available at: https://answers.unity.com/questions/1350081/xbox-one-controller-mapping-solved.html (Accessed: 28 August 2021).
 
Tattersall, G. (2019) Coding to the Beat – Under the Hood of a Rhythm Game in Unity. Available at: https://www.gamasutra.com/blogs/GrahamTattersall/20190515/342454/Coding_to_the_Beat__Under_the_Hood_of_a_Rhythm_Game_in_Unity.php (Accessed: 26 August 2021).
 
Technologies, U. (2020) Endless Runner – Sample Game | Tutorial Projects | Unity Asset Store. Available at: https://assetstore.unity.com/packages/essentials/tutorial-projects/endless-runner-sample-game-87901 (Accessed: 21 August 2021).
 
Technologies, U. (2021a) Getting started with post-processing | Post Processing | 3.0.3. Available at: https://docs.unity3d.com/Packages/[email protected]/manual/Quick-start.html (Accessed: 19 August 2021).
 
Technologies, U. (2021b) Unity – Manual: Input Manager. Available at: https://docs.unity3d.com/Manual/class-InputManager.html (Accessed: 28 August 2021).
 
Technologies, U. (2021c) Unity – Manual: Rich Text. Available at: https://docs.unity3d.com/560/Documentation/Manual/StyledText.html (Accessed: 21 August 2021).
 
Technologies, U. (2021d) Unity – Scripting API: AudioSource.Pause. Available at: https://docs.unity3d.com/ScriptReference/AudioSource.Pause.html (Accessed: 28 August 2021).
 
Technologies, U. (2021e) Unity – Scripting API: Cursor.visible. Available at: https://docs.unity3d.com/ScriptReference/Cursor-visible.html (Accessed: 22 August 2021).
 
Technologies, U. (2021f) Unity – Scripting API: GameObject.FindWithTag. Available at: https://docs.unity3d.com/ScriptReference/GameObject.FindWithTag.html (Accessed: 30 August 2021).
 
Technologies, U. (2021g) Unity – Scripting API: Material.SetColor. Available at: https://docs.unity3d.com/ScriptReference/Material.SetColor.html (Accessed: 10 August 2021).
 
Technologies, U. (2021h) Unity – Scripting API: ParticleSystem.Play. Available at: https://docs.unity3d.com/ScriptReference/ParticleSystem.Play.html (Accessed: 10 August 2021).
 
Technologies, U. (2021i) Unity – Scripting API: Renderer.material. Available at: https://docs.unity3d.com/ScriptReference/Renderer-material.html (Accessed: 10 August 2021).
 
Technologies, U. (2021j) Unity – Scripting API: UI.Image.fillAmount. Available at: https://docs.unity3d.com/2018.1/Documentation/ScriptReference/UI.Image-fillAmount.html (Accessed: 22 August 2021).
 
Technologies, U. (2021k) Unity – Scripting API: WaitForSeconds. Available at: https://docs.unity3d.com/ScriptReference/WaitForSeconds.html (Accessed: 22 August 2021).
 
vinitgjoshi, et al, (2014) Player Prefs to Store High scores – Unity Answers. Available at: https://answers.unity.com/questions/672869/player-prefs-to-store-high-scores.html (Accessed: 28 August 2021).
 
vladimir Nikolic (2019) Games Font | dafont.com. Available at: https://www.dafont.com/games.font?text=Game+Over (Accessed: 19 August 2021).
 
ZapSplat (2021) ‘Game music – action, uplifting house anthem, fast paced retro game melody leading into pumping synth chords’, ZapSplat – Download free sound effects. Available at: https://www.zapsplat.com/music/game-music-action-uplifting-house-anthem-fast-paced-retro-game-melody-leading-into-pumping-synth-chords/ (Accessed: 24 August 2021).
 
Zii (2020a) How to make Blur in Unity URP ShaderGraph. Available at: https://www.youtube.com/watch?v=NLgrHFCF3oU (Accessed: 18 August 2021).
 
Zii (2020b) UI BLUR in Unity ShaderGraph for 2D & 3D games. Available at: https://www.youtube.com/watch?v=cjfNgra1uWk (Accessed: 18 August 2021).