Wednesday, November 29, 2017

Drone




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. As for blueprint, I think I’ll stick to c# and java. 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 blueprint, maya, and substance painter.  

No comments:

Post a Comment