Categories
VHS Horror

VHS Horror Programming Evaluation

Connor Bulmer – Student ID: 1442549

Introduction

This document serves to evaluate my progress so far on my “VHS Horror” game in terms of the quality of code present so far, what went well and what could be improved, with the evaluation being based on this build of the game. The main lessons learned from this experience are a much-improved understanding of Unreal Engine 4 and its blueprint systems, as well as the time management involved in the creation of this game. I will use this newfound knowledge in the future for building more optimised projects in a faster manner. 

Main Body

This section covers parts of my game, how it is built, what I have learned, what works well and what could be improved. 

LO2 – Zombie Enemy

The goal of the zombie enemy is for it to be idle until it sees the player and then chases the player and attacks it, which damages the player, the zombie can also be “killed”.

Animation Blueprint

The enemy uses a fairly simple animation blueprint (Unrealengine.com, 2021) that utilises a finite state machine and event graph to allow the zombie to be in an idle animation state when not moving, running when any speed or direction is detected and attacking when a variable is set to allow this, with direction and speed calculated within the event graph. 

I learned a lot in the creation of this blueprint, mainly how to create an animation blueprint that works with an AI enemy and is properly able to detect when the player is close enough to attack.

I feel the creation of this animation blueprint went fairly well, as the enemy can efficiently move from idle to move and then to attack, which allows for the enemy to be able to chase you and attack, what I would improve for next time would be the state machine, as while it works, it currently doesn’t allow for Idle -> attack. 

AIStateMachine

Image 1 of 2

AI Movement and Damage

To allow the AI to see the player, and then chase and attack, “Pawn Sensing” (Unrealengine.com, 2021) is used to look for the player character and then the “AI Moveto” (Unrealengine.com, 2021)  is used to have the enemy move towards the player, the rest of this blueprint section is about checking the distance to the player, and then having the zombie attack (and set the relevant animation within the animation blueprint).

Damage to and from the player is also handled within this blueprint, with the game checking the zombie’s HP every frame and also having functions to handle giving and taking damage.

I learned a lot from creating this section, mainly about AI and how it works within UE4 and managing the giving and taking of damage.

The AI functions well for the most part, but does have issues with damage being taken before the animation has started, which feels off to the player and the AI losing sight of the player quite easily due to issues present in the Pawn sensing function.

EnemyRoaming1

Image 1 of 2

LO3 – The Player

The most complex blueprint in the project so far, handling the player movement, shooting, the giving/taking of damage and many other things pivotal to gameplay. This is a heavily modified variant of the built-in FPS Controller so I’ll only be covering modifications.

On play, this controller sets up the looping music and allows the player to remove the UI so they can begin the game, this helped me to learn more about UI in UE4 as well as how to play looping audio for the background music. This works fine, with music working as planned but there sometimes being issues with the player needing to sometimes shoot a few times before full control is given to the FPSCharacter.

Player shooting has been modified to allow for a smaller projectile, a different gunfire sound and a different animation for the revolver, which replaced the default gun with the relevant tweaks done to make this work, this helped me to learn about tweaking and modifying viewport components to suit my needs (including adding my custom modelled gun) and tweaking the blueprint to make a weapon that works for my game. This solution works well, it just needs some polish and accuracy tweaks so far. 

Every frame, the blueprint checks the players health and if it’s 0 then it destroys the player, essentially ending the game, with the “DecreasePlayerHealth” function used to lower the players HP when needed, this helped me to learn about managing player health and killing the player and as a solution, it works well, but completely lacks any audiovisual feedback which shows a need for polish. 

FPSCharacterChanges3

Image 2 of 3

LO3 – VHS System and Additional Mechanics

VHS Tape

Simple tape that when collided with, allows the use of the VHS player, functions as intended.

VHS Player

Allows input when the player is close enough and if they have the VHS tape, allows interaction to teleport them to another part of the map, will be used to enter/leave VHS realm, helped me to learn about having a blueprint that needs a “key” to use and being able to teleport the player, works as intended but needs polish in the transitions. 

VHSPlayer1

Image 1 of 2

Door

When a player is near the door, the door slides open and allows the player to go through, as one of the first blueprints I worked on, helped me to learn a lot about how blueprints function in general, works as intended with no issues. 

Basic UI Implementation

Simple UI that uses a button that when clicked removes the UI, showing the game behind, taught me a lot about UI in UE4 (Unrealengine.com, 2021) but has little functionality and while it says “press any button” in this build, the player needs to click to remove the UI and sometimes needs to shoot a few times before full control is given to the FPSCharacter.

Conclusion

To conclude, I am relatively happy with this experience, more from what I have learned during the time working on the project over the end result, with me learning a great deal about UE4 and how it works, as well as how long things take during game development to aid with future time management. For further projects, I will both work faster thanks to my understanding of the engine and the improved project and time management with this type of task. 

Bibliography

Edmonds, M. (2018) Mastering Game Development with Unreal Engine 4, 2 nd Edition. Packt Publishing.

Ferro, L.S. (2019) Unreal Engine Blueprints Visuals Scripting Projects. Packt Publishing

Palaje, M. (2017). Let’s Create Beginner AI – Basic Enemies In Blueprints [Unreal Engine 4 Tutorial]. YouTube. Available at: https://www.youtube.com/watch?v=l1tpeVIcaGI [Accessed 25 May 2021].

Unreal Engine. (2019). Unreal Online Learning. [online] Available at: https://www.unrealengine.com/en-US/onlinelearning-courses [Accessed 25 May 2021].

Unrealengine.com. (2021). AI MoveTo. [online] Available at: https://docs.unrealengine.com/en-US/BlueprintAPI/AI/AIMoveTo/index.html [Accessed 25 May 2021].

Unrealengine.com. (2021). Animation Blueprints. [online] Available at: https://docs.unrealengine.com/en-US/AnimatingObjects/SkeletalMeshAnimation/AnimBlueprints/index.html [Accessed 25 May 2021].

Unrealengine.com. (2021). Creating a Main Menu. [online] Available at: https://docs.unrealengine.com/en-US/InteractiveExperiences/UMG/HowTo/CreateMainMenu/index.html [Accessed 25 May 2021].

Unrealengine.com. (2021). Pawn Sensing. [online] Available at: https://docs.unrealengine.com/en-US/BlueprintAPI/AI/Components/PawnSensing/index.html [Accessed 25 May 2021].

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.