Use this Unreal Engine 4 Quick Start Guide to start learning how to make video games right now! Click on an image to enlarge.
This first part of the Unreal Engine 4 Quick Start Guide will teach you the history of the Unreal Engine, how to register an account, and how to download and install the Engine.
History of the Unreal Engine
In 1998, the Unreal Engine. developed by Epic Games, made its debut. The first game developed for it was the first-person shooter Unreal, which lent its name to the engine. Epic Games released Unreal Tournament the following year. They released Unreal Engine 2 in 2001 and Unreal Engine 3 in 2004. In 2009, they released a lightweight, free version of UE3 called the Unreal Development Kit. Epic first released Unreal Engine 4 in 2012, then released the latest version (4.14) in November 2016.
The Unreal Engine has developed many successful game franchises including Batman: Arkham Asylum, Borderlands, Gears of War, Mass Effect, Bioshock, Rainbow Six, Splinter Cell, XCOM, and many more.
Unreal Engine Licensing Model
The Unreal Engine is free to download and use, but if you make a certain amount of money from a game created on it, you must pay a percentage of that money to Epic Games. If a game makes more than $3000 in a single quarter of a year, the royalty fee is 5% of any sales past that $3000 mark.
Epic Games Registration
To download and install Unreal Engine 4, you will need to register an account with Epic Games. Go to https://unrealengine.com and click on the blue button that says “Get Unreal.” Fill out the form that appears and click “Sign Up.” You will then need to agree to the End User License Agreement.
Download & Installation
Once you complete registration, you can download the installer for the Epic Games Launcher, which, in turn, can download and install Unreal Engine.
- Click the Download button and open the .msi file that downloads.
- Choose a folder path and click “Install.”
- With it open, login with your registration info
- Click on the yellow “Install Engine” button in the Unreal Engine tab
- If you accept the EULA, the Launcher will download and install the Engine
- Click the yellow Launch button to launch Unreal Engine
This second part of the Unreal Engine 4 Quick Start Guide will help you get continue your quest to learn Unreal Engine 4 by teaching you about projects, Levels, and Actors.
A project in the Unreal Engine is the “container” that holds all the data for each game. Each game is stored in a separate project.
By default, when you open Unreal Engine, it will first launch the Unreal Project Browser. The Unreal Project Browser has two tabs – “Projects” where you can open your existing projects, and “New Project” where you can create a new blank project or create a new project based on a template. The templates will load with common features of that game type already hooked up and ready to use. At the bottom of the tab, there is an option for you to include Starter Content in your Project which will start you out with some basic content, such as objects and sounds.
A Level, in the Unreal Engine, is a self-contained environment where gameplay can occur. Levels load and unload into memory one-at-a-time. To create, open, or save a Level, use the File Menu.
You can test a Level directly in the Level Editor using the Play button in the Toolbar at the top of the window. Use the F11 key to enter and exit fullscreen mode.
An Actor, in the Unreal Engine, is any object that has been added to a Level. For example, find the cube in the menu on the left side of the screen. Click on it, then drag-and-drop it into the window in the middle. The cube in the middle window is now an Actor within the Level.
Note that not all Actors are physical objects. For example, there are several Actors that simply mark specific places in a Level where certain things should occur. These are still Actors even though players will never see them in the game.
The Unreal Engine 4 Quick Start Guide part 3 covers Actor types such as Meshes, Brushes, Lights, Volumes and more.
Mesh is a 3D-modeling term that refers to visible 3D objects. Unreal Engine has two main types of mesh Actors – the Static Mesh Actor and the Skeletal Mesh Actor. The Static Mesh Actor is for meshes with no moving parts. The Skeletal Mesh Actor is for meshes that do having moving parts.
The Starter Content contains some meshes you can use but third-party 3D-modeling programs, such as Maya, 3D Studio Max, or Blender, create most meshes used in games. You can find lots of meshes for free and for sale in the Epic Games Launcher and on the Internet in general.
Brushes, also known as Geometry Brushes, are Actors that model 3D space. This is very close to the definition of a mesh, but there are some key differences between the two. Brushes are for simpler shapes while meshes are for more complex shapes. Brushes are easier to work with but require more memory. So, in general, use Brushes to quickly prototype the layouts of Levels, and then replace them with Meshes for the final product. You can access Brushes from the Geometry tab on the left side of the Editor.
The Material of an Actor is a property that is common to both Meshes and Brushes. A Material is an asset you can apply to the surfaces of Actors to make those Actors appear to be made out of that Material. For example, you could apply a wood Material to a cube Mesh to make a “wooden cube.”
The purpose of a Light Actor is to represent visible light. Note that they only represent the light itself and not the object from which the light emanates. For example, to have a lamp in your Level, you would need a Static Mesh Actor of a lamp, including the light bulb, in addition to a Light Actor in the same location as the bulb.
There are four types of Light Actors in Unreal.
Directional Light Actor – used to mimic light coming from an extremely long distance away, such as outer space; used primarily for sunlight and moonlight
Point Light – for light that emanates in all directions, like from a light bulb, or fire
Spot Light – emits light in the shape of a cone, like from a flashlight, or, as the name suggests, a spot light
Sky Light Actor – emulates the light that reflects off the atmosphere (the “glow” of the atmosphere)
Atmospheric Fog Actor
The Atmospheric Fog Actor is in the Visual Effects tab in Place Mode of the Modes Panel. Adding it to your Level will give your Level a blue sky and a sun disc.
By default, the sun disc will appear on the horizon. To get it to appear in the sky, you must combine the Atmospheric Fog Actor with a Directional Light Actor. This is done by checking the Atmosphere Sun Light property in the Light category of the Directional Light Actor. By doing so, the rotation of the Directional Light will determine where to place the sun disc in the sky.
Player Start Actor
The Player Start Actor is in the Modes Panel under the Basic tab. Its location in the Level determines where the player will start when the Level begins. If a Level does not contain a Player Start Actor, the player will begin at position (0,0,0).
A Volume in the Unreal Engine is an invisible area of space that will give certain characteristics to that area depending on the type of Volume. For example, a Blocking Volume will prevent other Actors from being able to enter the Volume’s area. A Pain Causing Volume will cause Damage to any Actor that overlaps with it. A Trigger Volume defines a specific event to occur whenever an Actor enters or exits the volume. This event can be anything you want and can be defined in Blueprints, which are covered at the end of this guide.
The Unreal Engine 4 Quick Start Guide part 4 covers the Level Editor, how to navigate within it, and how to organize your content within it.
The Level Editor is the home screen when developing games in the Unreal Engine application. The large rectangle in the middle is the Viewport. The thin strip above that is the Toolbar. At the bottom of the screen is the Content Browser. On the left side of the screen is the Modes Panel. On the right side of the screen is the World Outliner at the top, and below that, the Details Panel.
1. Viewport – used to manipulate Actors in your Level and visualize what the Level will look like
2. Toolbar – a collection of buttons for common and useful actions, such as saving or playing a simulation of your Level
3. Content Browser – for storing and organizing content, such as Meshes, Materials, audio, visual effects, and so on
4. Modes Panel – changes the mode of the Level Editor into different modes suited for particular tasks, such as dragging and dropping Actors into the Level, adding color and texture to objects, manipulating the geometry of objects, modifying the landscape, and adding foliage to the Level
5. World Outliner – an organized list of the Actors in the Level so they are easy to find quickly when the Level gets large
6. Details Panel – used to view and edit the properties of the currently selected Actor
There are three different ways you can navigate in the Viewport – mouse navigation, WASD navigation, and Maya navigation. The abbreviations LMB, RMB, and MMB stand for left mouse button, right mouse button, and middle mouse button, respectively.
To use mouse navigation, hold down one of the following mouse buttons or button combinations and drag the mouse to perform the action.
LMB – move forward or backwards, rotate left or right
LMB+RMB / MMB – move left, right, up, or down
RMB – rotate in any direction
To use WASD navigation, keep the RMB held down the entire time.
Drag the mouse – rotate in any direction
W, A, S, & D keys – forward, left, backwards, right
Q & E keys – up, down
Z & C keys – zoom in and out
Maya refers to a popular 3D-modeling program that uses these controls. To use Maya navigation, keep the Alt key held down, then hold one of the following mouse buttons and drag the mouse.
LMB – tumble/orbit the camera around a single point of interest
RMB – dolly/zoom the camera towards and away from a point of interest
MMB – track/pan the camera up, down, left, and right
Moving, Rotating, and Scaling Actors
To move, rotate, and scale Actors in the Level Editor, use the Move, Rotate, and Scale Tools. You can see which tool is selected by looking at the first three icons in the upper-right of the Viewport.
To switch between the tools, click their icons, or use the shortcut keys W, E, and R.
When the Move Tool is selected, three colored arrows will appear on the currently selected Actor. To move an Actor along a particular axis, click on the corresponding arrow and drag the mouse. To move an Actor in two dimensions, click on the connector between the arrows. For all three dimensions at once, click on the white sphere in the middle of the arrows.
When the Rotate Tool is selected, you can rotate an Actor around one of the three axes by clicking on one of the colored arcs and dragging the mouse.
When the Scale Tool is selected, you can make your Actors bigger or smaller. Just like with the Move Tool, you can manipulate the Actor in one, two, or three dimensions at a time.
When an Actor is selected, the Details Panel will display the properties of that Actor, most of which can be edited.
The Transform category is common to all Actors. In the Transform category, you can move, rotate, and scale actors manually by entering values directly. This is useful when you need precision or exact values.
Mobility is a setting that applies primarily to Mesh Actors and Light Actors. For Meshes, there are two options – Static and Moveable. Static means the Actor will remain in place the entire time, while Moveable means it’s possible for the Actor’s location to change. For Light Actors, there is a third option – Stationary. This is used for Lights that don’t move, but can change in other ways such as changing color or turning on or off.
The Unreal Engine 4 Quick Start Guide part 5 covers Blueprints. A Blueprint in the Unreal Engine is an asset that contains data and instructions. With Blueprints, you specify the logic that controls your games and keeps track of important data such as health, energy, score, etc.
Level Blueprints vs Blueprint Classes
There are two main types of Blueprints – the Level Blueprint and Blueprint Classes. A Level Blueprint holds data and instructions for a particular Level. It might hold data such as the time remaining to complete the Level, or the number of keys you’ve collected in that Level, and so on. It also stores instructions that pertain only to that Level.
Blueprint Classes are a way to turn any Actor or asset into a Blueprint. This allows you to create objects with custom traits and behaviors. One of the great things about Blueprint Classes is that you can use them to create as many copies, or instances, of your creation as you want. Once you complete a Blueprint Class, it will be available to you in the Content Browser, and each time you drag it into the Viewport, it will create a new instance of that Actor. Each instance has its own data independent from the other instances.
Level Blueprint Editor
To open a Level Blueprint, go to the Toolbar, click the Blueprints button, then click on “Open Level Blueprint.” This will open the Level Blueprint Editor.
Inside the Level Blueprint Editor is the Event Graph. The Event Graph is where you script logic. If you’re a programmer, you can script the logic in pure code using C++. However, Epic Games has a visual scripting system that allows non-programmers to script logic and can be convenient even for programmers with experience.
The scripting system works by using various Nodes, that each serve a specific purpose, and connecting those Nodes together. By default, the Level Blueprint starts off with two commonly used Nodes in the Graph. They are disabled to start with, but can be used right away by connecting them to another Node.
The first Node is the Event BeginPlay Node. An Event Node is a Node that activates when a certain event occurs. So an Event BeginPlay Node, inside of a Level Blueprint, will be activated by the event of the Level first starting.
The second default Node is also an Event Node. The Event Tick Node is a Node that activates on every tick of gameplay. Before every frame of the game draws on the screen, any logic that connects to the Event Tick Node will execute. This is useful in situations where you need to constantly check certain conditions that, when met, will have an immediate effect on the game, such as the main character colliding with something harmful.
Pins and Wires
The icons along the left and/or right sides of Nodes are pins. Pins on the left side of a Node are input pins and pins on the right side of a Node are output pins. They input/output data to and from Nodes and specify the order in which Nodes should execute.
Pins connect to one another with wires. To create a wire, left-click on a pin and then drag the mouse while still holding the LMB. This will drag a wire out of that pin. If you hover over another pin and release the LMB, it will connect the end of the wire to that pin.
Pins with a white icon that looks like a Play button are execution pins. Execution pins on the left side of a Node are input execution pins. When a wire connected to an input execution pin activates, it will trigger execution of that Node. Execution pins on the right side of a Node are output execution pins. Wires connected to an output execution pin will activate once that Node has finished executing. Output execution pins can only connect to input execution pins and vice-versa. By chaining Nodes together through their execution pins, you can define a series of Nodes that should execute, one after the other, every time the first Node in the series activates. The first Node in a chain will always be an Event Node.
Pins with a circular icon are data pins. The purpose of data pins is to pass data between Nodes. Output data pins can only connect to input data pins and vice-versa. Whatever data the output data pin contains is sent to the input data pin it connects to.
To add a new Node to the Event Graph, you will need to select that Node from the Node Menu. The Node Menu is brought up by right-clicking on any empty space in the Graph, or by releasing the LMB over any empty space when dragging out a wire from an output execution pin. When doing the latter, the Node you add will automatically connect to the wire.
There are many Nodes available to choose from in the Node Menu. They are organized into categories, but if you know at least part of the name of the Node you’re looking for, you can use the search box at the top of the Node Menu to search for it.
Before you can test any new logic you have created, you must compile the Blueprint. Compiling just means that the Engine will convert the logic into machine code that the computer can understand. In order to compile the Blueprint, simply go up to the toolbar of the Blueprint Editor and click the Compile button. If there is any new logic that is uncompiled, the Compile button will contain a question-mark icon.
Simple Blueprint Example
Here is a simple, albeit non-practical, example of a Blueprint to help you gain familiarity. The following is a Level Blueprint whose logic specifies that the game should exit two seconds after the Level begins.
Variables are what Blueprints use to store data. Just like in algebra, where you might use a variable named X to store a number, you can use variables in Unreal to store data. But in Unreal, variables can hold other kinds of data in addition to numbers, such as text.
To create a variable in Unreal, first look on the left side of the Blueprint Editor for the My Blueprint tab. Within the My Blueprint tab is a Variables sub-tab. Clicking on the plus sign on that tab will create a new variable which you can then name.
A variable’s data type determines what kind of data it can hold. One way of setting the data type is to click on the rectangle to the left of the variable’s name, and then choose the data type from the menu that appears. The menu will contain a list of all the basic data types in Unreal. Each data type is identified by a unique color.
Boolean – holds a value of True or False
Byte – stores a whole number between 0 and 255, inclusive
Integer – stores whole numbers
Float – holds decimal values
Name – stores text
String – stores text that you can perform manipulation functions on
Text – stores text that is displayed on the screen
Vector – stores three Float values
Rotator – stores numbers that describe an object’s rotation in 3D space
Transform – holds data that describes an object’s position, rotation, and scale in 3D space
A Get Node is a Node whose only purpose is to output the value of a variable. It will contain just a single pin, an output data pin. It has no execution pins. You can think of a Get Node as being always active, because it will output the current value of the variable, every tick of gameplay, to whatever pin it connects to.
To create a Get Node for a specific variable, left-click on the variable in the My Blueprint tab and drag it into the Event Graph. When you release the LMB, click on “Get” from the menu that appears. This will create a Get Node. Another way to do this is to hold down the Ctrl key when dragging the variable into the Graph, and then when you let go of the mouse, it will automatically create a Get Node for the variable.
A Set Node changes the value of a variable. It contains an input data pin that specifies what value the variable should change to. The value changes once the Node activates through its input execution pin. The Node also contains an output data pin so the new value can pass on to another Node if you wish.
To create a Set Node for a specific variable, left-click on the variable in the My Blueprint tab and drag it into the Event Graph. When you release the LMB, click on “Set” from the menu that appears. This will create a Set Node. Another way to do this is to hold down the Alt key when dragging the variable into the Graph, and then when you let go of the mouse, it will automatically create a Set Node for the variable.
Updated Blueprint Example
Expanding on the Blueprint example from earlier, here is an example of using a variable to specify the duration that the Delay Node should delay.
Accessing Actors Within Blueprints
In order to access to an Actor within a Blueprint, that Actor needs to be selected in the Level Editor when you right-click in the Event Graph of the Blueprint. When you do so, the Node Menu will have some options at the top relating to that Actor. You can create an Event based on the Actor, you can call a Function on the Actor, and you can also get a reference to the Actor. Note that for this to work, the Context Sensitive checkbox needs to be checked.
The following example uses a reference to a Light Actor to turn that light off two seconds after the Level begins.
To create an Event from an Actor, select the Actor in the Level Editor, open the Node Menu in the Blueprint, make sure Context Sensitive is checked, then select “Add Event for [Actor Name].” From there, if you expand the Collision menu, there will be an option to create an On Actor Begin Overlap Event. This Event will fire whenever another Actor overlaps with this Actor. This Event is often used with Trigger Volumes.
The following example uses Events to turn a Light on and off when an Actor enters and exits a Trigger Volume named “LightTrigger.”
With Blueprint Classes, you can create Blueprints out of existing Actors and Assets. By creating a Blueprint from an Actor, you can add data and functionality to that Actor, thus creating your own custom version of that Actor type.
To create a Blueprint from an Actor, select it, and then in the Details Panel, click on the blue “Blueprint/Add Script” button. Then select the folder path where you want to save the Blueprint, give it a name, and click “Create Blueprint.”
The following example is a Blueprint that has been created from a Point Light Actor. The logic will cause the Light to turn on and off every second.
One of the major advantages of Blueprint Classes is that they are reusable. The above Blueprint of a custom Light Actor can be used just like any other Actor. If you browse to it in the Content Browser, you can drag and drop as many instances of it as you want. An instance is an individual copy of an object made from a Blueprint.
When you add a variable to a Blueprint Class, it is, in essence, adding a custom property to that Actor. The following builds upon the earlier example and adds a Float variable named Light Toggle Duration to the Blueprint and uses that variable as the Duration of the Delay Node.
There are two ways to make a variable Editable. One way is to use the icon in the My Blueprint tab, which will toggle between the image of an eye open and an image of an eye closed. When the eye is open, that means that the variable is Editable. You can also use the Editable checkbox in the Details Panel to set whether the variable should be Editable or not.
If a variable is set to Editable, its value can be changed in the Level Editor. With the Light Toggle Duration variable set to Editable, if you select an instance of the Light Blueprint in the Level Editor, that variable will now appear in the Details Panel.
Now you have the ability to easily set a different duration for each instance of the Actor. You could drag in several instances of the Actor, give them each a different Light Toggle Duration, and they will all turn on and off at different rates. This is the power of Blueprint Classes. You can create your own custom Actors and Assets, then reuse them as many times as you like, and modify their individual properties.
Unreal Engine 4 Quick Start Guide – Learn More
To learn more about Blueprints, check out our Unreal Engine 4 Blueprint Node Reference Guide.