This project represents my first usage of the Unreal Engine to create gameplay. Before this, I mainly used unity engine to make similar projects, and have become very accustomed to the systems it uses. The transition into unreal engine was rocky at first, but after some practice with the blueprint system, I was more confident, and could properly scope my project.
Speaking of scope, the end product is
very similar to what I had in mind when starting the project, though lacking a
few minute details which I will go over later. I can though, say I am happy with
the outcome, considering the circumstances that it was made under.
Features
The main aspect I wanted to implement
was a sprawling world, which the player could freely explore. I found a
good-looking asset set for sand dunes and desert rocks, and these serve as a
base for the open world. The first feature I needed to implement was a vehicle
that the player could use to navigate the terrain.
This turned out to be easier than
expected, as the unreal engine has blueprints set up for wheeled vehicles, but
getting the model I wanted to use to work with the system took some work. I
also needed to heavily edit its properties so the vehicle wouldn’t constantly
spin out.
For global variables, I followed my
usual strategy and made an invisible actor which would hold the scripting for
managing the game, I also hold the player’s health in this actor, as it is
shared by both the hoverbike and the firstperson controller.
Ui was a major part of this game. I
wanted a system to target nearby hazards and show up on the hud, terminator
style. But this wasn’t easily achieved with unreal UI. I ended up creating a
custom function and triggering it on the players update, which isn’t desirable,
but it was the easiest way I could get constant reliable updates on the ui,
even when its not being rendered or is off screen. The rest of the ui is fairly
simple, checking global variables like player’s health to decide which
animation to play.
When
the player takes enough damage, the screen will appear broken, this is a custom
post processing effect that is based on the vhs effect found in the unreal
tutorials. I used a red channel image to offset the screen to give an effect of
a broken and glitch screen. This image was created in photoshop.
The majority of work on this project
was on ai, I didn’t want to use any of unreal default ai scripts, and instead
created the blueprints myself. These are more or less similar to ai that ive
written before, having multiple states or modes that it transitions through,
and moving towards a target that’s either randomly selected by raycast or
players position.
I wanted the dialog system to be
fully customizable, usually I would use a custom class. In blueprint, I
achieved more or less the same effect with several arrays, the system only ever
supports two responses, but is fairly customizable.
Cut Features
Due to some health issues, I was set
back about two weeks, and had to cut some content. I originally wanted a boss
fight at the end of the game, and had created some animations and blueprints
for it, but didn’t have time to fully implement them.
I also wanted a few more cinematic
moments. The scanner drones were meant to follow the player into the ARK at the
end of the game, and recognize the human skeletons as a “Threat”.
Im had also planned more character aniations, especially on the players arm and gun. I had the arm fully rigged,
but never got to implementing any animation. I had also meant to make the
players pistol overheat if used to fast, and a small animation would play with
the player being unable to use their gun for a brief moment.
Conclusion
I
had a lot of fun working on this project. In the future, I would like to not have
to model and texture as much as I did, but I just wouldn’t feel proud having a
project constructed of bought content. I will look further into scripting for unreal, as the blueprint
system just doesn’t work for me. I would have liked for this project to be more
interesting visually, but I can take a lot of value out of learning unreal,
maya, and substance painter.
No comments:
Post a Comment