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
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.
Start Shooting Function
Dynamic Crosshair Logic
Calculating Line Trace for HitScan Weapons