Prototyping Unreal Engine 5: Level Blockouts
Learn how to do level prototyping for Unreal Engine 5, using blockouts and Blueprints to define basic gameplay. By Ricardo Santos.
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Contents
Prototyping Unreal Engine 5: Level Blockouts
30 mins
- Getting Started
- Level Prototyping
- The Purpose of Level Prototyping
- Using Level Blockout Tools in UE5
- Creating Geometry
- Combining Geometry Elements: Boolean Operations
- Some Notes on Level Design
- Defining Metrics
- Teaching Gameplay
- Adding Movement to the Level
- Adding Level Blockout Elements
- Adding Blockout Volumes to Blueprints
- Adding Behavior to Blockout Elements
- Diversifying Behavior on Level Elements
- Where to Go From Here?
In the 8- and 16-bit generations, game designers drew the levels on graph paper, measuring distances in squares. When the level design seemed good, a programmer would receive the graph papers and type the hexadecimal codes to create the level. Those days, though, are long gone — lost to myth.
As games have evolved — from the good old 2D view to the new-and-fancy 3D spaces — so has level design. Designers must define the level volumes and how it plays before adding art. Otherwise, artists may produce elements that aren’t needed! Hence, the need to define level geometry, a technique that has many names — greyboxing, level blocking, level blockout… In this tutorial, it’s referred to as prototyping.
Here, you’ll build a prototyped environment for a 3D platformer game. You’ll:
- Refresh your Unreal Engine basics.
- Learn techniques to block out a level.
- Use Boolean operators when modeling meshes.
This tutorial is aimed at a beginner level but assumes some familiarity with the Unreal Editor. If this is your first time using Unreal Engine, check out our Getting Started tutorial.
Getting Started
To start, download the materials for this tutorial by clicking Download materials at the top or bottom of the tutorial. Then, open the starter project in Unreal Editor 5.2 or later.
This level is a castle with a collapsed wall corner and a tower on the other side. Inside the tower, a light invites the player to go inside. Inside it, you’ll see some stairs going halfway to the top of the tower. Finally, the ceiling has a square opening that the stairs don’t reach and is also out of jumping distance.
Time to look at the contents:
Content contains a few folders, but the ones you’ll need for this tutorial are:
- LevelPrototyping \ Materials, which contains the default Materials of the default project.
- LevelPrototyping \ Meshes, which contains the level geometry.
- ThirdPerson \ _GENERATED, where Unreal Editor will create the tutorial’s geometry.
Now, click Play in the editor, and walk around using the WASD keys and space to jump. Just experiment a little bit!
After walking around a little bit, you’ll see that the level doesn’t seem very appealing, with no details to catch the eye except for the light inside the tower. Everything else has the same Material, with no hints for players to find their path.
There’s also a more serious problem: The players can see the door in the tower with the light. It feels like a game objective, but they can’t go inside and see for themselves. This is a serious gameplay problem you’ll need to address. But, for now, it’s time to think a little bit more about the design process.
Level Prototyping
When creating a game, you first create the idea. Then, you can begin testing concepts, creating mechanics and envisioning levels. You want to iterate quickly and decide which ideas are good enough to move on and which don’t have as much potential. You don’t want to invest time and money creating a level that won’t play well or won’t go well with the game story.
To help you figure this out, it’s important to prototype your levels and feel how they play.
This is why prototyping is so important: It can show how the game feels before spending resources on it. Besides, all the cool kids do it! From Uncharted 4 to God of War, from Star Wars: Jedi Fallen Order to Spider-Man. In fact, October is a month dedicated to showing level blockouts.
The Purpose of Level Prototyping
The level blockout is the first approach to your level, so you can determine whether it should move along the production pipeline. If you’ve already established assets you want to use in your prototype, great! It’s not forbidden to use polished assets at this point, but it’s not the goal of the process at this stage.
The main question here is how to determine the level geometry and its gameplay. Do your players have to go from point A to point B in the map by jumping over a lava river using platforms? You should prototype the river and the platforms. After the players have crossed the river, are enemies hiding behind a wall? You should prototype the wall and have some enemies behind it. Is there a boat for the player to cross the lava river? You should — you guessed it! — include the boat and allow the player to board it.
By the end of the process, you should have a good enough prototype. If you group your level prototypes, you might even have a prototype of your game. That’s a great way to communicate your vision to the rest of the team or to potential investors!
Using Level Blockout Tools in UE5
From version 5 onward, Unreal Engine has a mode for creating level blockouts embedded in its editor. Artists can even use the geometry created inside the editor for the game art by adding Materials or detailing the meshes.
To access the tools for level prototyping, either press Shift-5 or click the dropdown box in the top-left of the editor window and select Modeling, as shown in the figure below:
You’ll notice a new panel divided into two halves appeared in the left of the window, just as shown in the figure below:
The panel’s left side contains the palette, where you select geometry to add into your project or the operations to perform over them. The right side displays the details of the item you selected with its specific parameters.
Creating Geometry
The creation of geometry in Modeling Mode is different from the creation of geometry in the default Selection Mode. To compare how they differ, change back to Selection Mode. Click the Quickly add to the project button to the right of the mode dropdown, select Shapes ▸ Cube and hover it in your scene.
Notice that placing the cube in the scene isn’t so simple. The element isn’t guaranteed to snap to a surface, leaving the geometry either floating over or sinking into surfaces.
Even if you manage to place two objects one by the other, there’s no guarantee they’ll align, and geometry quality may suffer. In contrast, when creating geometry in Modeling Mode, the elements snap to the nearest surface, making it easier to align elements.
To understand how to use these tools, you’ll create a house in the middle of the castle courtyard. Delete the cube if you added it, and open Modeling Mode. Select the box shape from the palette on the left side. Place the box at any point in the middle of the castle floor. Your screen should look like this:
After placing the box, change the property values to a Width of 600, a Depth of 600, and a Height of 300. Set the location to (X: 1750.0, Y: 1750.0, Z: 0.0), as below:
Click Accept at the bottom of the editor window. You now have the body of the house.
Now, for the roof, go to the palette and… There’s no default shape you can use for creating the house’s roof. Will this be the end of your modeling career? Not with some creativity!
First, select the cylinder shape and place it on top of the box. Then, edit the properties to have a Radius of 150, a Height of 700, number of Radial Slices to 3, and Pivot Location to Centered. Set the location to (X: 1680.0, Y: 1680.0, Z: 300.0).Next, click Accept:
The result should look like this:
Now, go to the Details tab on the bottom-right of the screen, and edit the values such that Rotation is set to (X:0.0, Y:90.0, Z:0.0) and the Scale is set to (X: 1.0, Y: 3.0, Z: 1.0), as shown below:
After that, back on the Modeling palette on the left of the window, scroll down to the Transform group and select Pivot:
On the tool options, select Use World Box to change from local coordinates to global coordinates. Click the Bottom button to change the pivot point to the bottom of the ceiling. Click Accept to confirm the new pivot position, and then set the Transform’s Z position back to 300.
Your house should look like it does below, with the roof on but not quite aligned:
You’re on the right track! To finish the house, you need Boolean operators.