Developer Perspective: RÉPUBLIQUE VR
Oculus Developer Blog
|
Posted by Paul Alexander
|
May 3, 2018
|
Share

We occasionally post insights from the Oculus Developer community so that VR’s early pioneers can share their practices and help push the industry forward. Today, we feature one of our newest Oculus Go launch titles, RÉPUBLIQUE VR.


Hey there! My name’s Paul and I’m a designer at Camouflaj. To commemorate the release of RÉPUBLIQUE VR, we have prepared this post about our journey in developing our very first VR game. As with our previous releases, RÉPUBLIQUE VR was a labor of love marred by a dangerous cocktail of ambitious scope and an optimistic schedule. After twenty months of hard work with our development partners at Darkwind Media, we have emerged with one of the most ambitious mobile VR games ever, now available for Oculus Go and Gear VR.

République began life as a crowdfunded, Unity-based episodic game released on iOS, Android, PC, Mac, and PlayStation 4. With each new episode and platform release, the team at Camouflaj not only learned valuable lessons about what made our game fun and unique, but we continued to iterate on its visuals, controls and gameplay loop. Nowhere is our dedication to iteration truer than with RÉPUBLIQUE VR— a complete package that includes all five episodes spanning 10-15 hours of stealth survival gameplay.

In this post, we would like to walk you through some of the biggest challenges we encountered during development...

OPTIMIZATION AND PERFORMANCE

After five episode releases and countless updates, République was already well optimized for existing platforms, especially when you take into account the fidelity we were pushing on mobile. However, bringing the game to mobile VR meant a painstaking refresh of our approach to optimization given the need to render two displays at once on a mobile device, meaning the game’s overall performance needed to be improved by a factor of four.

Our first step was undoing the work we previously did to cull and batch assets. Previously, we combined large swaths of assets into giant meshes to improve performance. For RÉPUBLIQUE VR, however, we walked this work back, relying instead on and all-new custom culling system to load assets in and out quickly.

Above is an example of a camera angle that saw huge gains from the new culling system.

An overhead view of everything that’s being rendered when players access that camera (which is highlighted in red). As you can see, many assets are being drawn in the scene that players have no way of seeing.

Here is the same camera after our culling tool has been applied. In the above image, you can see we eliminated a massive amount of content that wasn’t actually visible, reducing tris and verts by as much as 80 percent. This technique was only possible because of the predictability of our fixed camera system that actually introduced a whole new slew of problems—something we’ll explain in the “Camera Redesign” section of this post.

In order to present a comfortable VR experience for the player, we also revisited our scene loading system. Previously, République used a master scene loader, which in turn loaded smaller groups of art content in and out when players switched camera angles. We disguised this loading on-screen using a “snow” effect, similar to the one you might see when flipping channels on an old television. However, those brief loading hitches were extremely jarring for players in VR. As a result, we rebuilt every scene in the game to allow all loading to occur upon player entry—no scene loading required.

The rubber mats in the left-hand screenshot featured heavily aliasing, but were fixed thanks to a render scale increase

It’s not uncommon for in-game text or geometry to exhibit heavier aliasing in VR displays than on conventional screens, and RÉPUBLIQUE VR was no different. By optimising our game’s overall performance, however, we were then able to address this issue by improving our in-game render scale. Many of those optimizations were unlocked by a new feature introduced in Unity 5.6 called Single-Pass Rendering, which reduced the game’s CPU processing time and improved performance by as much as 20 percent in some areas.

CAMERA REDESIGN

In République, the player hacks into security cameras in order to help guide a woman named Hope to freedom as she escapes from a Nineteen Eighty-Four-inspired totalitarian state. For most developers, those fixed CCTV camera perspectives would be a great opportunity to cut corners on art by only focusing on areas of the environment that the player can actually see. Well…

An example of a missing piece of game art — an issue we fixed for the Gear VR and Oculus Go versions of Republique

In RÉPUBLIQUE VR, the player’s head acts as the camera, and they’re free to look in any direction they would like, which meant that suddenly much more of the game’s environments would become visible! Thankfully, the art team at Camouflaj originally built each environment which such an attention to detail that we rarely encountered corners that needed touch-up. In fact, for many of our team members who have played the full game dozens of times, replaying it in VR was a breath of fresh air now that so much of the world is more visible in VR.

However, the added emphasis on immersion and presence meant that player is more likely to move their head to view the world from various angles, which could result in neck strain. Thankfully Camouflaj designer Simon Messenger combed through all five episodes to ensure every single in-game cameras passed “the couch test”, meaning no camera positions forced the player to twist their neck in uncomfortable ways or otherwise require the use of a swivel chair.

CONVERTING 2D UI

One of the hard and fast rules for developing in VR is to redesign traditional 2D game menus by bringing them into the game world itself. By leaning into in-world UI elements, it’s not only less disorienting for the player, but more immersive. Instead of just positioning the game’s pre-existing UI on a flat 2D plane and calling it a day, we chose to radically rethink the entirety of our game’s UI.

One of RÉPUBLIQUE VR’s many “banned book” collectibles. We converted hundreds of 2D images into 3D assets for VR.

The story of how we ended up with RÉPUBLIQUE VR’s in-game UI serves as something of a microcosm of the game’s journey to multiple platforms over the past few years. When development on the original game began, one of our core pillars was “Become Big Brother” which was all about ensuring that the player was the eye in the sky who watched over and protected Hope. To this end, we purposely avoided designing a complex HUD, and kept on-screen UI elements to a minimum. We didn’t want anything detracting from the immersiveness of the experience—République wasn’t a video game, it was really happening on your device.

As core development of the first episode of République drew to a close and playtesting sessions became more frequent, we quickly noticed that our spartan, unconventional-approach to UI was resulting in poor usability marks from playtesters. In the end, we compromised on our principles by implementing more traditional UI elements in service of a smoother player experience.

RÉPUBLIQUE VR’s phone UI displays everything from in-game collectibles to Hope’s video call cinematics

A solid user interface proved to be even more of a must when we prepared République for a console release a few years later. However, we never got around to building a suite of robust UI system tools, resulting in dozens of one-off UI systems scattered across the game’s five episodes.

By the time we began development on RÉPUBLIQUE VR, we relished the opportunity to reimagine its UI from scratch. Darkwind developer Rob Cigna led the charge on a radical redesign—no more conventional menu screens—but rather every UI element would be present in a virtual cell phone similar to Watch_Dogs or GTA IV. This virtual phone is now home to the player’s inventory, menu/settings, and so forth.

Our new in-world phone also came in handy for our cinematics which are viewed from the perspective of Hope’s cell phone. The game’s herky-jerky first-person cinematics were not going to fly in VR, so for the sake of player comfort, RÉPUBLIQUE VR transitions seamlessly to the in-world phone’s perspective, resulting in a surprisingly immersive experience.

The game’s UI was always a sore spot for us and is something we never felt we got right. It turns out that we just needed the right platform—VR—to force us to get it right.

REFORMATTING LIGHTING FOR AMOLED SCREENS

Another issue that has plagued many VR developers is the “black smear” problem that affects certain LED screens. (Thankfully this is less likely to happen with Oculus Go’s LCD screen.) These black smears aren’t as noticeable when, say, the player stars at their phone screen from a normal distance, but becomes instantly apparent when the screen is few centimeters away from their face.

Because we cannot eliminate this hardware issue, the best we could do is make the black smear more tolerable for our players by bumping up the ambient color in darker areas of the game to illuminate it more fully. This required a careful evaluation of each scene in the game, as RÉPUBLIQUE VR contains some very dynamic environments.

SUPPORTING MULTIPLE INPUTS

As with its UI, République’s various control schemes is part of a larger narrative concerning the game’s wayward development path. When République was originally released as an iOS title, Hope was an AI-controlled character—players tapped the screen to tell her where to move. When the game reached PC and Mac, we iterated on this formula with a mouse and keyboard setup similar to how the player controls a single unit in real-time strategy games.

For the game’s PS4 release, we prototyped and implemented an all-new scheme that allows the player to control Hope directly with a gamepad. While initial playtests were promising, this change flew in the face of the République’s fictional conceit — the player was supposed to be working with Hope, not controlling her—but it ultimately proved to be a satisfying experience that only seemed to irk the vision purists on the team.


(top) Our gaze-based, point & click navigation system and (bottom) our gamepad system, which allows players to directly control Hope

When we began work to bring the game to Oculus Go and Gear VR, we found ourselves needed to make a tough decision: should we lean on the point-and-click PC controls or give the player full control of Hope via a gamepad? In classic Camouflaj fashion, we opted to avoid making that tough decision by choosing to do the hard work of supporting all control schemes:

    • Touchpad: Gear VR players simply need to tap the side of their device to command Hope to move and interact.
    • Motion Controller: Both Oculus Go and Gear VR players can simply point and click where they want Hope to go and interact with things.
    • Gamepad: Players who own a Oculus Go or Gear VR compatible gamepad (like the SteelSeries Stratus XL) can control Hope directly just as you would on PS4.

Supporting the point-and-click control scheme required an extensive rework as we adapted it to support a raycast vision check that detects where the player’s cursor is located in the world. (Our previous system relied on screen detection, which of course does not work in VR.) If I may, I think the fact that the team fought hard to support three unique control schemes speaks volumes about our dedication to making the best game possible.

Closing Thoughts

RÉPUBLIQUE VR serves as a cautionary tale for the folks at Camouflaj and Darkwind about how both scope and an unrealistic development schedule can cause big problems for production, especially when navigating the relative unknown landscape of VR game design. Given the vast amount of completely redesigned content, the high art quality bar we set, the aggressive optimizations required, and our reluctance to cut any content, the game took triple the amount of time developing than we initially expected. Without a clear goal post, the team suffered from fatigue, tunnel vision, and other issues we discuss in the most recent episode of our podcast, Camouflaj Radio, in case you’re interested.

Thankfully, that all changed when the folks at Oculus approached us about the Oculus Go’s impending release and suggested RÉPUBLIQUE VR as a launch title—this gave the team an unmovable deadline that we had to hit. Had Oculus Go been pushed to a summer release, I’m certain the team would still be tinkering away on the game right now.

Despite the many hardships, the teams at Camouflaj and Darkwind Media couldn’t be more proud of RÉPUBLIQUE VR—an incredibly beautiful, robust, fully-featured game that offers a rare “long form” campaign experience for Oculus Go and Gear VR. Now that work is complete on that game, the team is already heads-down on our next VR title, equipped with the aforementioned learning lessons. Stay tuned...