- How to Optimize Unreal Engine 4 Games: Best Unreal Engine 4 Tools for Performance
- What is UE4 performance optimization?
- Challenges Unreal Engine Tools Can Solve
- Image resolution
- Lighting and shadowing
- Miscellaneous effects
- Top 4 Essential Unreal Engine Tools For Optimizing Your Game Development
- 1. Creating levels of detail (LODs)
- 2. Culling
- 3. Defeaturing
- 4. Proxy Geometry tool
- Some more UE4 performance optimization tools to look at
- Packaging projects
- Cooking and Chunking
- Consider Pingle Studio Your Trusted Partner
- Final Thoughts
Optimization is often a weak spot of many software products, not just games. It’s easy and tempting to develop a product and hope all the users have the latest hardware setups to run it with no problem. But that’s not how it works, especially in game development. That’s why if you plan your game to have more than a couple of hundred players worldwide, you have to optimize it.
The right approach to optimization is when a developer knows what exactly in-game composition affects the game’s performance. In game development, we measure the performance in the frames per second (FPS) rate or framerate. Well-optimized games show playable framerate on a wide specter of devices, including low-end ones.
The good news is that nowadays game developers have that much hardware data, expertise, and technology, like never before. Especially if developers prefer well-known gaming engines. Unreal Engine 4 built-in tools come in hand here.
In this article, we’ll show you some Unreal Engine tools for optimizing Unreal Engine games.
Any game creator wants its game to be able to provide the best possible gameplay experience on the widest possible number of chosen devices. The game build should be performed in the most optimal way for a game to provide the acceptable frame rate and experience on a chosen set of devices. Optimization often helps to get to this point.
In Unreal Engine 4, performance optimization is the process of modifying an engine and a project to make it work more efficiently and execute more rapidly. It generally focuses on improving some aspects of the game’s performance, like frame rate, memory usage, disk space, bandwidth, and many others.
One of the key struggling points of game performance is providing a real-time rendering. The performance shouldn’t exceed the maximum limit of time needed to render one frame. Targeted frame rate changes depending on a player's hardware. There are special pieces of gaming hardware that require a certain amount of FPS to be provided. For example, VR headsets require 60+ FPS, elsewise players may feel headache and sickness, because of human brain physiology.
Here are some visual effects that meaningfully impact the performance and can be optimized with Unreal Engine game creation tools:
In most cases, developers operate with screen resolution, for example, 1920x1080. That’s why it’s common to compare performance according to the resolution. The player’s hardware should work towards rendering a frame on a per-pixel basis. More pixels to render means more used hardware power: rendering a 4k scene is approximately 4 times more expensive than rendering a 2k scene.
The majority of objects in the game should respond to light and shadow. Obviously, this takes a noticeable part of hardware resources. The majority of next-gen game graphics technologies is based on light, like Ray Tracing or Lumen in the upcoming Unreal Engine 5.
Almost every game features effects that are hard to categorize. For example, the technology of simulating the optical behavior of the camera.
Unreal Engine offers a variety of optimization technologies. Optimization should be planned for each game uniquely. But there are 4 tools for making a game in Unreal Engine 4 that could work for optimizing almost any game built on this engine.
The player wants all the visible objects in the game to look good and detailed. But the player wouldn’t mind the details to be more simple if they are out of sight or far away. So the developer can put more detail on visible meshes and simplify them when the player moves away. That’s where LOD (level of detail) Unreal Engine function comes in hand.
LOD allows meshes to swap between more and less detailed states depending on the player’s position.
Note that LOD is calculated by screen size, not distance. That’s why if you put a bigger instance of the mesh next to a smaller instance and move the camera equal distance away from two of them, the small instance switches to the next LOD first.
This is a great optimizing tool for increasing the game’s performance on some particular level.
Culling is also built on the camera position and working with the objects that are out of the player's sight. Any 3D rendering will perform better with the smaller number of objects to render per frame. The objects that are blocked from the player’s sight by the other objects on the level can be optimized while rendering with no changes to the final scene.
To perform culling, identify all the occluded actors and choose what you’re doing to them: isolate them on the separate level and render when the player sees them, remove them from the level completely or make their geometry as simple as possible.
Some objects in the real world have a geometry that is reasoned by some practical purpose. But this geometry doesn’t always have to be brought to a 3D model. Defeaturing in Unreal Engine helps to define and simplify this kind of geometry. Defeaturing removes unnecessary holes, protrusions, vertices and triangles from meshes. This makes meshes more simple, and simpler meshes increase the rendering performance.
Another good way to reduce the number of meshes to render is by combining multiple meshes and materials into a single mesh and material. In Unreal Engine, this is done by Proxy Geometry Tool. The eventual new static mesh will have a look and shape of the ones it’s been combined from, but the number of triangles and draw calls will be much smaller.
As a result, the runtime rendering cost of static meshes after the Proxy Geometry Tool is much faster. The result can be used as a proxy for the initial geometry in cases where the difference in quality is acceptable, for example, for the meshes on distance.
Proxy Geometry is indeed one of the Unreal Engine tools to help reduce app size.
The tools mentioned above are a must-have for optimizing almost any Unreal Engine 4 project. But they obviously aren’t the only tools that might help to optimize the performance in your particular project. The next two tools helped Pingle Studio to provide much better performance many times.
Packaging your Unreal Engine project helps to make sure that all the content and code is up to date and is implemented in a required format to be run on a target platform.
First, you should compile a project-specific source code. Next, all the content should be cooked or converted in a target platform format. After that, it can be bundled in the distributable files.
Some optional methods may help to organize your project before packaging. For example:
- setting a default map for the game
- creating the packages for listed directories
- creating the package in the Distribution mode (for App Store and Google Play Store)
- signing and encrypting .pak files
- content cooking
- ordering .pak files
Check more detailed project packaging options in Unreal Engine documentation.
Unreal Engine 4 can set the assets of your game apart while cooking your project. The engine divides assets into chunks — numbered collections of assets that can be recognized by the asset management system of UE4.
Chunks can be independently distributed, for example, as patches or downloadable content. In a cooked project every chunk can generate a .pak file which may be furtherly distributed.
Assets can be assigned to specific chunks via the Asset Manage Primary Asset Labels functionality.
Being in the industry since 2007, we at Pingle Studio optimized almost every project we’ve been working with. Especially when it comes to porting games to the weaker devices than the prior one.
We have a team of dedicated Unreal Engine C++ programmers, Tech Artists, Game Testers, Game Designers, and Game Art specialists that regularly take part in game optimization works.
One bright example is our work at Beyond A Steel Sky. Our job was to provide a playable frame rate for the lowest-end Apple devices because Revolution Software planned to release this game on Apple Arcade.
The unique visual style, made by Dave Gibbons, is one of the main selling points for this game. So it was crucial to bring the graphics to Apple devices with the least possible downgrades.
To keep a playable frame rate and nest possible visuals, we did the following:
- A detailed analysis of the art assets for the game, as well as CPU/GPU profiles (check out our material on how to do proper profiling in Unreal Engine 4)
- Specify the weakest devices the game should work on: iPad mini 4, iPhone 6s Plus, iPad Air 2.
- Optimize or remove the resource-consuming art assets
- Create and implement a content optimization pipeline
As a result, Apple Arcade subscribers could enjoy Beyond A Steel Sky on June 26, 2020, even on the weakest devices, supported by Apple Arcade.
Do you need optimization for your Unreal Engine project? Don’t hesitate to let us know about it on this page and we’ll use our optimizing expertise to make your game pleasantly playable on all the possible devices.
Graphics may be the most crucial point of game optimization, but it’s not the only point. Take into account the user interface of your game, save and load system, netcode, game flow, and even controls. Every game is unique so the approach to optimization should also be unique.
We at Pingle Studio have a meaningful experience with all kinds of game optimization, from reducing the app size to launching the game on outdated devices.
Contact us and let’s make your game run faster!