We’re going to prototype a new game idea using UE4 they said. Sounds good. We want you to learn how to use Blueprints they said. Ah, balls.
I’ve used Unreal Engine in the past, the distant past. 2002 to be exact. I worked on a AAA FPS global hit called ‘Mobile Forces’ that broke all sales records at the time by shifting a groundbreaking less than 12 copies. Thirteen years later and the first thing I notice is that UE has changed, just a bit. Well lets see what this is all about…
Blueprints are Unreal’s visual scripting system, a node-based interface for creating gameplay elements from within the Unreal editor. It provides designers with a toolbox they can use to prototype, implement or modify game assets.
And it looks a bit like this:
On paper, it’s what every designer wants – a tool to turn their ideas into playable content without having to jump into the land of 1s and 0s. With no previous coding experience, and once the initial panic had subsided, I jumped in with both feet.
First on the todo list was to read the UE4 online documentation. Nope, clear as mud. So I watched some video tutorials and it all started to make a bit more sense, although I still couldn’t create something from scratch if I tried.
I then decided to follow an official multi-part video tutorial, that built on the Vehicle Demo Project Template included with Unreal. It covered the basics needed to create a simple Time Attack Race, using only Blueprints. We will be prototyping a top down competitive multiplayer twin stick shooter after all, so this made perfect sense, well…
The tutorial was really well done. The author explained everything at each stage, and once completed (and much to my surprise) my blueprint actually worked as intended. I then started to tweak, a little bit at a time in order to tailor the demo to my liking, and this was where the penny suddenly dropped. In order to add the simplest of features, I first had to understand exactly what the tutorial Blueprint was doing. Comments are good. Comment everything, even things that seem obvious when you make it. Revisiting a Blueprint after some time can sometimes make you think “WTF is that there for”, maybe that’s just me, but regardless, they also help others understand what you are doing or attempting to do.
Some of my additions worked really well, and with some I was defeated – maybe attempting to add networking with a ghost car was a bit ambitious at this stage. So moving on…
Let’s make something!
Enough blueprinting knowledge to be dangerous – check.
A working prototype to tamper with – check.
What am I going to add? Well, we had a bunch of levels in Fragmental that we were already playing, and although the game was already great fun and the maps flowing nicely, we’d been talking about adding more variation via environmental hazards – moving floors, kill walls, that sort of thing. So I thought I’d do something along those lines.
I thought about creating a threat from above. Basically, I wanted to drop shit on the player so that they had to avoid environmental threats as well as other player’s gunfire. So using my extensive modelling skills, and with no help from an artist, I created a cube.
I then created a Level Blueprint that spawned the cube actor in the air and lo and behold, it stayed in the air. ‘Simulate Physics’ button was then ticked and it fell to the ground. Next, I added an event detecting that the cube had hit a player and if so, apply damage. Quick test, player dies. Result.
Having a single box drop in the same place each time though is pretty dull. I want it to rain boxes over an area – how do I do that? A quick Google turns up some information on how to create a scalable volume and with the addition of some simple maths, I manage to make boxes spawn at random points within the volume.
I now had a level that was littered with fallen boxes. Next on the list, make them explode on impact. UE4 has a destructible mesh feature that makes this pretty easy, so pretty soon I had my cubes exploding on impact, but the mess of fallen boxes had simply been replaced with a mess of box debris. I made the debris time-out faster, but this looked bad. Another Google and with the help of an artist this time, we managed to create a dynamic material that created the illusion of the pieces dissolving.
This was working well, but due to the top-down viewpoint it was difficult for players to read where the boxes were going to land. So a warning was needed. I decided to draw a decal on the ground each time a cube was spawned showing where it would land and give players a second or two to move out of harm’s way. This was where my earlier Vehicle Blueprint knowledge came into play (told you it made sense) as I’d previously used Line Trace to create tyre marks on the ground.
I now had boxes raining from the sky at random intervals, and in random locations, with skull icons being drawn on the ground at the correct places before the boxes impacted and debris dissolved like a beautiful thing. I felt like a coding god. Well, at least a little less clueless.
Red Balls of Death
Don’t worry, it’s not a new STD, but you should still panic each time you see one in Fragmental. Since starting my Blueprint, one of our Artists had added some balls into a level, harmless black ones, but more importantly evil, bastarding, dangerous red ones that get attracted to you if you get too close and then kill you on touch. The level was an instant hit and the already substantial noise and swearing coming from our corner of the studio was amplified when the Red Balls of Death made an appearance.
To keep things consistent, we decided to also use these balls with my Blueprint instead of my beautifully modelled cube. Once I’d got over the bereavement stage, we played my map and the Team liked the feature. A Round in Fragmental is already pretty mental (and has Frags – see what we’ve done there) so the addition of raining balls of death, had players cursing and screaming as they were killed either by the falling balls, or by other players because they were too busy looking at where the balls would land.
At this stage, my balls only came out in my own map, but we decided that all of the maps should feature them, it simply wouldn’t be fair if only I got to play with them. We have modifiers in Fragmental, these are basically pickups in the level that are spawned randomly from a list and last for a short period of time. They include things like Drunk Mode (Inverted Controls), Slippery Shoes (Low Character Friction) and Ring of Death (Fire emitted from Player’s arses – this is a very serious game) to name but a few. So we decided to add my blueprint as a modifier, and this is what the end result looks like:
So when you play Fragmental and happen to survive long enough to then be killed by a falling Red Ball of Death, remember it was a (now just a little less) Clueless Designer that created that. You’re welcome.