Having finally finished my character and created some very rough, very basic animations I began the process of setting everything up in Unreal. As I hope to work on games in the future, and because the game industry in Australia requires you to be an all-rounder, I decided to start from scratch and setup a character without using any of the templates. To do this I followed a comprehensive tutorial on the Unreal site.
The movement and control setup for my character
Through this tutorial I learnt how to set up a character, a camera, controls and animation using Blueprints (Unreal’s version of scripting). In hindsight I should have set up a different type of camera as the one I currently have highlights the lack of strafing animation. I did look into changing this but it required much more complicated Blueprint work and I currently lack the time to learn this.
The camera setup
The animation system is really cool and allows you to smoothly blend between different animations depending on the player’s speed or direction. As I just had a shitty idle animation and a basic run, my blend space was really simple.
The blend space between the idle and run
While this was all relatively straight forward it was time consuming and fiddly. For example, after everything was finally set up, my animations would not work. I checked and double checked everything but nothing fixed the issue. Finally I found a single node that had not been linked up.
Once I had a moving character, I decided to create an environment for her to move through. At first I planned to use just a basic plane but decided a small labyrinth would be much cooler. I quickly created a labyrinth in 3DsMax and imported into the game.
I then set about creating collision boxes for all the walls and the floor. This was quite fiddly and took some time as I had to individual place and size each collision box. Additionally, the camera seemed to interact weirdly with the collision boxes (like shaking when the player went to close to a wall).
Individually placed collision boxes (purple)
This was due to the collision boxes being slightly larger than the walls. I was then informed that, with a single click, you can use an objects faces as its collision boxes but it is much heavier when playing the game. As my game is very light to run, I decided to use this method. This basically fixed the issues with the camera.
Finally, I was able to run around the maze.
Interactables and Particles
At this point I decided that game was too empty and I needed something for players to interact with. Using the shapes (Unreal’s equivalent of primitives) I placed several pyramids around the maze as something for the player to find.
I wanted a glowy particle effect to be trigger when the player got close to the pyramid. To do this, I first created my own particle effect. Using the default fire as a base, I stripped out all the emitters except for the embers and tweaked the settings until I was happy with it.
Particle editor and viewport in Unreal
I then set up a collision box as a trigger around the pyramid. This was set it up so that once the player tripped the trigger the particles would activate and a sound of a gong would play.
Beacon with particles and collision box
Graphic User Interface (GUI)
Finally, I wanted to include some UI elements into the game to give it some sort of objective. This was done almost entirely through the blueprint system. Below is the final UI setup I have used in the game.
Firstly, I added a ‘counter’ that essentially counted how many beacons were active out of the total number of beacons. (The UI and interactables are set up in a way so that I can add more beacons and the UI and end state will adjust to suit). This required some complex blueprint work.
Then, with Ben’s help, I added some end game text. It simply says “All pyramids found!”. The trick was to have it hidden until the number of beacons activated matched the total number of beacons. Again, this was a little more complicated.
Lastly, I set up a timer so that the player can see how long it took them to complete the game. Once again I used blueprints to complete this.
With all of these elements in, I had created an extremely basic game. It is not perfect and not even a vertical slice of a real game. However, I have achieved my goal: complete a game character production pipeline from design to implemention.
Below is a video of the gameplay as it currently is. I need to still add in a couple of things like a start menu, exit button and a skybox.