{"id":469,"date":"2015-07-11T17:57:10","date_gmt":"2015-07-12T00:57:10","guid":{"rendered":"https:\/\/robotinvader.com\/blog\/?p=469"},"modified":"2015-07-11T17:57:10","modified_gmt":"2015-07-12T00:57:10","slug":"dead-secret-diary-locomotion-and-space","status":"publish","type":"post","link":"https:\/\/robotinvader.com\/blog\/?p=469","title":{"rendered":"Dead Secret Diary: Locomotion and Space"},"content":{"rendered":"<p>I\u00a0<a href=\"http:\/\/schedule.gdconf.com\/session\/designing-for-mobile-vr-in-dead-secret\">gave a talk at GDC 2015<\/a> about designing\u00a0our new title,\u00a0<em><a href=\"http:\/\/deadsecret.com\">Dead Secret<\/a><\/em>, for mobile VR platforms like the Gear VR. \u00a0That seemed to go over well, so I thought I&#8217;d write a little bit about the design of the game itself.<\/p>\n<p>Dead Secret is a murder mystery that takes place entirely within the home of the victim. \u00a0Your goal is to search the house for clues, piece together the events leading up to the death, and finally name the killer. \u00a0In designing this game one of the main challenges has been to define how the physical space, puzzles, and pacing interact. \u00a0This can be thought of as the problem of <em>density<\/em>: what is the effect of packing lots of information into a small space compared to spreading it out over a larger space?<\/p>\n<p><a href=\"https:\/\/robotinvader.com\/blog\/wp-content\/uploads\/2015\/07\/4-10-15_small.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-487\" src=\"https:\/\/robotinvader.com\/blog\/wp-content\/uploads\/2015\/07\/4-10-15_small-1024x492.png\" alt=\"4-10-15_small\" width=\"640\" height=\"308\" srcset=\"https:\/\/robotinvader.com\/blog\/wp-content\/uploads\/2015\/07\/4-10-15_small-1024x492.png 1024w, https:\/\/robotinvader.com\/blog\/wp-content\/uploads\/2015\/07\/4-10-15_small-300x144.png 300w, https:\/\/robotinvader.com\/blog\/wp-content\/uploads\/2015\/07\/4-10-15_small.png 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>To some extent, this question is answered for us by other design decisions we&#8217;ve made. \u00a0The house in Dead Secret is based on real architectural plans for a home of the proper era and location. \u00a0It&#8217;s not\u00a0a mansion, it&#8217;s a two story home with one bathroom, two bedrooms and, ahem, a basement. \u00a0We&#8217;ve made some modifications here and there, and some of the game takes place outside the home itself. \u00a0But the space is relatively small.<\/p>\n<p>More importantly, individual rooms are sized the way they should be, which means that once we fill them with bookshelves, tables, cupboards, and esoteric 19th-century mechanical instruments, there&#8217;s not a whole lot of space to get into a firefight, parkour up a wall, or \u00a0even sneak through some air ducts. This house is old enough that it doesn&#8217;t even have air ducts.<\/p>\n<p>By electing a dense, cramped environment, we implicitly closed the door on things like shooting\u00a0and platforming. \u00a0It&#8217;s a good thing, too, because those sorts of interactions typically rely on locomotion systems that probably make people sick in VR. \u00a0Instead, Dead Secret is about exploration, about finding clues, and about solving puzzles. \u00a0For this, the tight, contained space of the\u00a0house works really well. \u00a0We can pack a ton of detail into each room and simplify our locomotion system to encourage methodical investigation. \u00a0One of the most surprising aspects of VR for us is the sense of spaciousness of virtual spaces. \u00a0When the scale is right, an environment that appears noisy and cluttered on a screen feels open and airy in VR.<\/p>\n<p>The tight coupling of rooms also lets us engage in a level design pattern that I call\u00a0<em>recursive unlocking.<\/em> \u00a0Recursive unlocking describes a map design with tightly packed rooms connected by doors that are initially locked. \u00a0The space available to the player starts out small, but as they unlock one room after another it begins to unwind like a shell. \u00a0Rooms interconnect and shortcuts are created, and traversing the space efficiently becomes a puzzle in and of itself. \u00a0<em>Resident Evil<\/em> is the archetypical example of this pattern, and if you&#8217;re interested you can read my <a href=\"http:\/\/horror.dreamdawn.com\/?p=81213\">analysis of recursive unlocking<\/a> in\u00a0that game.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-486\" src=\"https:\/\/robotinvader.com\/blog\/wp-content\/uploads\/2015\/07\/4-3-15_small-1024x492.png\" alt=\"4-3-15_small\" width=\"640\" height=\"308\" srcset=\"https:\/\/robotinvader.com\/blog\/wp-content\/uploads\/2015\/07\/4-3-15_small-1024x492.png 1024w, https:\/\/robotinvader.com\/blog\/wp-content\/uploads\/2015\/07\/4-3-15_small-300x144.png 300w, https:\/\/robotinvader.com\/blog\/wp-content\/uploads\/2015\/07\/4-3-15_small.png 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>Since our crime scene has many fewer rooms than Raccoon City&#8217;s Spencer Mansion, the implementation of recursive unlocking in\u00a0Dead Secret is focused on aligning new areas to beats in the narrative, and eventually reconnecting them back to a\u00a0common space. \u00a0The player will visit a new space and find themselves unable to return to the area they were previously in. \u00a0After resolving the new space they find a path back to an area that they know, and eventually into another new space. \u00a0Thanks to the density of content in each space, this approach lets us cram the whole game into just one house.<\/p>\n<p>A highly dense space does have disadvantages, though. \u00a0Locomotion needs to be precise, and therefore ends up being a bit slower than in other forms of games.\u00a0In a detailed environment, finding items to use for puzzles can be tricky because there is so much visual information to process. \u00a0Puzzles are used to gate progression, so we need to organize our <a href=\"http:\/\/grumpygamer.com\/puzzle_dependency_charts\">puzzle dependency charts<\/a> to prevent frustrating shelf moments at all costs. \u00a0Puzzle interfaces need to be fairly expressive, so we end up writing a lot of one-off code for specific puzzle\u00a0interactions. \u00a0Recursive unlocking helps us keep items local to a common area of relevance, but wandering has a higher cost in Dead Secret than in other games in this genre (due to being in VR and also because we&#8217;ve traded control flexibility for environment detail), so we sometimes need to be more heavy handed about progression than I would prefer.<\/p>\n<p>Still, this type of experience seems perfect for VR. \u00a0The trade-offs required to make the home of our murder victim interesting and compelling are generally things that are good for VR anyway. We want you to\u00a0<em>be<\/em> in this house, and\u00a0while VR technology can open the front door, it&#8217;s still up to us to make the floorboards creak as you cross the threshold.<\/p>\n<p><i>Look for <a href=\"http:\/\/deadsecret.com\">Dead Secret<\/a> later this year on Gear VR, and on other platforms thereafter.<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I\u00a0gave a talk at GDC 2015 about designing\u00a0our new title,\u00a0Dead Secret, for mobile VR platforms like the Gear VR. \u00a0That seemed to go over well, so I thought I&#8217;d write a little bit about the design of the game itself. &hellip; <a href=\"https:\/\/robotinvader.com\/blog\/?p=469\">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,5],"tags":[],"class_list":["post-469","post","type-post","status-publish","format-standard","hentry","category-dead-secret","category-game-design"],"_links":{"self":[{"href":"https:\/\/robotinvader.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/469","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robotinvader.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robotinvader.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robotinvader.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/robotinvader.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=469"}],"version-history":[{"count":6,"href":"https:\/\/robotinvader.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/469\/revisions"}],"predecessor-version":[{"id":489,"href":"https:\/\/robotinvader.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/469\/revisions\/489"}],"wp:attachment":[{"href":"https:\/\/robotinvader.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robotinvader.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=469"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robotinvader.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}