Unreal contains a range of debug tools which allow the user to look at how they can fix any errors or issues which arise during development of a game. In this post, I will describe and provide screenshots of some of the key debugging features which I noticed during my usage of the engine during development of the game.
The debug tools can be found under the Developer Tools menu, in the Window toolbar menu. There are a range of different tools available here.
Blueprint Debugger
A tool which shows what methods and classes are executing. This is really useful to show what is happening if someone wants to work out if a certain piece of the Blueprint code is running or not.
Call Stack
A tool to show what is happening during breakpoints. This is where a pause is placed to see if everything is executing, as expected. Similar to Visual Studio and other IDEs, you can skip frames, step into, step over, and step out of a method.
Breakpoints can be added to a step in the Blueprint by pressing F9 on the method you wish to add a break-point to.
Collisions Analyser
A tool to show what collisions are occurring within the scene involving all actors and non-static objects. This can be used to detect what type of collision is happening (overlap/sweep), the owner of the object, how many blocking results there are, and how many objects are colliding with the object.
Debug Tools
A tab which allows you to debug a series of features for the game engine, such as clearing the font cache, and reloading textures.
Message Log and Output Log
Two different tabs which allow for the developer to get feedback on the execution. This is usually where errors will be output. This is similar to the Message Log which is seen in Unity.
Two different tabs which allow for the developer to get feedback on the execution. This is usually where errors will be output. This is similar to the Message Log which is seen in Unity.
- The Message Log displays a series of output messages with regards to any Blueprint class errors, editor errors, and build & runtime errors.
- The Output Log goes into extended detail regarding the execution of the game, giving feedback on the game engine files, plugins, specification of the computer, the shading details, and the building process of the file.
Asset Audit
Allows you to review assets which have been imported into your project. The tab lets you import an asset, and review the properties of the file. You can review this, and compare the different outputs if it was formatted for different platforms (e.g.
- E.g. for an image, you can see properties such as the disk size, image dimensions and compression details.
- E.g. for an audio clip, you can see properties such as the disk size, compression rate, sample rate and duration
Session Frontend
A tab which allows you to review to performance of the game during runtime. This includes a console to debug information on the execution, an automation tab which allows the developer to run tests on tasks to ensure the game engine is running correctly, a screen comparison tab, and a profiler tab to capture information on the game's performance (some of the key factors include looking at threading, tick time, memory usage, input tick rate).
This can be useful to developers with a good technical knowledge of the engine, as this could allow them to debug some of the factors which affect the performance, and help review technical issues.
The profiler in Unreal can be compared to the similar feature which Unity includes to debugging the performance of the game.
There are some other debugging tools included in the Unreal engine, in that menu, and are listed below.
- Class Viewer - Retrieves a list of classes included within the project. This can be used to allow developers to easily find Blueprint classes. This can be useful to see if there are any classes which could be removed or deleted.
- Device Manager - Retrieves a list of devices which the developer's computer is connected to. This shows what platforms the computer is connected to (Windows, HTML5, iOS), and also shows a list of processes running on the computer. This is similar to the Task Manager in Windows. This can be useful to see what tools the developer has got connected, and allow them to connect another device, if they wish to release their game on another platform.
- Device Profiles - Retrieves a list of 'profiles', which are ways for the developer to review CVars (texture settings, console variables) and Texture LODGroups. This can be useful if the developer wishes to set up a specific texture output file.
- Widget Reflector - a tab which allows the developer to review the technical output of the UI reflections and visibility. This also allows the user to review the C++ widget code, show if the widget component can be focused on, if it is visible, and other details.
- Pixel Inspector - A tab which lets developers review pixels, such as colour and texture details when hovering over objects in the Unreal scene. This can be useful to help the develop get access to a colour of a few pixels, if they want to reuse the the colour elsewhere.
- Merge Actors - A tab which allows developers to join actors together. The tab contains settings which let you change the settings of the new, merged object such as the pivot point, merge of materials, and reviewing the culling.