Vengeance

About

Vengeance is a first-person shooter game I developed to deepen my understanding and application of advanced mechanics within Unreal Engine, utilizing only blueprints. The project was driven by a goal to undertand various blueprints features such as Event Dispatchers, Interfaces, and an array of blueprint classes

Project Info

  • Role: UI/Gameplay Programmer
  • Team Size: 1
  • Time frame: 2 Months
  • Engine: Unreal Engine 4.25
  • Langauge: Blueprints

Introduction

Having previously developed a melee combat game using Unreal Engine and C++, my primary focus for this project shifted towards developing advanced mechanics exclusively using blueprints. This approach allowed me to delve deeply into Unreal Engine's visual scripting system, enhancing my understanding and capability to implement sophisticated gameplay features without traditional coding. The areas I concentrated on included:

  • Developed a dynamic UI and in-game HUD, featuring hit-markers, responsive crosshairs, floating damage numbers, weapon stats UI, and health & stamina bars
  • Created an array of HitScan & Projectile weapons, including a Pistol, Assault Rifle, Shotgun, Rocket Launcher, Sniper Rifle, and Grenade Launcher
  • Crafted an inventory system for storing and equipping collected guns and ammo
  • Implemented various player movement states, stamina regeneration, shooting AI, and environmental hazards

Gun Mechanics

For this project, I crafted a total of 6 types of guns, split between 3 HitScan weapons and 3 Projectile weapons. To streamline development, I designed a base weapon blueprint that encapsulates the logic required for both HitScan and Projectile firing mechanisms.

  • For HitScan weapons, I implemented a line trace feature to simulate bullet travel, incorporating bullet spread to add realism
  • For Projectile weapons, I focused on calculating both the spawn point and trajectory path of projectiles to ensure accurate and visually appealing behavior
To manage weapon data such as fire type, weapon stats (including ammo spread, damage, impact radius, and ammo type), I utilized blueprint Enums. This approach facilitated easy organization and adjustment of weapon characteristics. All common weapon functionalities are contained within this base weapon script, allowing for efficient creation of new weapons through inheritance. By simply modifying the weapon data and mesh for each specific gun, I was able to rapidly expand the arsenal available in the game, ensuring each weapon maintains its unique identity while sharing foundational mechanics.

Responsive UI

For this project I also delved into learning more about UMG within Unreal Engine. Recognizing the importance of a crosshair in shooter games, I developed a dynamic crosshair using UMG. This crosshair adapts in real-time, changing its appearance based on character movement and gun firing actions to provide feedback on the player's accuracy and movement. Additionally, I integrated HitMarkers within the UI, which appear whenever the player successfully eliminates an enemy.

Dynamic Main-Menu
Responsive In-game HUD

Start Shooting Function

Dynamic Crosshair Logic

Calculating Line Trace for HitScan Weapons