Dino Frontier has something similar. Players have full control over the tabletop. They can freely translate, rotate, and scale the playing surface.
This might sound like a recipe for nausea and motion sickness. With a naive implementation you’d be right! But using a few clever tricks it’s incredibly comfortable.
Now let’s tie them all together to quickly move around the map.
Dino Frontier requires two motion controllers. For PSVR this means two Move controllers. They have a trigger, big oblong face button, and four little buttons.
We only use the trigger and the face button. Two buttons per controller. The little buttons are too confusing. Especially when wearing a VR headset which prevents players from looking down at their controllers.
The trigger is used for context sensitive world interactions. Pinch, grab, open, use, etc.
The face buttons are used for table manipulation. Press and hold the face button on one controller to pan. Hold both face buttons to zoom or rotate. It works just like a touch screen; pinch to zoom.
A great VR experience makes players feel like they’re in another world. A bad experience gives them a headache, nausea, and the spins. Designing for comfort is of the utmost importance.
There are multiple ways VR can cause discomfort. Some well understood and some we’re still figuring out. The basic cause is a mismatch between what your body feels and your eyes see.
In Dino Frontier player sit on their couch and look down at a tabletop. Using the controllers they can move, spin, and scale that table.
Doing this in an empty, ethereal space is discomforting. There’s no frame of reference. Is the table moving left or did I move right? You can’t tell, but your inner ear lets you know it’s not happy!
Our solution is to give the player a frame reference to ground themselves in. We use a background environment which is fixed in “real world” space so to speak. The player can move the table around all they want but those rocks stay in place.
When moving the table we turn on a subtle, fixed grid. This is especially important if the player is zoomed in and unable to see the background rocks.
Careful observers may note how the grid is positioned at table height, renders on top of everything, and fades out in the center of view. It provides peripheral stability.
Finally, we run at 90 frames per second. Running at 90 instead of 60 makes a huge difference in comfort. The bigger camera movements a game has the more important 90 is. This is far easier said than done!
One of the things that makes our controls feel crisp is our use of anchor points. When pressing the face buttons to move the table the hands establish an anchor point on the table.
As the player scales or rotates the hand stays attached to that anchor point. Pay close attention to the relative position of the trees in the follow image.
We apply momentum to table motion on release. This also helps the player navigate across the map quickly.
You may have noticed that all table motion happens on the ground plane. We keep the table at a fixed relative height. There’s a separate control for raising or lowering the table to a comfortable height.
VR is a bold new frontier. Rules and best practices have not been established. Even more so in the simulation, tabletop-scale space.
Dino Frontier is a hands based game. The player has two motion controllers and two in-game hands. VR hands provide a visceral, intuitive experience.
World interactions are context sensitive and all use a single button; the trigger. Remember this is a two button game and one button is dedicated to the table controls!
We tried to have as little UI as possible. Interactions are far more literal than typical button filled video games.
Settlers aren’t selected with a cursor. They’re pinched with a hand.
Jobs are assigned by physically dropping settlers on a role site.
Promoting a settler to sheriff isn’t done by clicking a promote button. You physically assign a sheriff badge.
Watering trees is done by watering them with a watering can.
One of the more effective VR tools is the palette. Tilt Brush is the perfect example.
The player holds a palette with their left hand and uses the right to select elements.
We have something kinda similar. Our problem is that our two buttons are already in use. We don’t have any free buttons to control the palette!
Our solution is put game buttons in “real world” space. These buttons are off to the side but always available. The player can be zoomed in or zoomed out and they’ll be in a known position and fixed size. Grabbing a button grabs a palette.
One of these palettes is the Build Palette. It holds buildings the player can place in the world. Hovering over a building produces a popup with details.
To build a Saloon you grab the Build Palette, pinch the Saloon, drop it in place, and thwack it with a hammer.
I hate words. Especially in video games. Sadly, you can’t always get around having a few.
When we do need words they appear on world space popups.
Sometimes those popups have buttons.
Normal sim games have an omnipresent toolbar which shows resource counts. That doesn’t work in VR.
Our solution is an always available wrist watch. It displays experience, resources, and objectives.
Here are a few random features worth a mention.
As previously mentioned I hate words. We heavily rely on animated gesture hints to teach the player mechanics.
In 20 seconds the player is taught how to pan the camera, zoom the camera, pickup a settler, and assign the settler to a task. All without using a single word. These gesture hints appear throughout the game when the player encounters a new mechanic.
Settlers are semi-autonomous actors that have jobs and needs. Jobs are visually represented by their costume. Lumberjack, hunter, sheriff, etc.