Earlier this year, we had the pleasure of assisting in porting Medal of Honor: Above and Beyond for the Quest 2. Though technically it doesn’t quite fall under the description of porting, we were one of several studios working around the clock to get the newest Medal of Honor ready for the Oculus Quest 2.
One of our peers, Virtuos reached out to us to help with taking Above and Beyond to the Quest 2 without a ‘link’. Meaning it had to be able to run without linking the VR headset to a PC, as the Quest 2 has its own internal hardware unlike earlier VR headsets. We were one of about eight studios who undertook this huge project. With the game split into portions, the Ringtail team went to work.
Establish a Baseline
We were given six levels of Medal of Honor to bring up to the requirements of the Quest 2. One of these was the one of the biggest levels in the game, arguably the size of three standard levels put together. With this on our plate, establishing the current performance of the levels was first on the menu.
There are several things you need to look out for while optimising. In this case, we needed to have the levels operating at around 72 frames per second or FPS. This is because you need quite a high FPS for a proper VR experience. A jittery or unstable VR experience can cause some serious nausea in players!
So, we used our tools to gather the performance data. While all the levels were within the acceptable polycounts, some of the performance metrics were not being met on the Quest 2. We looked at things like draw calls, GPU load, and the current FPS. The goal is naturally to lower the loads and the calls and increase the overall FPS and performance.
Full Auto Optimisation
While going about optimisation, it was trickier than a usual project. Many of the assets are shared across several levels, meaning other studios needed the same assets. Working with Virtuos, we maintained a constant communication. This was to ensure that our own work was in line with their guide and also that there were no crossed wires with the optimisation of assets.
To conduct the optimisation, we’d use Unreal which the game was based on. There we’d merge what assets we could, conduct auto-optimisation of textures and assets, and run test builds on the Quest 2 to keep QA involved from an early stage.
Auto-optimisation is a great tool to quickly determine what work was required for each asset. Whether it needed to be trimmed or reduced, merged, or reworked. From this step, once all auto-optimisation is complete, we can go about polishing.