VR Dev Blog: What we have learned building a VR FPS Game

Original Link for document here.


VR Dev BLOG

What we have learned building a VR FPS Game

We have been building vr games for the past 6 months and bounced hundreds of ideas, concepts and solved many fundamental problems related to locomotion and interaction. I can tell you now, there is A LOT of misonceptions and myths around VR in general and a lot of room for innovation.

Misconception about 2017 VR devices and motion sickness

VR and “motion sickness” came almost synonymous after the first generation devices. The early prototypes of the hardware were low-fps laggy experiences with pixelated graphics and games/experiences, which were not designed for VR.

Early VR games were pretty much “hacks” built on top of already existing titles and there were absolutely no common ideas or standards established for designing VR experiences!

 

We have come a long way in 2 – 3 years. The HTC vive and new Oculus with Touch controllers has relatively clear visuals and innovative, optimized rendering techniques, which considerably reduces laggy-ness even with lower fps(recommended is 90 frames per second for vr games).

The “common knowledge” of VR making people sick actually stems from the first generation of Oculus rift!

My theory is that the people who used dk1 for the first time, got a really bad experience out of it(including myself) and actually never tried it again(mistake!). Since people are more inclined to  be vocal about their bad experiences rather than good, vr got this cautionary “cloud” attached to itself very early on.

2017 is the year, which will break this misconception. A lot more people will try and buy the new hardware and realise how comfortable and visually pleasing the vr products have become.

I want to makes this clear – there is a small minority of people(probably less than 20%), who really can not handle any type of movement in VR and that is fine, but most of the people are completely fine with free-roam locomotion methods(touchpad movement), which are now becoming standard for Virtual Reality games and apps.

Do NOT force users to physically interact with UI elements!

We are building a multiplayer fps game for the casual audience and UI is big part of the game, but not the core feature.

I have tried a lot of vr games, especially shooters and many of them force you to physically push buttons, move your body and head around space to look at different parts of ui elements. I think that is absolutely stupid.

I understand, it is something sexy and cool to being able to interact with everything, but it is cool only because it is new! Once the initial hype of vr wears off, you are left with a lot of frustrated users. Let me explain.

My theory about interaction in VR is quite simple – people want to interact in virtual space, but only with the fun stuff( like for examples weapons in fps games). People DO NOT want to physically move their hands, head or body to interact doing mundane, repetitive tasks like adjusting ui sliders or pushing ui buttons or even opening, closing doors. They dont want to do boring shit over and over again!!! There is use cases for such interactions IF your core game is built around room-scale and exploring the space, interacting to find clues. Horror genre and puzzle adventure games might fit into this category.

When UI is not part of your core game element, there is no reason to exhaust your players into doing such chores before, during or after the gameplay!

The possible solutions, which will become the standard interactions for future VR game UI systems:

Use a simple ray pointer to navigate the user interface. (currenly most used interaction method )

Use touchpad buttons to navigate the user interface.( works same as Xbox/PS controller nagivation in console games). We use this for our fps game. Does not require ANY physical movement, gets you into the game in a few clicks. Simple, easy to use and common knowledge even for a 4 year old.

Use controller X,Y coordinates to map the 3D cursor movement to the 2D plane of user interface(something we tried and worked at least as good as ray pointer). Will need further testing, but has potential to become the next VR mouse type of thing.

Future “killer app”, the one which actually brings VR mainstream, is going to be less interactive than you would expect!

This is a little controversary, since we have not yet seen a good example of that in a vr game.

Im suggesting that huge part of successful vr game is the amount of physical movement needed(or the lack-thereof).

I talked about not forcing users to interact with UI elements, but it goes further then that!

My hypothesis suggests that the future “killer app”, the one which actually brings VR mainstream, is going to be less interactive than you would expect! I am talking about physical-interaction-per-second(PIPS) need to be kept low.

The problem with almost all vr games today is that they force the player to stand, physically move around the room, rotate whole body, crouch to actually pick-up stuff and so on. This introduces a lot of problems for people:

  1. Physical Space – not everyone has a home with a clear space of several meters. You are cutting off a large audience when your core gameplay is centered around physically moving in a room. I would say everything that is possible, does not mean its neccessity!
  2. Game time is tied to a persons phsycial fitness and stamina – most people play games after work, school and have less energy after that. Also we cant expect average person to have the level of stamina, fitness, energy or even flexibility to phsycially interact within a game for several hours at a time. You are cutting off older people, fat people(which is 50% of america :D) and people with disablities forcing to move too much!
  3. Some people are just not motivated to move that much for a game!
  4. Too much interaction introduces hand-eye-coordination problems and level of focus reduction over short play-time/time span.
  5. It will become simply boring to move for repetitive tasks in game.

So, to make it seem less-like random whining or directionless rambling on social media, here is our solutions used in our FPS game.

We do not force the player to move in physical space.

We do not force the player to stand! Yes they can sit comfortably in an fps game, even lie half naked in their bed and play!

We do not force the player to physically crouch or move to pick-up stuff like weapons!

We do not force the player to physically reach and push the UI buttons!

How we do all that?

First of all for sitting players(they can even lie if wanted to), we actually adjust the vr height so everyone in a multiplayer game is on the same height! Which means the in-game avatar is always the same scale, unlike other games which make the in-game characters small for short guys and children, lol, it looks so dumb and immersion breaking to look at adult-like character which are scaled to a child-like height! Here is a big misconception – being different height in virtual space is actually not immersion breaking, you wont notice it at all( if the difference is small like 10-20 cm).

Now you might ask, if the player is sitting or lying, how the hell does one move and rotate in the game? We use controller direction and tochpad to move the player in all directions(YES all).Here is another myth – strafing in vr does not make you sick puking puppy, unless you use acceleration/deceleration for movement(which we dont!!!).

For rotating the character we use the right VR controller as a 3d mouse for horizontal movement – you would only need to move one hand left-right to rotate. It solves a huge issue for fps games – you can instantly rotate 180 degrees and make that kill and its totally fast and comfortable! I cant believe people still actually rotate their whole body in vr fps games, it is so tiring and slow!

Picking up stuff does not need to be phsycial unless its absolutely crucial part of your core gameplay experience.

We use simple raycast red dot pointer for all weapons, which can be used to point and pick up stuff from the ground, without fucking moving an inch from your comfortable sexy pose.

Using only hands without whole arm/body is immersion breaking?

Everyone seems to throw ideas about what is immersion breaking in vr. Everyone seems to have tried all the possible solutions and came to these realisations by long trial and error and deep statistical analysys. Everyone seems to be Mark Zuckebergs of VR. The problem is that most vr game developers are small time indies, who do not have the time,resources and sometimes common knowledge to figure out solutions. Most vocal people actually know the least, they just want to be heard and look smart. Now when i got my frustruation out there to feed my small ego, here is what we do in our FPS game:

So, we are using full body with arms and legs, which the user can see from their first person perspective. We are using a great IK system by RootMotion for moving the hands realistically. I will bust another common myth here – it is not immersion breaking, but immersion enhancing using full body with whole arms for in game avatars in First Person Perspective. You will actually feel like a soldier on the battlefield, rather than a ghost with floating arms(lol Onwards and realism)! I dont actually know where this concept started about using only hand models with “invisible” arms, but its absolutely wrong, myth like santa claus or big foot( I am sorry 5 year olds).

There is room for innovation!

You can sign-up for a closed alpha testing for our Multiplayer VR FPS game( testing will start in february 2017 ): https://docs.google.com/forms/d/e/1FAIpQLSdKJKU_1Qk3L-9w_2uXfl-w2qEfMg9QwCXbC5_fXiy_UZhD3g/viewform

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s