VR is a new format from both a game design and a camera design perspective. We took our “first steps” with VR when we worked with Oculus to develop Herobound: First Steps for Gear VR. That game and its sequel, Herobound: Spirit Champion, used a stationary camera overlooking a single room. The viewer’s experience was similar to looking into a shoebox diorama. We found this made for a very comfortable VR experience.

In Herobound, players travel room to room, solving puzzles, and engaging in combat before moving on to the next room. Players often leave a room in one of the cardinal directions and enter the next room from the logical corresponding direction. Between room transitions the screen fades to black and then transitions to the next room. It’s pretty straightforward and made a lot of sense when playing the game.

As we made the rooms more elaborate and forced the player to look around more within a given space, we found that the hero could leave the room on one side and then wouldn’t be in view of the player when they entered the next room. If the hero was not on screen, a little icon would pop up with an arrow pointing the player back to their hero. This worked pretty well.

Envisioning Chronos

With Chronos, we wanted to create a more seamless world that wasn’t limited to single room moments.

Our design goals included:

Combat that can start in one room and spill into the next.

Gameplay spaces where the player could look around and see where they previously were or where they were going.

Puzzles and interactives where the player could switch into first person and examine in detail.

An experience that was comfortable for all players.

The Camera

We based our camera system on the assumption that the player would be looking at their character most of the time. With that in mind, we created a system made up of static cameras that the player controls with their head by looking around. It feels natural and when people play the game, they pick it up very quickly. Obviously, having a single stationary camera wouldn’t make for a very big game, so we set up a system that allows for transition volumes that switch the current camera to another camera based on the player’s location. This happens instantaneously with no lag or loading that could cause players to feel uncomfortable or disorientated.

To ensure a smooth transition between cameras, we made it so the player’s character is positioned in the same screen space location they were in the previous camera. So, even though everything else changed in the player’s view when the camera switched, the character was their anchor point. This is where the assumption that the player is looking at their character came into play. To assure that the camera transitions made logical sense, as opposed to occurring arbitrarily, there had to be a threshold that framed the transition players passed through. The easiest example of this is a doorway, since it makes for a natural camera switch point.

From a setup perspective, here’s how it works: With the character in Room 1, when they exit to room 2 which from camera 1’s perspective is to the left, the player’s head will be turned to the left to some degree. This means camera 2 in the next room will need to be on the opposite wall rotated 180 degrees to compensate for their head turned to the left. This is what allows us to keep the character in view and avoid losing them.

These are the two game camera views from the previous room example. Here, the player is leaving room 1 and entering room 2. In the process of this transition, he steps through camera volume 3, triggering camera 2 as the active camera.

Not all camera transitions need to be 180 degree switches. In the example below the camera is only rotated 90 degrees instead of 180 degrees like the previous example. In cases where the player only needs to rotate their head slightly to the left or right, these 90 degree transitions work great and end up being very readable as well.

Camera Height Transitions

The real challenge begins when introducing elements like height transitions. Below is an example of this. If the character enters a room at eye level from the previous room and needs to go down stairs, they’ll leave that room with the player looking downward. That means in the next room, the player needs to have a camera that lets them look down when the character enters the room. There needs to be a way to allow the player to return to a relatively neutral head position. If the player is required to follow their character while looking down or up for too long, it can be physically uncomfortable. The goal is to build the camera locations around a relaxed, centered viewed and have them move their head from there.

This is an example of a height transition. In camera 2 it’s a little hard to see, but there are actually stairs the character can ascend that allows the player to return their head to a more neutral position. In this example, the height transition down occurs on a spiral stair case where the entrance and exit of the room are in a similar location relative to the overall screen space. This lets the character remain somewhat centered when transitioning rooms.

Ladders

Ladder transitions are another way we allow the player character to translate large vertical distances. In many cases we push the ladder away from the player’s point of view(camera) so that there isn’t the need for a lot of vertical neck rotation. In addition to this, we take control on the ladder away from the player so we know where the character is when we transition the camera. If we didn’t do this, there’s a chance the character could be occluded between floors and leave the player confused as to their character’s location.

In closing, this camera system has proven to be robust and provides a comfortable VR experience for just about anyone who tries it. It also maintains its comfort level for long play sessions. This camera system could be translated to a number of different genres as well. Lastly, some may think third person Point of View takes away from the VR experience. But, to the contrary, it still provides a unique experience because the player is an active participant in the world and still feels a great sense of presence in it.

Gunfire Games

Gunfire Games is an independent game developer based in Austin, Texas. With core team members including the remnant of Vigil Games, best known for creating and shipping the DARKSIDERS franchise, and the developers behind Chronos, the Oculus Rift Adventure RPG. We started the studio because we love what we do: Crafting worlds; building games; it’s our DNA.