Third Person Arena Shooter

This was a fun wekkend project I comitted to, to push myself and see how much I could prototype for an arena
based shooter.
I won't go into a lot fo detail on this page, I'll just let the project mostly speak for itself; so you can find
a link at the bottom of this article to download the unreal engine files for scruity, or as a kick off point if
you want to use this as a template for your own projects.
I will only be talking about some of the more notable things from this project.

For this project I set myself a brief and a list of tasks to complete for finishing this project in the alotted time.
The brief was an area shooter in lines with titles like Unreal Tournament, and Fortnite; and, my main goals were as follows:
- A Base character used to potentially build hero characters, with movement, health, and shooting functioanlity
- To create a whitebox level for the arena shooter, something that would convey the theme
- A gameplay ststem, or gamemode, to help drive the flow of the matches
- UI design and implementation with UX as a consideration
- An actor component what would be attached to the character to provide a unique hook or gameplay experience
- Working, semi-feshed out animation for the character to give the feel of gameplay

The only objectives I did not complete on time were the character component, and a unique player mechanic.

I'll start with the Animation, as I put a good chunk of time into creating this so that the prototype would give a
good feel of what final gameplay would be. For this I used two assets I had from the unreal marketplace: Animation
start pack, and FPS weapons bundle. I choose these because they give me a good library of animations I can use and tweak
for purpose, and some avaliable weapons I could use for mechanics and gameplay requirements.
As the Animation starter pack gave a solid starting point for basic movement I expanded upon it to implement weapon useage
such as aiming down sights, adding an aim offset to the player vertical look direction, and Ik for hand to the individual
weapons when equipped. For the IK, I used a simple meathod of adding sockets to the weapon skeletal meshes, and using FABRIK
nodes to manipulate the characters hands specificall for the equipped weapon.
To give an extra feel for the movement mechanics I used some simple camera FOV manipulation when sprinting to give a feel of
speed and urgency to the player. I also implemented some sound notifies in the animation sequences to play footstep audio
when the animation has the foot hit the floor.

Overall with animation in mind, I felt it ended in a good place; the movement seems tight,and the characters animated correctly
with the selected weapons. The one improvment I could make to this would be to implement animations for the weapons themselves,
possibly have things like shell casings pour from the weapon when firing.



For the whitebox level design, I used the new modelling tools provided in UE5 to make some basic shapes I could
use thoughout the level that would, hopefully give it the feel of a construction site.
As for the layout and design, I wanted to take in a mindset of how to make this map interesting in multiple game modes,
and decided to have a focus on a Capture type arena and build small sets that would enhance gameplay; such as, having buildings
with tight angles, more open high-risk areas for capture, Big props to help block view of spawn points, etc.
I was quite happy with the layout in the end, and added some extra depth to the level by adding a landscape to tweak some areas in
the playing field and add some viewpoints for outside of the playing area.


Finally, for this post I'll briefly go over the capture points, gamemode scoring, and inplemented UI.
The pre-game would have players choose between, or randomly assign, two teams.
The occupation points themselves are build with events to handle the occupation of one or more players from multiple teams
taking into consideration if there is a conflict in the capture point to stop the capture timer and resume when only one team
is occupying the point.
The capture point uses a data table to collect information on the team occupying the point and internally setting it's ownership depending
on how far along the point is from capture. Subsequently, if an enemy team wishes to capture a point they must remove all progress the
opposing team has made so far; I wanted to include this as I feel it offers a higher stake, thus encouraging teamplay, when it comes to
taking an already owned point.
Once a point is captured a variable sets stored in the gamemode blueprint for how many points one team currently has; depending on this it
activates a multiplier on how many points a team will recieve every second until one team has the maximum point value and the game ends.
Both the capture points and the gamemode have events tied into the game HUD to update scores and points captured. The gamemode will
directly call function in the HUD to update the score; but, the capture points create and bound themselves to a widget on it's construction.
This means that for a Capture gamemode, a developer can put in as many capture points as they would like and the UI will modularily
updated based on how many have been placed.


This was a fun little project to take on; it refreshed me on doing rapid prototyping as well as delving into some more advanced animation techniques than I am used to and plotting level design. of course there is a lot that can be expanded upon on this project and a lot I haven't gove over; so feel free to use the link below to have a look through the project yourself and use it as a learning adventure, or kicking off point for your own projects.

https://backwardspenguin.itch.io/third-person-arena-shooter
×