Spectrum Galaxy is optimized to run on the PC, further optimizations could be required if you desire to use other platforms. So in this page I have some general tips and guidance on how to improve the performance of the project.
First, here are some links to helpful information from Epic Games:
The main example map included in this project (Galaxy_Example_Map) is designed to showcase assets at a high fidelity. It has lighting scenarios, cinematics, particles, and transparent objects. This map is meant to serve as a visual guide for the type of spaces that can be made with this kit.
If further optimization is required, please consider using the provided map called "Galaxy_Example_Blueprints" as a starting point. This map does not contain cinematics, lighting scenarios and uses less transparent objects. This map can scale to accommodate complex assets like animated characters.
1. Adjust scalability settings accordingly
Epic has a "Scalability" section on the settings that allows you to customize the engine and material scalability settings to better suite your target platform. Spectrum galaxy uses the highest settings by default.
Scalability section in the settings (screenshot from UE5)
2. Consider using “shadow maps” instead of virtual shadows (UE5 only)
This only applies to the UE5 version of Spectrum Galaxy, the default shadow map method is set to "virtual shadows beta" as it yields more accurate results than shadow maps but It does have a higher performance cost.
To change this you would need to:
1. open the project settings and search for "shadow map method".
2. change this to "shadow maps".
3. Lower game window resolution when needed.
I would recommend making optimizations while testing the final output resolution when possible. This will help you optimize texture resolutions, the quantities of static meshes, or other assets.
As an example, if the final output is a 15 inch laptop, then you might not need as many decals, particles, or small detail props when compared to using a large 27 or 32 inch monitor. Additionally, consider using 1440P or 1080P instead of 4k for better performance.
4. Use software and not hardware ray-tracing (UE5 only).Spectrum Galaxy uses Lumen software ray-tracing by default. Turning on hardware ray-tracing on the project will add to the performance costs. Software ray-tracing is a high quality implementation though it may not be as accurate as hardware ray-tracing.
5. Consider using baked lighting instead of real time global illumination (UE5 only).The UE5 version of Spectrum Galaxy uses Lumen while the UE4 version is using baked lighting. Baked lighting can yield much better performance but has higher maintenance costs. It requires you to build the lighting frequently as you update your levels.
If you wish to use the UE4 version with baked lighting in UE5, you will need to manually import the project from UE4 to UE5 following these steps:
1. In the Epic Games Launcher, please create a new project using "Spectrum Galaxy" and use 4.27 as the engine version.
2. Still in the Epic Games Launcher under "Engine Versions", Launch UE5.
3. When asked which project to open, select the project you just created. The "convert project" window will then appear. Please select either "open a copy" or "convert in-place".
4. After the conversion process is complete, you will have the version of Spectrum Galaxy that uses baked lighting running in UE5. Prior to running the game and after opening a map, please allow the shaders to build.
5. After launching the project, you might get a dialogue window to update your project, please go ahead and select "update".
6. You might need to re-build the lighting on all levels if there are static meshes that appear dark. This is an error of the conversion process.
6. Package a build when testing.
Playing the game within the editor or as a new process may not yield the best performance when compared to packing a build. Packaging a build might require you to install additional software, please refer to the Epic Documentation on installing visual studio.
In this lighting tutorial, we briefly go over packaging a build at the end of this video:
Important note: when playing a packaged build, please ensure the editor and other heavy apps like games or 3Ds Max are not running.
7. Try not to overlap many transparent objects.
Overlapping transparent objects can contribute to the performance costs. I would recommend keeping this in mind when building levels. For example (shown below), if a large room has a window, this window looks into another large room with yet another window, and behind that second room is an ocean with a transparent material. This is a situation that has 3 overlapping transparent objects/materials.
This kind of situation can be avoided by strategically locating windows/transparent so they don't visually stack as much on the screen.
Visual example of a layout that would use many overlapping transparent objects
Another way to not stack transparent is to consider open balconies instead of windows. Also removing the glass elements from railings and having those have solid footings instead.
8. use lens flares carefully
Its easy for lens flares to overlap with other transparent objects on the screen (including other lens flares). Lens flares are among the most expensive materials in Spectrum Galaxy. I would recommend you to use them carefully if you are optimizing for performance and turn off features that you don't need via the material instances.
9. Be mindful of lighting complexity
One of the main ways that lighting complexity is increased is by overlapping lights. Like overlapping transparent objects, its a good practice to not overlap many lights in the same area. Some overlap is necessary but its good to periodically check the scene is not depending on a consistently high lighting complexity.
You can see the lighting complexity by selecting that in the "optimization viewmodes" section in the view-port menus (screenshot from UE5).
Here is a screenshot of an area with very few lights, notice the colors range from blue to green with some orange (screenshot from UE5).
This is another screenshot with that main light duplicated and moved down to the bottom right. Now notice how the lighting complexity increased in this area (screenshot from UE5).
This is yet another screenshot but with the sun light turned off and with the duplicate light deleted. The lighting complexity is much lower (screenshot from UE5).
10. Try designing levels with interior lighting or exterior lighting. Using both can be costly.
When designing your own levels, you can consider making areas that are completely enclosed and other areas that are open to the sky. This way you can transition between interior lighting and exterior lighting. By exterior lighting I mean a directional light for the sun and a sky light. Interior lighting would be composed of the other light types (spot, rectangular, and point)
Being able to turn off the sky and sun lights can improve performance in interior levels that rely mainly in artificial light sources. This setup an be achieved by using "trigger volumes" that turn off exterior lights when you are inside of an interior.
Some notes on Spectrum Galaxy lighting: The main example map in Spectrum Galaxy is built to use both interior and exterior lighting due to the design of the spaceship. It contains many views that overlook the exterior environment. The map titled Spectrum Galaxy Blueprints is a good example of an environment that benefits from a simplified lighting setup (as well as less overlapping transparent objects). The only views of the sky are available in the ceiling openings.
If you desire to further optimize the lighting on this map, I would recommend replacing the exterior lights with spot lights that are casting down from those ceiling openings. Alternatively, you can consider closing the ceiling openings and relying completely in light fixtures.
11. Lower memory costs by reducing texture resolutions.
Texture resolutions can be reduced in a non-destructive way. Currently Spectrum Galaxy defaults to high texture resolutions. This is so you get to experience a high level of textural detail while playing in the environment. This might not be necessary if your target platform uses lower screen resolutions. In this case I would recommend lowering texture resolutions.
You can do this by:
1. opening (double clicking) a texture in the content browser.
2. looking for the "maximum texture size" option. This is set at 0 by default, which means that the maximum resolution in game is equal to the import resolution.
3. In the example below, the original resolution is 4k (4096x4096). Feel free to experiment with lower resolutions such as 512, 1080, or 2048. You would need to type in the appropriate number in that "maximum texture size" input and then save.
4. Play-test on your target platform and see how low you can adjust these resolutions while maintaining acceptable visual quality.
5. To edit several textures at once, please look into "bulk edit via property matrix".
12. Performance work is an art-form
Usually every level or Game has its challenges when it comes to performance work. Often times what is optimized is closely related to what is the most important experience.
For example, in a racing game the vehicles need to be the highest priority and will likely end up having more geometry density and material complexity.
Screenshot from Forza Horizon 5
On the other hand, a first or third person shooter allows you to get really close to objects in the environment so a higher importance is placed on textural and geometric density of environment props.
Screenshot from Mass Effect Legendary Edition
For this reason, a trash bin on a racing game can be much less detailed than a trash bin on a first person shooter. In a racing game, the main focus is on the cars and road, so the elements that zoom by when going at high speeds can be much lower fidelity and still look acceptable.
Spectrum galaxy is designed for the fidelity you'll find in a first or third person game that allows you to interact with objects up close. The target platforms of this project are PC or high-end consoles. If you desire to build a VR or tablet (apple or android) experience, then it might be necessary to:
• Lower triangle densities on static meshes
• Optimize shader instructions (including lens flare shader) by removing features that are not needed by you or your target platform.
• Lower particle counts (both by using less particle systems and editing the emitters so they generate less sprites/particles).
• Being more aggressive with optimizations listed above (lighting complexity, transparent objects, lens flares use, etc.)
• Seriously consider baked lighting with screen space reflections if Lumen is too costly for your target platform.
I would encourage you to learn more about your target platform and the diagnostic tools within the Unreal Engine. Also to watch the official streams from the Unreal Engine YouTube channel. Search within the channel for "performance" to see their options.
Some helpful console commands to keep in mind while testing for performance:
• stat fps
• stat gpu
• stat memory
A full list can be found here: Unreal Engine Documentation Link