At this year’s Unreal Fest in Orlando, Epic Games not only unveiled exciting new features for Unreal Engine 5 through a tech demo of CD Projekt Red’s upcoming Witcher 4 but also hosted a series of insightful training sessions aimed at developers eager to harness the full potential of the software. Among the most sought-after sessions were those addressing shader compilation stutters and the primary causes of performance hitches in Unreal Engine games. A particularly enlightening presentation, led by a prominent game developer, emphasized that the challenges of optimization are often less about the engine itself and more about the methodologies employed in game development.
Insights from Unreal Fest
The event was brimming with presentations, and although my time was limited, I emerged with a deeper understanding of the persistent performance optimization issues that seem to plague many Unreal Engine games, including shader compilation and traversal stutters. Earlier this year, I penned a blog discussing the shader compilation process in older versions of Unreal Engine, noting that the method for compiling shaders—or pipeline state objects, to use the precise terminology—was far from ideal. For those utilizing Unreal Engine 5.2 or newer, the recommended approach is to implement PSO precaching, which can complement the older methods.
While neither solution is flawless, Epic continues to refine these processes, and I remain optimistic that a more effective mechanism to eliminate shader stutters will be developed in due course. In fact, I would argue that if developers adhered closely to Epic’s guidelines on performance optimization, we could witness AAA titles running seamlessly.
However, after attending Obsidian’s session on the graphics development for Avowed, it became evident that shader stutters are likely to persist due to the production practices of many high-budget games. Obsidian initially began developing Avowed using Unreal Engine 4 before transitioning to Unreal Engine 5, ultimately releasing the game with version 5.3.2 in February. By that time, Unreal Engine 5.5 was already available, raising the question of why Obsidian opted not to utilize the latest version for enhanced performance.
- One factor could be team size: 140 individuals contributed to Avowed, with only 15 in technical roles and just four focused on graphics programming.
- While a co-developer may have had the opportunity to enhance shader compilation processes, the introduction of PSO precaching in Unreal Engine 5.2 likely limited their ability to fully leverage this feature.
Obsidian also set the Xbox Series S as the benchmark hardware, aiming for a frame rate of 30 to 40 fps on that console, while targeting 60 fps on the Series X and PCs. The disparities in resolution and rendering techniques underscored the challenges of achieving the desired graphical fidelity on the Series S, which likely consumed significant development time.
In summary, Obsidian’s journey with Avowed illustrates the complexities faced by developers: starting with an older version of Unreal Engine, targeting a less powerful console, and operating with a limited programming team. The final product’s impressive visuals are a testament to their dedication, even if it meant sacrificing some performance on PC.
This scenario is likely reflective of many other Unreal Engine 5 projects. While not every case will involve a small team, the trend of initiating projects with outdated versions of the engine remains prevalent. The latest iteration, Unreal Engine 5.6, boasts numerous performance enhancements, yet if a game is built on an earlier version, those benefits remain untapped.
Moreover, the improvements in Unreal Engine 5.6 are not merely plug-and-play solutions. For instance, while PSO precaching is enabled by default, it still necessitates a strategic approach from programmers to effectively manage shader compilation and ensure everything functions as intended. A blueprint for PSO precaching will be available in Unreal Engine 5.6, but the onus remains on developers to implement it effectively.
The turnout for Epic’s sessions on performance enhancements at Unreal Fest was substantial, with some sessions, particularly on shader compilation, reaching full capacity. This indicates a growing awareness among developers regarding the gaming community’s perceptions of Unreal Engine. It is hoped that the upcoming AAA and AA titles will fully capitalize on the latest version of Unreal Engine, paving the way for a future where issues like shader compilation and traversal hitches become relics of the past.
Until that day arrives, the expectation is that game developers utilizing Unreal Engine will embrace Epic’s insights and that publishers will allow programmers the necessary time and resources to explore the available tools thoroughly. Optimization is not a simple task; it demands considerable time and effort, often more than what is realistically allocated. This reality remains unchanged, much like the industry itself.