Unreal Engine 4
September, 2022 - In development
2.5D platformer with a strong focus on combat and a dark atmosphere built in Unreal Engine 4. (Work in progress)
Alpha state of the game.
Preproduction documentary.
This is the final project of my HND in Videogames Programming
at ESAT. It is a 2.5D platformer that is being developed by
a multidisciplinary team of 7 programmers, 6 artists and 3
game designers. You can follow the game progress at
@BornToRiseGame.
This project tries to be a very close approximation of how
a video games studio works. We have tight schedules with
deadlines and milestones such as prototype and first playable.
We work under an adaptation of the scrum methodology where we
have weekly sprints. Each sprint begins and ends with a meeting
where we assess the progress of each department and how well
are we reaching our objectives.
The most important aspect of this project is the communication
both between peers of your own team and between teams. Constant
communication with our fellow designers and artist is key
to have a smooth development and to better iterate on the
game.
The repository of this project is private but code snippets may be
given to anyone interested in its implementation.
Contact me for more information.
I was one of the people in charge of creating the player combat
actions, which were: melee attack that knock enemies back, main
range attack that fires a spray of bullets and secondary range
attack that fires a powerfull wave that deals heavy damage and
passes through enemies.
I was also in charge of the HealthComponent that the player and
the enemies shared. This ActorComponent tracks the health of
the Actor and handles the Actor death and reviving through
delegates. Along with the HealthComponent, I implemented an
interface to be used for all the Actors that could be damaged,
called IDamageable, so that taking damage could be abstracted
from the actor and handled directly with the HealthComponent.
Another feature involved with the combat system was the knockback
and hit stop of the player and enemies. Whenever the player is hit
or when the player attacks an enemy with the melee attack, the damaged
Actor is knocked back and both actors are stopped for some frames
to give more impact to the action.
The dash is an Actor Component that provides the Actor with a dash. It can be added to any actor that needs a dash ability. The dash launches the actor in a given direction, removing the gravity force for the duration of the dash. It also grants invulnerability for a period of time. So it can be used to dash enemies, bullets or hazards. It also has a cooldown to avoid spamming the dash. This cooldown is reseted after a period of time or if the Actor hits a wall, platform or the ground.
This platforms break on contact if you step over them. When a hit is registered in the platform, a timer is set to display the OpenPlatform animation. In this animation, an AnimNotify event is dispatched to remove the collision of the platform and to begin another timer for the cooldown before it restores its natural state. Then the ClosePlatform animation is played, with another AnimNotify that restores the platform collisions, returning to its initial state.
I created a blueprint that constructed a spline mesh with static meshes for the designers and artists to use. You can specify if the spline has collision or not and specify which type of meshes to use for the initial and final sections as well as the mid sections. You can add more than one type for each section and the spline mesh will select a random static mesh from the sample given.