Star Wars Project

Third Person Action | Tech Design | Level Design

Idea

I love Battlefront 2 and was inspired to create my own project with mechanics from the game. I chose to explore Cad Bane, a fascinating character in the Star Wars universe, as his role as a bounty hunter allowed me to craft a unique scenario.

Specifications

Engine/Tools: Unreal Engine 5, Blender, Unreal Scripting, Advanced Locomotion System (ALS).
Genre: Third Person Perspective Shooter
Reference game(s): Star Wars: Battlefront 2 (2017)


 Overview


Gameplay Mechanics

Overheating

In Battlefront 2, there's no limited ammo; instead, a mechanic causes weapons to overheat at 100% and disables shooting. During the cool down period, players can press "R" in a mini-game to instantly cool down. Failing extends it, and shooting is still disabled until it reaches 0%. "R" can be pressed anytime with <100% for cool down.

Quickdraw

Inspired by Overwatch 2's Cole Cassidy, pressing "E" marks visible enemies. Use "Left Mouse button" to execute them individually, cancel with "E" if ability is active. 6 second cooldown for canceling, 12-second cooldown for executing.

It aligns with Cad Bane's cowboy theme.

Rocket Boots

This buff allows the player to jump twice, however the second jump gives extra velocity. It wasn’t as obvious as I would imagine since I use ALS but it works as intended. I had to adapt my scripts to the system.


Tech Design

OVERHEATING

This mechanic functions like a reversed stamina bar, depleting if the player isn't shooting above 0%.
While in use, it adds heat, halting the draining process. Hitting 100% triggers an instant cooldown minigame, hitting reload button within the blue bar instantly cools down the weapon. They may also wait out the cooldown, however pressing the reload button outside of the blue bar will start over the cooldown process and take longer before player can shoot.


The design is modular, enabling easy modification outside the script. Users can adjust variables like heat increase, drain speed, and delay duration.
Minigame threshold is customizable with min and max variables, and visuals update automatically through the widget function.

QUICKDRAW

This mechanic was the most challenging to create. After several failed attempts with a multi-line trace, I found success with a single line trace and looping until all visible enemies were hit and added to an array.

The function scans all existing enemies on a level, shoots a line trace toward each, and adds hit enemies to an array with assigned indices. A billboard component with the same index is attached to marked enemies. Enemies behind cover aren't added.

The loop continues until all enemies are assigned or not. During ability execution, we check for index 0 in the billboard array, remove it, kill the enemy, and remove index 0 from the enemy array.

This loop is dynamic; removing index 0 shifts others down, ensuring index 0 always exists. The function repeats until index 0 in the billboard array is gone.

CAMERA

The camera in ALS extremely different from what you work with in regular TPP-projects in Unreal Engine. Instead of just being a camera component inside the character BP it has its own animation blueprint with tons of settings. From different curves and floats depending on character pose, such as running, walking, crouching and so on.

The default ALS has a lag built in that makes “smoother” camera movement and this one was a bit annoying, especially when sprint-jumping while shooting, it was hard to know where you aimed so I made it less laggy by tweaking a few float values.


MORE COMING SOON…