Find out how we brought The Climb to Oculus Quest in our development roundtable.
Our award-winning VR rock climbing game, The Climb, launched on Oculus Quest in December of last year. The game invites players to experience the adrenaline rush of extreme free solo rock climbing as they ascend to epic heights, explore caves, and find shortcuts. Its arrival on the wireless Oculus Quest adds a new dimension to the gameplay experience, and the game is an amazing example of what CRYENGINE can achieve on a mobile chipset. We sat down with Hussein Dari, Lead Level Designer, Sebastien Laurent, Technical Director, Theodor Mader, Lead Rendering Engineer, and Fatih Özbayram, Lead Producer to find out about the development and design process.
Hey guys, thanks for joining us. How pleased are you with how The Climb plays on Oculus Quest?
Fatih: Our goal was to compromise as little as possible to ensure the same immersive and awe-inspiring experience on Quest, and I think it is fair to say this was achieved!
Theo: I really love how natural the climbing feels and how scary the heights are. And of course the impressive vistas! The Oculus Quest version is a step forward for this experience, with more freedom of movement and none of the restrictions of cables.
Hussein: Our aim was not just to port The Climb to the Quest, but also to deliver an experience as faithful as possible to the original game. The Climb runs great and still looks very good on the new device, and that’s without changing any of the gameplay or level layouts.
Sebastien: I think it's really humbling to see what our team has achieved here. The game is visually stunning and plays beautifully. The reviews we get from the players show how impressive an achievement this is. Regarding the gameplay, one of the main differences when comparing the Quest version to the Rift and Touch combination is that the controllers can easily end up outside of the Quest's sensor range. Due to the nature of our gameplay, this situation happens often, so we had to handle that case as gracefully as possible, and I think the result is very satisfying.
How does going wireless change the experience?
Fatih: One of the most significant changes that the Quest introduces is that players can stand up and move freely as there are no cables to manage. While we had to optimize the game to fit into memory constraints and to meet the target fps to create a smooth experience, the rock climbing experience feels as immersive on Quest as it does on Rift.
Hussein: It makes climbing more fun as you aren’t limited by the distance of the cable to your PC. You can climb wherever you are. We had a lot of cases in the studio where somebody just carried their device over and showed you something cool that they discovered. Moving to the Oculus Quest also gave us some really positive things. For instance, we don’t need to “rotate” the player body while you are climbing as much as in the original game, and, as in the original, climbing with Motion Controllers is way more fun and realistic.
What were the challenges of bringing The Climb to less powerful hardware, but still ensuring an awesome experience?
Sebastien: There was a large amount of work to be done, and I want to thank our Systems team here, for they had to make sure the engine runs properly on ARM CPUs, make our first Linux-based client application (the OS on the Oculus Quest is based on Android), and they had to solve a bunch of new problems that are specific to mobile platforms such as thermal throttling and battery consumption. There was also a shared effort to make The Climb fit into the very tight memory constraints of the Oculus Quest. Even though our Systems and Rendering teams did a wonderful job making our systems more compact and eliminating overhead, we also needed to re-think our approach to building levels in The Climb to make them fit, as our initial approach was more focused on reducing loading times. The other aspect that I would like to mention is much less visible to the outside world, but still an important one. Our whole pipeline had to factor in the new platform so we needed to streamline our workflows such that our programmers and content creators were as efficient as possible. That included features from project generation to build packaging, including, of course, deployment to the device.
Theo: Porting a PC game to a portable, battery-powered device like the Oculus Quest is a challenge. Not only are key characteristics like memory bandwidth and numerical computation speed significantly different to PC, but also new constraints come into play. For instance, the battery drain needs constant supervision, and without external cooling, the devices can heat up quickly if pushed too hard. The GPU architecture is also significantly different from mainstream PC GPUs, requiring customized solutions to get the best performance. It was a learning process for us, but in the end, it helped us to optimize both CRYENGINE and the CRYENGINE renderer to a whole new level.
Hussein: Many people didn’t notice that in the original version of The Climb, all the levels were part of one big level. We chose this approach because, at the very beginning of the project, we had technical difficulties in rendering loading screens. Later during production, we were able to get loading screens in, but by then, it was too late to separate the levels. We used the loading screens to make the level transitions smoother and hide render artifacts.In one of our early tests, we noticed that the original big map wouldn’t run on the Oculus Quest. So we decided to separate one of the levels out and see if the Quest could run it. After the test was successful, we knew that we had to split all 15 levels into single levels. As we used one big level before, all the level and code logic that was designed and optimized needed to be rewritten to handle cases where information has to carry from one level to another.
How pleased are you with the performance of CRYENGINE on this chipset?
Sebastien: The Climb definitely proved that even though CRYENGINE has always been renowned for pushing the boundaries on high end machines, it can scale down to more modest hardware and shine. Now that we've paved the way, we're excited to bring all of these learnings and improvements to our community and licensees in the future and see what they come up with. This work will definitely open up a lot of new doors and opportunities for people working with CRYENGINE.
Theo: We have learnt a lot about this specific chipset during the development of The Climb Quest port, and this directly reflects in the performance of CRYENGINE on the Quest device. There are, of course, always further improvements to be made, but I believe we have nailed the most important ones while porting this game. We are quite pleased with the outcome.Mobile, in general, is a very hot topic for CRYENGINE at the moment and while I can't give any details right now, I can tell you that we have some very cool things to look forward to.
How did CRYENGINE help you achieve your vision?
Theo: We decided from the start to build the rendering pipeline based on the Vulkan Graphics API. Vulkan gives developers much finer control over the device than OpenGL, enabling us to squeeze every last bit of performance from the hardware. Another advantage of CRYENGINE is the strong implementation of physically based shading. It lets artists recreate almost any surface from the real world, and the faithful light-material interactions greatly help the immersion of the players in the game.
Hussein: The new version of the engine has lots of new features and optimizations, which made it easier to reach our goal. One of the cool new features is better Python support. It was very easy for us level designers to create small scripts which helped us to automate lots of processes. As mentioned, we now had 15 separate levels, and some changes had to be merged to each, sometimes with small alterations. This was solved very quickly with scripts.
Sebastien: CRYENGINE is, at its core, a cross-platform engine, and as such most systems are extendable. This was a huge help when developing a game for a new device and platform.
What do you think was the biggest achievement for the team?
Sebastien: This project involved a lot of new challenges for us. We had a new hardware platform, new operating system, new CPU architecture, new GPU architecture, new input devices, new tools, well, you get the picture. We also pushed the Vulkan mobile pipeline both for our engine and for the platform, which led to some improvements on their tools and drivers. All in all, I think that the biggest achievement was managing to release such a high quality product when facing so many unknowns.
Theo: When we started working on the project, we were not sure how much of the visual fidelity, we would be able to preserve on the Oculus Quest device. The screen resolution and the high frame rate were difficult targets to hit, and it required a lot of brainstorming and out-of-the-box thinking to come up with solutions. But in the end, we managed to bring the core visual experience and the core gameplay experience to the device.
Hussein: At Crytek, we’re known for shipping games that look amazing. We could have made our lives way easier by just reducing the quality of the game and porting it over. But our biggest achievement was to ensure the game still looks amazing and plays amazing, all while reaching the target fps.
As ever, we look forward to your feedback in the comments, on the forum, or via Facebook and Twitter. You can ask questions, pick up tips and tricks, and more by joining our community and the CRYENGINE development team over on our official CRYENGINE Discord channel. If you find a bug in the engine, please report it directly on GitHub, which helps us to process the issue quickly and efficiently.
Are you looking for your next career move? At Crytek, we value diversity, and we actively encourage people from all kinds of backgrounds and experience levels to apply to our open positions, so join us over at LinkedIn and check out our careers page.
You must consent to data storage for Basic website functionality to use this feature