{"id":493,"date":"2015-10-27T10:07:26","date_gmt":"2015-10-27T17:07:26","guid":{"rendered":"https:\/\/invader.trystorymachine.com\/?p=493"},"modified":"2015-10-27T10:07:47","modified_gmt":"2015-10-27T17:07:47","slug":"comfortable-first-person-movement-for-vr-in-dead-secret","status":"publish","type":"post","link":"https:\/\/invader.trystorymachine.com\/?p=493","title":{"rendered":"Comfortable VR Movement in Dead Secret"},"content":{"rendered":"<p>One of the big unsolved problems in virtual reality game design is movement. \u00a0Standing still feels great, but things go south when you start to move. \u00a0Many developers have experimented with standard first-person shooter movement systems in\u00a0virtual reality games, and the result is always nauseating. Even worse, some seem unwilling to admit that their standard FPS controls\u00a0feel terrible in VR. &#8220;It feels fine to me,&#8221; is the refrain\u00a0of a person who doesn&#8217;t understand simulation sickness, hasn&#8217;t done any testing, and isn&#8217;t taking virtual reality seriously. \u00a0When such dismissals\u00a0are\u00a0code for &#8220;it&#8217;s too much work to change my game design to accommodate comfort,&#8221; it might be an indication that the game isn&#8217;t a fit for VR at all.<\/p>\n<p><em><a href=\"http:\/\/deadsecret.com\">Dead Secret<\/a><\/em> is a first-person game with first-person movement, and we worked really hard to ensure that movement is comfortable. \u00a0We&#8217;ve tested our solution on a wide audience&#8211;a large number of people, as diverse as we could manage&#8211;and have exceptionally positive results. \u00a0<em>Dead Secret<\/em>&#8216;s movement system isn&#8217;t perfect, and it&#8217;s not a general solution for all first-person movement in games, but it works very well for our purposes.<\/p>\n<p><a href=\"https:\/\/invader.trystorymachine.com\/wp-content\/uploads\/2015\/10\/type_dead_small.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-497\" src=\"https:\/\/invader.trystorymachine.com\/wp-content\/uploads\/2015\/10\/type_dead_small-1024x576.png\" alt=\"type_dead_small\" width=\"640\" height=\"360\" srcset=\"https:\/\/invader.trystorymachine.com\/wp-content\/uploads\/2015\/10\/type_dead_small-1024x576.png 1024w, https:\/\/invader.trystorymachine.com\/wp-content\/uploads\/2015\/10\/type_dead_small-300x169.png 300w, https:\/\/invader.trystorymachine.com\/wp-content\/uploads\/2015\/10\/type_dead_small.png 1200w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Before we get into the details of\u00a0<em>Dead Secret<\/em>&#8216;s locomotion system, it is worth reviewing the physiology behind motion and simulation sickness. \u00a0There are a ton of triggers for motion sickness, but the common one for VR is called\u00a0<em>vection<\/em>, and it occurs when your brain encounters a disparity between the information reported by your vestibular system (that&#8217;s the part of your inner ear that keeps you balanced) and the information coming from your eyes. \u00a0When your inner ears and your eyes disagree it can feel like the world is moving while\u00a0you are not. \u00a0Vection probably evolved as an anti-poison response; apparently there are a lot of toxins that will disrupt your vestibular system, and so your brain&#8217;s first move\u00a0is to make you vomit. \u00a0This is why you can get\u00a0sick by reading in a car: your\u00a0ears report\u00a0the motion of the vehicle but your eyes, which are focused on the page, do not corroborate it.<\/p>\n<p>Of course, there&#8217;s more to it than that. \u00a0Your body is incredibly complicated and individual responses vary quite a bit. \u00a0There&#8217;s a ton more to learn about how virtual reality can confuse your brain precisely because it is so convincing. \u00a0For a lot more detail, I recommend <a href=\"https:\/\/www.youtube.com\/watch?v=6DgfiDEqfaY\">this fantastic talk by Oculus&#8217; Richard Yao.<\/a><\/p>\n<p>That said, understanding the basics of vection can help us define some base principles for VR movement. \u00a0Vection occurs when your ears and your eyes disagree. \u00a0In VR, any \u00a0movement that you do not make yourself is a potential source of\u00a0vection. \u00a0But there&#8217;s some hope: as Yao points out, your vestibular system can only detect\u00a0<em>acceleration<\/em>, not linear velocity. \u00a0When you move at a fixed speed your inner ears do not detect any change. \u00a0Therefore we should be able to avoid vection if we simply\u00a0<em>remove all acceleration from movement.<\/em><\/p>\n<p>If that seems like a tall order, I have some bad news for you. \u00a0Just about every interesting camera movement you might perform in a traditional first-person game causes acceleration. \u00a0One of the main reasons that naively-implemented FPS control schemes feel so bad in VR is that they usually continue to rely on mechanics\u00a0like right stick body rotation. \u00a0Rotation in place requires angular acceleration, which your ears can totally feel, and when you do it to the player in VR it feels totally bad. \u00a0FPS run bouncing, originally invented to simulate shifting of weight from foot to foot as your avatar runs, feels particularly bad because it&#8217;s a parabolic motion&#8211;that&#8217;s 100%\u00a0acceleration, people. \u00a0Don&#8217;t even get me started on canned camera animation; the fastest way to suck somebody out of a VR experience is to take away their head tracking.<\/p>\n<p>Now, if I were to suggest that a traditional game remove all acceleration from its camera, I&#8217;d be laughed out of the room. \u00a0Camera animation is a big part of the experience in a\u00a0traditional first-person game. \u00a0But we&#8217;re not making a traditional game, we&#8217;re making a VR game, and the rules are different. \u00a0Rather than blindly applying grammar from a different medium we have to come up with theories and test them, which\u00a0is what we spent the better part of a year doing. \u00a0The results have very little to do with what works in traditional games, but a lot to do with what works in our VR game.<\/p>\n<p>Here are the rules for\u00a0<em>Dead Secret&#8217;s<\/em> camera system:<\/p>\n<ul>\n<li>No acceleration, ever. \u00a0Linear movement only.<\/li>\n<li>No rotating the camera (other than rotation coming from the HMD).<\/li>\n<li>You can only move in straight lines. Prefer not to change direction while moving.<\/li>\n<li>Motion should be short. \u00a0Rule of thumb is to keep all motion to bursts of 5 seconds or less.<\/li>\n<li>Never ever take away head tracking or lock something to the view.<\/li>\n<li>Maintain frame rate at all times.<\/li>\n<\/ul>\n<div id=\"attachment_501\" style=\"width: 726px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-501\" class=\"wp-image-501 size-full\" src=\"https:\/\/invader.trystorymachine.com\/wp-content\/uploads\/2015\/10\/enterstudy.gif\" alt=\"enterstudy\" width=\"716\" height=\"402\" \/><p id=\"caption-attachment-501\" class=\"wp-caption-text\">Zero acceleration or artificial rotation.<\/p><\/div>\n<p>That last one is pretty important. \u00a0In our tests we were able to remove almost all vection from testers by removing acceleration and rotation, but folks still felt bad if the frame rate started to drop. \u00a0Latency on the HMD is another vector for sickness, and it&#8217;s one that can bite you regardless of how careful you are with your movement system. \u00a0We worked hard to keep the frame rate high throughout\u00a0<em>Dead Secret<\/em>.<br \/>\nTo make our game\u00a0actually playable within those rules the movement scheme had to change quite a bit. \u00a0You investigate the scene of a perfect murder in\u00a0<em>Dead Secret<\/em> by moving between fixed positions in the room. \u00a0That had been part of the design since Day 1. \u00a0But to accommodate the requirements of VR the layout and design of our rooms changed dramatically. \u00a0I wrote a bit before about <a href=\"https:\/\/invader.trystorymachine.com\/?p=469\">the use of space in Dead Secret&#8217;s level design<\/a>, if you&#8217;re interested.<\/p>\n<p>There are a number of odd side-effects to this design. \u00a0For example, the player can turn 180 degrees and\u00a0walk to their destination backwards. \u00a0The system relies upon the player rotating\u00a0his whole body to look around the room, but we can&#8217;t expect every player to be sitting in a swivel chair. \u00a0We added controller-based rotation to accommodate this, and implemented rotation as a 40-degree click with a &#8220;blink&#8221; transition. \u00a0This doesn&#8217;t trigger vection because your brain never sees any angular movement\u00a0(via &#8220;change blindness,&#8221; which Yao covers in his talk). \u00a0And we found that while no testers reported feeling nauseous\u00a0or sick, about 1% felt disoriented by having to actually turn their body to see things behind them. \u00a0For these folks we added a &#8220;comfort mode&#8221; which omits all motion completely.<\/p>\n<div id=\"attachment_494\" style=\"width: 1030px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/invader.trystorymachine.com\/wp-content\/uploads\/2015\/10\/testers.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-494\" class=\"wp-image-494 size-full\" src=\"https:\/\/invader.trystorymachine.com\/wp-content\/uploads\/2015\/10\/testers.png\" alt=\"\" width=\"1020\" height=\"405\" srcset=\"https:\/\/invader.trystorymachine.com\/wp-content\/uploads\/2015\/10\/testers.png 1020w, https:\/\/invader.trystorymachine.com\/wp-content\/uploads\/2015\/10\/testers-300x119.png 300w\" sizes=\"auto, (max-width: 1020px) 100vw, 1020px\" \/><\/a><p id=\"caption-attachment-494\" class=\"wp-caption-text\">Zero reports of nausea. Not even Sharapova.<\/p><\/div>\n<p>The last thing we did to ensure our camera system was comfortable was to test the heck out of it. \u00a0I&#8217;ve read that about 10% of the population is susceptible to motion sickness. \u00a0In order to properly test a system you need a large enough testing group to identify folks who might be within that ten percent. \u00a0We put Gear VR devices on as many people as we could to help verify our design. \u00a0As we&#8217;ve iterated the design we&#8217;ve been able to push the number of people reporting discomfort to nearly zero.<\/p>\n<p>There&#8217;s a lot more experimentation to do in this area. \u00a0One idea, which we haven&#8217;t tried, is to black out the view at the start and end of a movement. \u00a0This is based on the theory that even if the camera is moving at linear speed, the brain can\u00a0infer acceleration just from visual input. \u00a0Another approach, which I&#8217;ve seen work well in other games, is to black out the peripheral view of the horizon (e.g. by placing the view in a cockpit). \u00a0The brain apparently uses motion in your peripheral vision to compute velocity, so denying it that information can lead to a more comfortable experience. \u00a0There are also folks experimenting with transitions between first-person and third-person camera angles for the purposes of movement.<\/p>\n<p>It&#8217;s almost impossible to guess how a system will feel in VR without implementing it. \u00a0<em>Dead Secret<\/em>&#8216;s movement system was designed by iteration&#8211;we tested and discarded many variants before we hit upon a\u00a0generally comfortable model. \u00a0And that&#8217;s one of the amazing things about working in VR today&#8211;there&#8217;s so much design space to explore. Tried-and-true tricks from traditional games\u00a0might not work in VR, but there are a ton of new tricks out there, just waiting to be found.<\/p>\n<p>We have a lot more to say about <em>Dead Secret\u00a0<\/em>in the very near future, so if you&#8217;re interested check us out on <a href=\"http:\/\/twitter.com\/robotinvader\">Twitter<\/a>, <a href=\"https:\/\/www.facebook.com\/Dead-Secret-1382342035409224\/\">Facebook<\/a>, or <a href=\"http:\/\/deadsecret.com\">sign up for the mailing list<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the big unsolved problems in virtual reality game design is movement. \u00a0Standing still feels great, but things go south when you start to move. \u00a0Many developers have experimented with standard first-person shooter movement systems in\u00a0virtual reality games, and &hellip; <a href=\"https:\/\/invader.trystorymachine.com\/?p=493\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,17],"tags":[],"class_list":["post-493","post","type-post","status-publish","format-standard","hentry","category-dead-secret","category-virtual-reality"],"_links":{"self":[{"href":"https:\/\/invader.trystorymachine.com\/index.php?rest_route=\/wp\/v2\/posts\/493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/invader.trystorymachine.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/invader.trystorymachine.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/invader.trystorymachine.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/invader.trystorymachine.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=493"}],"version-history":[{"count":10,"href":"https:\/\/invader.trystorymachine.com\/index.php?rest_route=\/wp\/v2\/posts\/493\/revisions"}],"predecessor-version":[{"id":506,"href":"https:\/\/invader.trystorymachine.com\/index.php?rest_route=\/wp\/v2\/posts\/493\/revisions\/506"}],"wp:attachment":[{"href":"https:\/\/invader.trystorymachine.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/invader.trystorymachine.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/invader.trystorymachine.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}