Getting Started with Unreal Engine for Unity Developers
When beginning a new project, developers must decide which engine to use to build their games. Unity is one of the current favorites, but the company policies are known to give game developers reasons to rethink if that’s still the case.
One of the most popular alternatives is Unreal Engine, which is both reliable and stable. It powers next-gen games on both PC and consoles. In this tutorial, you’ll see the basic functioning of the engine and how to get started, bringing as much of your expertise with Unity as possible.
Unity vs. Unreal Engine — Round 1; Fight (But Not Too Much)
From a technical perspective, Unity and Unreal Engine both have been viable options for a few years now. Despite many similarities, the key purposes of these two game engines are distinct. Unity aims to popularize game development through simple-to-use tools and resources, whereas Unreal Engine focuses on creating next-gen experiences.
It’s important to step back at this point and get into more detail. Does this mean Unreal is more complicated or takes longer to get a functioning game prototype? Not necessarily. From a quick glance, Unreal Engine might seem more complex as it uses C++ as the programming language, offers a wide range of resources and forces a rigid game architecture, which the developer must follow.
In reality, it’s possible to get interesting results with relatively little effort; check out one example of this in How to Create a Simple FPS in Unreal Engine 5 tutorial.
Unreal Engine lets developers choose which tools to use during every game development stage. In other words, Unreal Engine supports development from prototyping to final game release.
This tutorial can function as an information source. For a practical approach, check out Unreal Engine 5 Tutorial for Beginners: Getting Started for instructions on how to install and configure Unreal Engine on your computer.
User Interface and Files
To ease your introduction to Unreal, check out its editor compared to Unity’s:
As you can see, the interface layout is similar. Generally, the screen sections offer the same functions in Unity and Unreal Engine. For example, you can use the same process in Unreal as in Unity to import assets. The same applies to creating new elements, visualizing the object hierarchy, navigating your scene, etc.
The fun part about Unreal is that all the elements have advanced features that more experienced users can use to their advantage. However, that is a subject for another tutorial. But you can — and should — explore the functionalities and see what works better for you in different situations.
One example of these advanced functionalities is in the viewport. In its inital state, you can only see a 3D representation of the scene. This can introduce problems such as objects hiding others due to the perspective. By clicking the button shown in the following figure, that changes the way it works completely.
Now, the window shows the top, bottom and side views of the scene in wireframe mode. This allows you to see and position elements in the game world easily. It’s like having X-ray vision for your scene objects!
Launching the Editor
Both Unity and Unreal Engine provide project templates to get started quickly. When you launch the Unreal Engine Editor, it presents this initial screen:
Notice you still have the option to start with a blank project, but the editor offers many helpful templates to begin your work. Later, you can create one project with each template to explore the resources Unreal provides. For now, though, click the Third Person button and then the Create button. This displays the Unreal Engine loading screen. After a few moments, the Unreal Engine Editor appears.
When this screen appears, you already have a working game. Try it out by clicking the Play button and seeing how your level plays out in the Editor window, similar like you would in Unity.
The result will be the one shown in the following picture. To take control of the pawn, as this character class is called, click inside the window. To get the mouse cursor back to the Editor window, press Shift-F1 on the keyboard. To exit this play mode, press Escape.
You can find more options to run the game by clicking the Platforms button. The first, highlighted in the figure below, compiles and launches the game in a dedicated window on your computer. The other options allow you to package and distribute the game if you have installed the appropriate platform’s SDK on your computer.
The result appears in the following figure.
You can explore the level in many ways. The easiest is to use the mode Unity calls the flythrough mode. Just as you would in Unity, hold down the right mouse button and use the W, A, S and D keys to float around the level. In this mode, you use the mouse to change directions. As an added functionality, the Q and E keys control the camera height.
Levels are the maps your player will explore with their characters, which Unreal Engine calls pawns; you’ll learn more about those in the next section. You can click and move the level items to make different challenges for your player and create new level configurations. Most level elements are what Unreal Engine calls actors, which are defined as game elements that can be spawned in a level, but that can’t receive player controls.
In Unity, to add a GameObject to the level, you would use the Hierarchy and select one of the options in the dropdown. In Unreal, the process is a little less straightforward.
Click the Quickly add to the project button to add geometry and other elements to the level. These elements help with prototyping your level and adding gameplay options. If you’re interested in level modeling, this level prototyping tutorial might interest you.
The pawn is a curious case for level elements; it’s not in the level initially, but when you play the game, the pawn suddenly appears. Puzzling, right?
Unreal has modularity in mind here. If the pawn was statically referenced in the level, it would be a potential source of error. Do all the levels have the most up-to-date version of the Pawn? Has someone changed the pawn in one level and not in the others?
To avoid such errors, the level should contain the Player Start object. This element determines where the engine should spawn the pawn, as configured in the level properties. Therefore, the level and the pawn are somewhat independent of each other. This means the level doesn’t need a static reference to the pawn object. Its code or geometry can change and won’t influence the level in which the pawn will appear.
Another cool feature for modularity in levels is the concept of sub-levels. But this notion is too complex to treat in depth here. Think of it as a way of dividing the level creation among designers and coders. In the end, all the elements get put together automatically (or almost automatically — some assembly effort might be necessary).