I decided to start off by opening it on my laptop which is running good hardware, including a 3080 graphics card and a intel Core i7 which should be more than enough, only show the project was chugging.
I immediately began to work on a chart to mark down the numbers and keep track of improvemenmts over time
I went through the camera and searched to see where the big issues were and the biggest causes I found were in the lighting complexity and collisions.
For better navigation and finding things, I began to organize the assets in the outliner into seperate folders
I decided to immediately focus on the lighting as I believed it was the most problematic. Taking a look at the lights, one of the problems I discovered was that many of them had very high radius's that would overlap with each other, so I reduced the overall size from 1700+ to around 500.
I also noticed when outside the level halls itself, there were lights that when looking closer, didn't effect the overall level and were just floating in space. Since they didn't contribute, I removed them.
Something I wanted to try was to remove some of the minor lights in the scene and in the details panel, set the object to use the emission as static lighting.
Since this project doesn't use baked lighting, this wouldn't have worked on ultimately not affect the scene.
Overall performance improves overall by around 20 FPS with the MS times seeing the most significant changes
Now I move on to the meshes and focus on collisions, meshes that can be merged into one, as well as the possibility of reducing the number of meshes in the level if possible. Like with the lights outside the hall, I immediately looked for assets that are also floating in empty space and other assets that aren't visible in the scene. When discovered, I would remove them after determining if their removal isn't noticeable in the level.
There are multiple different assets in the scene that have collisions that are more complex then they need to be and aren't likely going to be interacted with overall, so I simplified them to a collision that matches the shape of the mesh, but wouldn't be to over-reaching in the player space.
Since there are multiple separated assets from the mod-kit that are used to create the level, I went in and in the densest areas, I would merge those meshes as an asset and replace the separated with the merged. I saved the merged pieces into an asset folder in the folder 3Tianqi location. I would choose how big the merge would be based on it's general impact to the level and are either not within the player space or less likely to be interacted with or edited.
Merge Sizes:
BIG = Takes up a ton of space and isn't likely to see edits. Players could still interact/collide.
EX: Large walls, world floor, scenic background set dressing
MEDIUM = Visually present to the player and interactable/in playable space. Add to visual look of location and will repeatedly placed throughout level.
EX: Platforms
After merging, I would then create new collisions for the meshes since now Unreal is no longer tracking rendering multiple asset collisions.
The final results that I reached came to a jump in FPS by 60 frames and reducing the draw by more than half.
Credit: Tianqi Liang, https://www.artstation.com/tianqiliang8, https://store.steampowered.com/app/3554820/XELVITA/