09-22-2020, 03:48 AM
Blog: Designing a thrilling enjoyable arcade experience for VR
<div style="margin: 5px 5% 10px 5%;"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr.png" width="243" height="77" title="" alt="" /></div><div><p> <!-- Google Tag Manager --> <!-- End Google Tag Manager --> <!– –> <title>Gamasutra: Vincent TRINEL’s Blog – Designing a thrilling enjoyable arcade experience for VR</title> <!--[if lt IE 9]> <a href="http://html5shim.googlecode.com/svn/trunk/html5.js">http://html5shim.googlecode.com/svn/trunk/html5.js</a> <![endif]--> <!-- CSS --> <!-- link href="https://twimgs.com/gamasutra/css/minified.css" rel="stylesheet" type="text/css" / --> <!-- Mobile Specific Metas --> <!-- Start Visual Website Optimizer Asynchronous Code --> <!-- End Visual Website Optimizer Asynchronous Code --> <!-- Start HeatMap.me Code --> <!-- End HeatMap.me Code --> <!-- Start: GPT Sync --> <!-- End: GPT --> <!-- Twitter universal website tag code --> <!-- End Twitter universal website tag code --> <!-- Facebook Pixel Code --> <!-- DO NOT MODIFY --> <!-- End Facebook Pixel Code --> <!-- Eloqua tracking code --> <!-- End Eloqua tracking code --> <!-- Google Tag Manager (noscript) --> <!-- End Google Tag Manager (noscript) --> <!--Cookie banner code starts here --> <!--Cookie banner code ends here --> <!-- Informa Branding code goes here--> </p>
<div id="iribbon-container" class="content-body-wrapper"> <button id="iribbon-title" title="show/hide" class="inactive">Informa</button> </p>
<div id="iribbon-detail" class="ribbon-hide">
<div id="iribbon-left">
<p>Gamasutra is part of the Informa Tech Division of Informa PLC</p>
</p></div>
<div id="iribbon-right">
<p>This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC’s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.</p>
</p></div>
</p></div>
</p></div>
<p> <!-- Informa Branding code goes here--> <!-- Beginning Sync AdSlot 19 for Ad unit Gamasutra//independentgames ### size: [[2,2]] --> <!-- End AdSlot 19 --> <!-- Beginning Sync AdSlot 20 for Ad unit Gamasutra//independentgames ### size: [[7,7]] --> <!-- End AdSlot 20 --> </p>
<div class="container">
<div id="container-main" class="content-body-wrapper"> <!-- Google Prestitial Ads start here--> <!-- Google Prestitial Ads end here--> </p>
<div class="container bottom3">
<div class="span-7"> <a href="https://www.gamasutra.com"><img loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr.png" alt="Gamasutra: The Art & Business of Making Games" width="243" height="77" border="0"></a><img alt="spacer" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr.gif" width="27"> </div>
</p></div>
<div class="span-20"> <!--end show phone--> <!--end showphone--> <!--end nav--> </p>
<div class="span-20 last content_bg">
<div class="hide-phone">
<div class="span-4">
<div class="content_box_left">
<div class="leftcol"> <!--member login--> <!--end memberlogin--> <!--begin social icons--> <!--begin social icons--> <!--end social icons--> <!--end social icons--> <!--begin page numbers--> <!--end page numbers--> <!--begin leftnav--> <!--end leftnav--> <!-- Beginning Sync AdSlot 3 for Ad unit Gamasutra//independentgames ### size: [[164,59]] --> <!-- End AdSlot 3 --> <!-- Beginning Sync AdSlot 4 for Ad unit Gamasutra//independentgames ### size: [[164,59]] --> <!-- End AdSlot 4 --> <!-- Beginning Sync AdSlot 5 for Ad unit Gamasutra//independentgames ### size: [[164,409]] --> <!-- End AdSlot 5 --> <!-- Beginning Sync AdSlot 9 for Ad unit Gamasutra//independentgames ### size: [[164,177]] --> <!-- End AdSlot 9 --> <!-- Beginning Sync AdSlot 11 for Ad unit Gamasutra//independentgames ### size: [[164,177]] --> <!-- End AdSlot 11 --> <!-- begin event tickers --> <!-- end event tickers --> <!--begin jobs--> <!--end jobs--> <!--begin blogs--> <!--end blogs--> <!--begin press releases--> <!--end press releases--> <!--begin calendar--> <!– </p>
<div class="header"><img loading="lazy" alt="arrow" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-1.png" width="22px" height="20px" /><a href="http://www.gamasutra.com/calendar/calendar.php">Calendar</a></div>
<div class="leftnav bottom2"> <a href="http://www.gamasutra.com/calendar/calendar.php"><strong>View All</strong></a> <a href="http://www.gamasutra.com/calendar/calendar_submit.php"><strong>Submit Event</strong></a> </p>
<hr>
<ul> </ul>
</div>
<p> –> <!--end calendar--> <!--begin about--> </p>
<div class="bottom2"> <a href="https://www.gamasutra.com/advertise"> <img loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr.jpg" alt="Sponsor" border="0" class="whiteTop" width="177px" height="60px"> </a>
</div>
<p> <!--end about--> <!--begin network--> </p>
<div class="leftnav_network bottom2"> If you enjoy reading this site, you might also want to check out these UBM Tech sites: </p>
<hr>
<hr>
<p> <br class="clear">
</div>
<p> <!--end network--> <!--begin store--> <!--end store--> </div>
<p><!--end leftcol--> </div>
</div></div>
<div class="span-16 last">
<div class="content_box_middle"> <!-- InstanceBeginEditable name="BodyContent" --> </p>
<div class="page_item">
<div><a name="twitter_share" href="http://twitter.com?status=RT @gamasutra: Designing a thrilling enjoyable arcade experience for VR http://www.gamasutra.com/blogs/VincentTR...16/368529/" target="_blank" rel="noopener noreferrer"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-1.gif" alt="Share on Twitter" border="0" height="20"></a> <span id="edit_post_link"></span> <a href="https://www.gamasutra.com/blogs/rss/"><img loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-2.gif" width="15" height="15" border="0" alt="RSS"></a> </div>
<hr>
<div class="item_body mobile_image_transform"> <strong><i><small> The following blog post, unless otherwise noted, was written by a member of Gamasutras community.<br />The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company. </small></i></strong> </p>
<hr>
<h3>Who the hell are you?</h3>
<p>My name is Vincent. I’m a French game design student from Supinfogame Rubika, a game development school based in Valenciennes, France. I worked on many game projects during my studies that taught me a lot on game development and game design. I released games made with friends on Steam alongside my studies. The first one was <a href="https://store.steampowered.com/app/1096590/Atma/">Atma</a>, a story-driven adventure game inspired by games like Zelda and Okami. The latest is <a href="https://store.steampowered.com/app/1096600/Quash/">Quash</a>, a VR arcade game currently in early access on Steam.</p>
<p>I wrote this article to share the experience I had during the development of Quash. It taught me a lot about designing for VR. I wanted to talk about the process and the decisions we took to achieve our goals. I hope this article can help and/or inspire people who face difficulties during the development of their own VR game. (And I know how difficult and incredibly frightening it can be to design for VR).</p>
<p>Quash is a VR Arcade racket game where the player must destroy every brick in the wall in front of him. To destroy the bricks, the player has to strike a ball with their racket to create an explosion that blows the bricks within its range when the ball hits the wall.</p>
<p align="center"><img alt src="</p>
<p><a>via%20GIPHY</a></p>
<p>“><img loading="lazy" alt height="236" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-3.gif" width="420"></p>
<p align="center"><em>You can easily describe the concept as a mix between Squash and Breakout.</em></p>
<p>The game is designed around 2 core pillars that drive the game’s experience.</p>
<div>
<p align="center"><big><strong>Make the player feels strong and powerful</strong></big></p>
<p align="center"><big><strong>Everyone can play and succeed</strong></big></p>
<p align="center"> </p>
</div>
<h2>Make you feel stronger than you think</h2>
<p>Racket sports tend to be more difficult than we thought at first. It’s complicated to aim accurately with a racket, and you need to be able to catch the ball, which is not easy. It made us realize that we don’t want the player to have an experience similar to a real racket sport. We wanted something easier, more accessible, <strong>focused on the feeling of hitting a ball and destroying everything</strong>.</p>
<p align="center"><img alt src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-2.png"></p>
<p align="center"><em>We want everyone to be able to smash this damn ball!</em></p>
<p>We wanted to create a game where everyone can succeed without sacrificing a sense of challenge and let players improve by themselves throughout the game.</p>
<p>Above all, <strong>we focused on the feeling of the gameplay to achieve our design goals</strong>.</p>
<h2>Victory condition & progression system</h2>
<p>In Quash, there aren’t any real conditions for defeat. We needed to avoid “traditional Game Over” to let the player complete a level even if he didn’t play well. We <strong>didn’t want to break the flow of a game</strong>. We wanted <strong>the player to progress at their own pace</strong>.</p>
<p>To achieve this, we included a scoring and achievement system that evaluates the performance of players throughout a level. The achievements reward the player with stars which are the currency needed to unlock levels in the single player campaign. With these systems, we can shape and balance the player’s progress based on their performance without punishing them while playing a level. We trust the player to know whether or not they are playing well during a game.</p>
<h2>A ton of bricks!</h2>
<p>There’s already a lot of VR racket games on Steam. Some of them have a concept close to Quash’s. However, none of these games push their design around the feeling of fun you get when you crush something. VR is a powerful technology for conveying these kinds of feelings that are rarely reproduced in the real world. (because it’s obviously dangerous, and no one wants to blow up their own stuff)</p>
<p>We decided to <strong>put a lot of bricks on the wall</strong> to increase the pleasure the player can get by destroying many bricks. We had <strong>to find the right balance to display a lot of bricks without having readability or even performance issues</strong>. But putting a lot of bricks in the wall creates another obvious problem: It’s harder to hit a small brick than a big one.</p>
<p>This is why we created the explosion mechanic.</p>
<p>The ball itself doesn’t break the bricks. It is the explosion the ball creates when it hits the wall that destroys them. This mechanic <strong>allows the player to easily hit several bricks and doesn’t require a lot of accuracy</strong>. It makes the game easier, more accessible and improves the feeling of pleasure felt when destroying bricks.</p>
<p align="center"><img loading="lazy" alt height="441" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-3.png" width="621"></p>
<p align="center"><em>When the ball hits a brick or the front wall, a circle is generated (the explosion) and all bricks inside a radius starting from the impact point are detected</em></p>
<p align="center"> </p>
<p align="center"><img loading="lazy" alt height="441" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-4.png" width="621"></p>
<p align="center"><em>Then, all detected bricks are destroyed.</em></p>
<p align="center"><em>This mechanic requires less accuracy from the player and let them easily perform spectacular destruction</em></p>
<h2>Physics</h2>
<p>We designed the physics in a way that it <strong>helps and always advantages the player</strong>. We iterated a lot on it. We made sure that <strong>the velocity of the ball is always high</strong> (even with very small shots). Our limit was to make the action clear and easy to follow. We found that in many other racket games, the ball was too slow and at the same time harder to catch. We thought this was way too frustrating for the experience we wanted to design. So, we <strong>increased the speed when the players hit the ball and reduced it when the ball was moving towards the player’s position</strong>.</p>
<p>We worked on the trajectories to make them as simple as possible. We want them to be <strong>easy to</strong> <strong>anticipate </strong>when the player strikes the ball.</p>
<p>In addition, <strong>the ball is</strong> <strong>automatically moving to a position that can be easily reached by the player</strong> when it comes back in their direction.</p>
<p align="center"><img loading="lazy" alt height="515" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-5.png" width="304"></p>
<p align="center"><em>The ball always adjusts its trajectory to get back in the blue areas around the player</em></p>
<h2>Collision</h2>
<p>Once again, we cheated a bit (but in the right way). The racket’s <strong>collider is actually much bigger than the mesh itself</strong>. We did this to avoid the frustrating moment where the player misses the ball when it is visually very close to the racket.</p>
<h2>Score & numbers</h2>
<p>We displayed the number of score points earned by each brick at their location. This seems to be a strange decision; many bricks are often destroyed at the same time. It is impossible for the player to count and know how many points they earned in a single hit. But that’s not why we did it, we did it just <strong>for the feeling of “earning a lot”.</strong> If the player sees many numbers appearing at the same time, it will <strong>be perceived as “having more value”</strong> than only displaying the total of all those points added. Our goal with the scoring system wasn’t scoring itself, but to <strong>emphasize the feeling of being powerful</strong>.</p>
<p align="center"><img loading="lazy" alt height="211" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-6.png" width="646"></p>
<p align="center"><em>The pile of bills on the left seems at first glance more valuable than the bill alone on the right.</em></p>
<h2>Scaling & dimensions</h2>
<p><strong>The scale of the object is super important in VR</strong>. We had trouble with this at the beginning of the project. We didn’t have a realistic scale for each object. The texture patterns were too large, the ball and rackets were gigantic, and the walls were not in believable proportions. So, we started to re-scale each object to realistic dimensions. With the right sizes of props and environments, it immediately feels more immersive. Once we got realistic dimensions, we started to adjust the scale of the objects a little bit and ended up with a big ball and a bigger racket. The ball got bigger to be easier to hit and more visible in the action. The racket was extended to hide the cheating we did with the colliders.</p>
<p align="center"><img loading="lazy" alt height="240" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-4.gif" width="480"></p>
<h2>Shake it!</h2>
<p>Camera shake is a very useful tool to make a game feel more enjoyable. It’s easy to do and we can modify the shake to get a wide range of different effects. But in VR, camera shake is not as useful as it is in PC/Consoles/Mobile games. It can produce disturbing effects and we obviously didn’t want that. But we wanted something similar to emphasize the destruction of bricks. We first tried to shake up the “world” around the player. But it didn’t feel as good as we thought it would, so we found another solution: <strong>shake only the wall</strong>!</p>
<p>The effect is very subtle and almost only visible in VR. We found that <strong>shaking small parts of the world/environment</strong> can be a great way to replace our precious camera shake in VR.</p>
<h2>Usual polished effects</h2>
<p>In addition, we used the usual effects (such as post-processing, particles, etc.) to make each player’s action more enjoyable and spectacular.</p>
<p>Each effect has only one purpose: to communicate a single piece of information to the player. But this will be explained in detail in the process part.</p>
<p>To work on the feel of the game, I used a very simple process that I apply to every game I work on.</p>
<h2>Atomic gameplay info list</h2>
<p>First, I start by <strong>making a list of all the gameplay information</strong> at an atomic level that I need to communicate to the player. By atomic level, I mean that I will break down each simple gameplay information into smaller pieces.</p>
<p><em>For example, I need to communicate the movement of the ball. At the atomic level, it should be something like the ball’s speed, trajectory, impact point, and so on.</em></p>
<p align="center"><img loading="lazy" alt height="399" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-7.png" width="646"></p>
<p>Making this list let me <strong>think about what needs to be communicated</strong>, what needs to be hidden and how much details is needed.</p>
<p>To do this, I <strong>evaluate each gameplay information according to a criterion of precision</strong>: on a scale of 0 to 5. 0 meaning that the gameplay information must be hidden and 5 meaning that it must be extremely precise (like displaying HP as big numbers on top of a huge health bar in a HUD).</p>
<p align="center"><img loading="lazy" alt height="209" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-8.png" width="311"></p>
<h2>List the ways to communicate</h2>
<p>Once I have a list with all the gameplay information I need to communicate, I think about all the possible ways to communicate those info. I always try to put too many things in my list so I can make choices later on. We never have the time and/or money to do everything. So, I always have to cut things and that’s why I evaluated each piece of gameplay information according to a criterion of precision. This helps me to choose the gameplay info that needs more production and testing than another. But in general, and depending on the importance of the gameplay info, the more ways you have to communicate, the better. Another useful tip is to have a minimum of two communication channels (visual, sound, haptics, etc.) for each piece of critical gameplay info (Above or equal to 3).</p>
<h3><big>To sum up:</big></h3>
<ul>
<li>Make a <strong>list of all the gameplay information</strong> at the most micro level possible</li>
<li><strong>Determine the importance</strong> of each gameplay information</li>
<li>Lists all the<strong> possible ways to communicate gameplay info</strong></li>
<li><strong>Sort according to the precision needed each gameplay information</strong> with the time/budget available</li>
<li>Make sure that each critical gameplay <strong>information uses a minimum of 2 different communication channels</strong></li>
<li><strong>Never hesitate to do too much</strong>, even if it means reducing the intensity of the effects later on</li>
</ul>
<p>Designing Quash was not easy, we struggled a lot to find a clear design direction and we discovered many problems with VR that we were not aware of before we started development. And this article doesn’t mention another beast we had to deal with: multiplayer.</p>
<p>On top of that, the Covid-19 pandemic had a big negative impact on our production because not everyone on the team had VR headsets at home. In the end, we managed to overcome a lot of these problems and I’m really happy to see Quash on Steam. But it’s not over yet and we still have a lot of things to improve thanks to the feedback from our community.</p>
<p>To conclude this article, I’d like to thank the whole Quash team:</p>
<p>Francois, Timothée & Alexis, our dear brave programmers.</p>
<p>Timothé and Tristan, my design teammates <3.</p>
<p>Geoffrey, our producer and great mail master.</p>
<p>Sonia, for her wonderful VFXs</p>
<p>And finally, Pierrick for his incredible SFXs and his awesome soundtrack!</p>
<p>But mostly thanks to you who read this article to the end. I hope there are some interesting and potentially useful things for your projects. <strong>I can’t wait to play your games!</strong></p>
</p></div>
<hr>
<div class="hide-phone">
<h3>Related Jobs</h3>
<div class="stories_item">
<div class="thumb"><a href="https://jobs.gamasutra.com/job/camera-designer-agoura-hills-california-34540"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-9.png" alt="Visual Concepts" width="120"></a></div>
<div class="title"> <strong> Visual Concepts — Agoura Hills, California, United States <br />[09.18.20] </strong> <br /><a href="https://jobs.gamasutra.com/job/camera-designer-agoura-hills-california-34540">Camera Designer</a> </div>
</p></div>
<div class="stories_item">
<div class="thumb"><a href="https://jobs.gamasutra.com/job/senior-cinematic-scripter-espoo-34551"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-5.gif" alt="Remedy Entertainment" width="120"></a></div>
</p></div>
<div class="stories_item">
<div class="thumb"><a href="https://jobs.gamasutra.com/job/senior-technical-designer-champaign-illinois-34566"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-1.jpg" alt="Deep Silver Volition" width="120"></a></div>
</p></div>
<div class="stories_item">
<div class="thumb"><a href="https://jobs.gamasutra.com/job/lead-level-designer-burbank-california-34561"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-2.jpg" alt="Insomniac Games" width="120"></a></div>
</p></div>
</p></div>
<hr></div>
<p> <!-- InstanceEndEditable --> </div>
<p><!--end contentbox-->
</div>
<p><!--end span-16--> </div>
<p> <br class="clear"> </div>
<p><!--end span-21--> <!--begin right sidebar--> <!--end right sidebar--> <!– </div>
<p> Extra Div –> <!-- Beginning Sync AdSlot 21 for Ad unit Gamasutra//independentgames ### size: [[8,2]] --> <!-- End AdSlot 21 --> <!-- Beginning Sync AdSlot 22 for Ad unit Gamasutra//independentgames ### size: [[8,4]] --> <!-- End AdSlot 22 --> <!-- Beginning Sync AdSlot 23 for Ad unit Gamasutra//independentgames ### size: [[4,4]] --> <!-- End AdSlot 23 --> <br class="clear"></p></div>
<p><!--end content-body-wrapper--> </div>
<p><!--end container--><br />
<!--begin footer--> <!--end footer--> <!-- SiteCatalyst code version: H.21.
Copyright 1996-2010 Adobe, Inc. All Rights Reserved
More info available at http://www.omniture.com --> <a href="http://www.omniture.com" title="Web Analytics"><img loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-6.gif" height="1" width="1" border="0" alt></a><!--/DO NOT REMOVE/--><br />
<!-- End SiteCatalyst code version: H.21. --> <!-- Begin ADSNATIVE Code --> <!-- End ADSNATIVE Code --> <!--Begin Ad script for pixel --> <!--END Ad script for pixel --></p>
</div>
https://www.sickgaming.net/blog/2020/09/...ce-for-vr/
<div style="margin: 5px 5% 10px 5%;"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr.png" width="243" height="77" title="" alt="" /></div><div><p> <!-- Google Tag Manager --> <!-- End Google Tag Manager --> <!– –> <title>Gamasutra: Vincent TRINEL’s Blog – Designing a thrilling enjoyable arcade experience for VR</title> <!--[if lt IE 9]> <a href="http://html5shim.googlecode.com/svn/trunk/html5.js">http://html5shim.googlecode.com/svn/trunk/html5.js</a> <![endif]--> <!-- CSS --> <!-- link href="https://twimgs.com/gamasutra/css/minified.css" rel="stylesheet" type="text/css" / --> <!-- Mobile Specific Metas --> <!-- Start Visual Website Optimizer Asynchronous Code --> <!-- End Visual Website Optimizer Asynchronous Code --> <!-- Start HeatMap.me Code --> <!-- End HeatMap.me Code --> <!-- Start: GPT Sync --> <!-- End: GPT --> <!-- Twitter universal website tag code --> <!-- End Twitter universal website tag code --> <!-- Facebook Pixel Code --> <!-- DO NOT MODIFY --> <!-- End Facebook Pixel Code --> <!-- Eloqua tracking code --> <!-- End Eloqua tracking code --> <!-- Google Tag Manager (noscript) --> <!-- End Google Tag Manager (noscript) --> <!--Cookie banner code starts here --> <!--Cookie banner code ends here --> <!-- Informa Branding code goes here--> </p>
<div id="iribbon-container" class="content-body-wrapper"> <button id="iribbon-title" title="show/hide" class="inactive">Informa</button> </p>
<div id="iribbon-detail" class="ribbon-hide">
<div id="iribbon-left">
<p>Gamasutra is part of the Informa Tech Division of Informa PLC</p>
</p></div>
<div id="iribbon-right">
<p>This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC’s registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.</p>
</p></div>
</p></div>
</p></div>
<p> <!-- Informa Branding code goes here--> <!-- Beginning Sync AdSlot 19 for Ad unit Gamasutra//independentgames ### size: [[2,2]] --> <!-- End AdSlot 19 --> <!-- Beginning Sync AdSlot 20 for Ad unit Gamasutra//independentgames ### size: [[7,7]] --> <!-- End AdSlot 20 --> </p>
<div class="container">
<div id="container-main" class="content-body-wrapper"> <!-- Google Prestitial Ads start here--> <!-- Google Prestitial Ads end here--> </p>
<div class="container bottom3">
<div class="span-7"> <a href="https://www.gamasutra.com"><img loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr.png" alt="Gamasutra: The Art & Business of Making Games" width="243" height="77" border="0"></a><img alt="spacer" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr.gif" width="27"> </div>
</p></div>
<div class="span-20"> <!--end show phone--> <!--end showphone--> <!--end nav--> </p>
<div class="span-20 last content_bg">
<div class="hide-phone">
<div class="span-4">
<div class="content_box_left">
<div class="leftcol"> <!--member login--> <!--end memberlogin--> <!--begin social icons--> <!--begin social icons--> <!--end social icons--> <!--end social icons--> <!--begin page numbers--> <!--end page numbers--> <!--begin leftnav--> <!--end leftnav--> <!-- Beginning Sync AdSlot 3 for Ad unit Gamasutra//independentgames ### size: [[164,59]] --> <!-- End AdSlot 3 --> <!-- Beginning Sync AdSlot 4 for Ad unit Gamasutra//independentgames ### size: [[164,59]] --> <!-- End AdSlot 4 --> <!-- Beginning Sync AdSlot 5 for Ad unit Gamasutra//independentgames ### size: [[164,409]] --> <!-- End AdSlot 5 --> <!-- Beginning Sync AdSlot 9 for Ad unit Gamasutra//independentgames ### size: [[164,177]] --> <!-- End AdSlot 9 --> <!-- Beginning Sync AdSlot 11 for Ad unit Gamasutra//independentgames ### size: [[164,177]] --> <!-- End AdSlot 11 --> <!-- begin event tickers --> <!-- end event tickers --> <!--begin jobs--> <!--end jobs--> <!--begin blogs--> <!--end blogs--> <!--begin press releases--> <!--end press releases--> <!--begin calendar--> <!– </p>
<div class="header"><img loading="lazy" alt="arrow" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-1.png" width="22px" height="20px" /><a href="http://www.gamasutra.com/calendar/calendar.php">Calendar</a></div>
<div class="leftnav bottom2"> <a href="http://www.gamasutra.com/calendar/calendar.php"><strong>View All</strong></a> <a href="http://www.gamasutra.com/calendar/calendar_submit.php"><strong>Submit Event</strong></a> </p>
<hr>
<ul> </ul>
</div>
<p> –> <!--end calendar--> <!--begin about--> </p>
<div class="bottom2"> <a href="https://www.gamasutra.com/advertise"> <img loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr.jpg" alt="Sponsor" border="0" class="whiteTop" width="177px" height="60px"> </a>
</div>
<p> <!--end about--> <!--begin network--> </p>
<div class="leftnav_network bottom2"> If you enjoy reading this site, you might also want to check out these UBM Tech sites: </p>
<hr>
<hr>
<p> <br class="clear">
</div>
<p> <!--end network--> <!--begin store--> <!--end store--> </div>
<p><!--end leftcol--> </div>
</div></div>
<div class="span-16 last">
<div class="content_box_middle"> <!-- InstanceBeginEditable name="BodyContent" --> </p>
<div class="page_item">
<div><a name="twitter_share" href="http://twitter.com?status=RT @gamasutra: Designing a thrilling enjoyable arcade experience for VR http://www.gamasutra.com/blogs/VincentTR...16/368529/" target="_blank" rel="noopener noreferrer"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-1.gif" alt="Share on Twitter" border="0" height="20"></a> <span id="edit_post_link"></span> <a href="https://www.gamasutra.com/blogs/rss/"><img loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-2.gif" width="15" height="15" border="0" alt="RSS"></a> </div>
<hr>
<div class="item_body mobile_image_transform"> <strong><i><small> The following blog post, unless otherwise noted, was written by a member of Gamasutras community.<br />The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company. </small></i></strong> </p>
<hr>
<h3>Who the hell are you?</h3>
<p>My name is Vincent. I’m a French game design student from Supinfogame Rubika, a game development school based in Valenciennes, France. I worked on many game projects during my studies that taught me a lot on game development and game design. I released games made with friends on Steam alongside my studies. The first one was <a href="https://store.steampowered.com/app/1096590/Atma/">Atma</a>, a story-driven adventure game inspired by games like Zelda and Okami. The latest is <a href="https://store.steampowered.com/app/1096600/Quash/">Quash</a>, a VR arcade game currently in early access on Steam.</p>
<p>I wrote this article to share the experience I had during the development of Quash. It taught me a lot about designing for VR. I wanted to talk about the process and the decisions we took to achieve our goals. I hope this article can help and/or inspire people who face difficulties during the development of their own VR game. (And I know how difficult and incredibly frightening it can be to design for VR).</p>
<p>Quash is a VR Arcade racket game where the player must destroy every brick in the wall in front of him. To destroy the bricks, the player has to strike a ball with their racket to create an explosion that blows the bricks within its range when the ball hits the wall.</p>
<p align="center"><img alt src="</p>
<p><a>via%20GIPHY</a></p>
<p>“><img loading="lazy" alt height="236" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-3.gif" width="420"></p>
<p align="center"><em>You can easily describe the concept as a mix between Squash and Breakout.</em></p>
<p>The game is designed around 2 core pillars that drive the game’s experience.</p>
<div>
<p align="center"><big><strong>Make the player feels strong and powerful</strong></big></p>
<p align="center"><big><strong>Everyone can play and succeed</strong></big></p>
<p align="center"> </p>
</div>
<h2>Make you feel stronger than you think</h2>
<p>Racket sports tend to be more difficult than we thought at first. It’s complicated to aim accurately with a racket, and you need to be able to catch the ball, which is not easy. It made us realize that we don’t want the player to have an experience similar to a real racket sport. We wanted something easier, more accessible, <strong>focused on the feeling of hitting a ball and destroying everything</strong>.</p>
<p align="center"><img alt src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-2.png"></p>
<p align="center"><em>We want everyone to be able to smash this damn ball!</em></p>
<p>We wanted to create a game where everyone can succeed without sacrificing a sense of challenge and let players improve by themselves throughout the game.</p>
<p>Above all, <strong>we focused on the feeling of the gameplay to achieve our design goals</strong>.</p>
<h2>Victory condition & progression system</h2>
<p>In Quash, there aren’t any real conditions for defeat. We needed to avoid “traditional Game Over” to let the player complete a level even if he didn’t play well. We <strong>didn’t want to break the flow of a game</strong>. We wanted <strong>the player to progress at their own pace</strong>.</p>
<p>To achieve this, we included a scoring and achievement system that evaluates the performance of players throughout a level. The achievements reward the player with stars which are the currency needed to unlock levels in the single player campaign. With these systems, we can shape and balance the player’s progress based on their performance without punishing them while playing a level. We trust the player to know whether or not they are playing well during a game.</p>
<h2>A ton of bricks!</h2>
<p>There’s already a lot of VR racket games on Steam. Some of them have a concept close to Quash’s. However, none of these games push their design around the feeling of fun you get when you crush something. VR is a powerful technology for conveying these kinds of feelings that are rarely reproduced in the real world. (because it’s obviously dangerous, and no one wants to blow up their own stuff)</p>
<p>We decided to <strong>put a lot of bricks on the wall</strong> to increase the pleasure the player can get by destroying many bricks. We had <strong>to find the right balance to display a lot of bricks without having readability or even performance issues</strong>. But putting a lot of bricks in the wall creates another obvious problem: It’s harder to hit a small brick than a big one.</p>
<p>This is why we created the explosion mechanic.</p>
<p>The ball itself doesn’t break the bricks. It is the explosion the ball creates when it hits the wall that destroys them. This mechanic <strong>allows the player to easily hit several bricks and doesn’t require a lot of accuracy</strong>. It makes the game easier, more accessible and improves the feeling of pleasure felt when destroying bricks.</p>
<p align="center"><img loading="lazy" alt height="441" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-3.png" width="621"></p>
<p align="center"><em>When the ball hits a brick or the front wall, a circle is generated (the explosion) and all bricks inside a radius starting from the impact point are detected</em></p>
<p align="center"> </p>
<p align="center"><img loading="lazy" alt height="441" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-4.png" width="621"></p>
<p align="center"><em>Then, all detected bricks are destroyed.</em></p>
<p align="center"><em>This mechanic requires less accuracy from the player and let them easily perform spectacular destruction</em></p>
<h2>Physics</h2>
<p>We designed the physics in a way that it <strong>helps and always advantages the player</strong>. We iterated a lot on it. We made sure that <strong>the velocity of the ball is always high</strong> (even with very small shots). Our limit was to make the action clear and easy to follow. We found that in many other racket games, the ball was too slow and at the same time harder to catch. We thought this was way too frustrating for the experience we wanted to design. So, we <strong>increased the speed when the players hit the ball and reduced it when the ball was moving towards the player’s position</strong>.</p>
<p>We worked on the trajectories to make them as simple as possible. We want them to be <strong>easy to</strong> <strong>anticipate </strong>when the player strikes the ball.</p>
<p>In addition, <strong>the ball is</strong> <strong>automatically moving to a position that can be easily reached by the player</strong> when it comes back in their direction.</p>
<p align="center"><img loading="lazy" alt height="515" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-5.png" width="304"></p>
<p align="center"><em>The ball always adjusts its trajectory to get back in the blue areas around the player</em></p>
<h2>Collision</h2>
<p>Once again, we cheated a bit (but in the right way). The racket’s <strong>collider is actually much bigger than the mesh itself</strong>. We did this to avoid the frustrating moment where the player misses the ball when it is visually very close to the racket.</p>
<h2>Score & numbers</h2>
<p>We displayed the number of score points earned by each brick at their location. This seems to be a strange decision; many bricks are often destroyed at the same time. It is impossible for the player to count and know how many points they earned in a single hit. But that’s not why we did it, we did it just <strong>for the feeling of “earning a lot”.</strong> If the player sees many numbers appearing at the same time, it will <strong>be perceived as “having more value”</strong> than only displaying the total of all those points added. Our goal with the scoring system wasn’t scoring itself, but to <strong>emphasize the feeling of being powerful</strong>.</p>
<p align="center"><img loading="lazy" alt height="211" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-6.png" width="646"></p>
<p align="center"><em>The pile of bills on the left seems at first glance more valuable than the bill alone on the right.</em></p>
<h2>Scaling & dimensions</h2>
<p><strong>The scale of the object is super important in VR</strong>. We had trouble with this at the beginning of the project. We didn’t have a realistic scale for each object. The texture patterns were too large, the ball and rackets were gigantic, and the walls were not in believable proportions. So, we started to re-scale each object to realistic dimensions. With the right sizes of props and environments, it immediately feels more immersive. Once we got realistic dimensions, we started to adjust the scale of the objects a little bit and ended up with a big ball and a bigger racket. The ball got bigger to be easier to hit and more visible in the action. The racket was extended to hide the cheating we did with the colliders.</p>
<p align="center"><img loading="lazy" alt height="240" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-4.gif" width="480"></p>
<h2>Shake it!</h2>
<p>Camera shake is a very useful tool to make a game feel more enjoyable. It’s easy to do and we can modify the shake to get a wide range of different effects. But in VR, camera shake is not as useful as it is in PC/Consoles/Mobile games. It can produce disturbing effects and we obviously didn’t want that. But we wanted something similar to emphasize the destruction of bricks. We first tried to shake up the “world” around the player. But it didn’t feel as good as we thought it would, so we found another solution: <strong>shake only the wall</strong>!</p>
<p>The effect is very subtle and almost only visible in VR. We found that <strong>shaking small parts of the world/environment</strong> can be a great way to replace our precious camera shake in VR.</p>
<h2>Usual polished effects</h2>
<p>In addition, we used the usual effects (such as post-processing, particles, etc.) to make each player’s action more enjoyable and spectacular.</p>
<p>Each effect has only one purpose: to communicate a single piece of information to the player. But this will be explained in detail in the process part.</p>
<p>To work on the feel of the game, I used a very simple process that I apply to every game I work on.</p>
<h2>Atomic gameplay info list</h2>
<p>First, I start by <strong>making a list of all the gameplay information</strong> at an atomic level that I need to communicate to the player. By atomic level, I mean that I will break down each simple gameplay information into smaller pieces.</p>
<p><em>For example, I need to communicate the movement of the ball. At the atomic level, it should be something like the ball’s speed, trajectory, impact point, and so on.</em></p>
<p align="center"><img loading="lazy" alt height="399" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-7.png" width="646"></p>
<p>Making this list let me <strong>think about what needs to be communicated</strong>, what needs to be hidden and how much details is needed.</p>
<p>To do this, I <strong>evaluate each gameplay information according to a criterion of precision</strong>: on a scale of 0 to 5. 0 meaning that the gameplay information must be hidden and 5 meaning that it must be extremely precise (like displaying HP as big numbers on top of a huge health bar in a HUD).</p>
<p align="center"><img loading="lazy" alt height="209" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-8.png" width="311"></p>
<h2>List the ways to communicate</h2>
<p>Once I have a list with all the gameplay information I need to communicate, I think about all the possible ways to communicate those info. I always try to put too many things in my list so I can make choices later on. We never have the time and/or money to do everything. So, I always have to cut things and that’s why I evaluated each piece of gameplay information according to a criterion of precision. This helps me to choose the gameplay info that needs more production and testing than another. But in general, and depending on the importance of the gameplay info, the more ways you have to communicate, the better. Another useful tip is to have a minimum of two communication channels (visual, sound, haptics, etc.) for each piece of critical gameplay info (Above or equal to 3).</p>
<h3><big>To sum up:</big></h3>
<ul>
<li>Make a <strong>list of all the gameplay information</strong> at the most micro level possible</li>
<li><strong>Determine the importance</strong> of each gameplay information</li>
<li>Lists all the<strong> possible ways to communicate gameplay info</strong></li>
<li><strong>Sort according to the precision needed each gameplay information</strong> with the time/budget available</li>
<li>Make sure that each critical gameplay <strong>information uses a minimum of 2 different communication channels</strong></li>
<li><strong>Never hesitate to do too much</strong>, even if it means reducing the intensity of the effects later on</li>
</ul>
<p>Designing Quash was not easy, we struggled a lot to find a clear design direction and we discovered many problems with VR that we were not aware of before we started development. And this article doesn’t mention another beast we had to deal with: multiplayer.</p>
<p>On top of that, the Covid-19 pandemic had a big negative impact on our production because not everyone on the team had VR headsets at home. In the end, we managed to overcome a lot of these problems and I’m really happy to see Quash on Steam. But it’s not over yet and we still have a lot of things to improve thanks to the feedback from our community.</p>
<p>To conclude this article, I’d like to thank the whole Quash team:</p>
<p>Francois, Timothée & Alexis, our dear brave programmers.</p>
<p>Timothé and Tristan, my design teammates <3.</p>
<p>Geoffrey, our producer and great mail master.</p>
<p>Sonia, for her wonderful VFXs</p>
<p>And finally, Pierrick for his incredible SFXs and his awesome soundtrack!</p>
<p>But mostly thanks to you who read this article to the end. I hope there are some interesting and potentially useful things for your projects. <strong>I can’t wait to play your games!</strong></p>
</p></div>
<hr>
<div class="hide-phone">
<h3>Related Jobs</h3>
<div class="stories_item">
<div class="thumb"><a href="https://jobs.gamasutra.com/job/camera-designer-agoura-hills-california-34540"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-9.png" alt="Visual Concepts" width="120"></a></div>
<div class="title"> <strong> Visual Concepts — Agoura Hills, California, United States <br />[09.18.20] </strong> <br /><a href="https://jobs.gamasutra.com/job/camera-designer-agoura-hills-california-34540">Camera Designer</a> </div>
</p></div>
<div class="stories_item">
<div class="thumb"><a href="https://jobs.gamasutra.com/job/senior-cinematic-scripter-espoo-34551"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-5.gif" alt="Remedy Entertainment" width="120"></a></div>
</p></div>
<div class="stories_item">
<div class="thumb"><a href="https://jobs.gamasutra.com/job/senior-technical-designer-champaign-illinois-34566"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-1.jpg" alt="Deep Silver Volition" width="120"></a></div>
</p></div>
<div class="stories_item">
<div class="thumb"><a href="https://jobs.gamasutra.com/job/lead-level-designer-burbank-california-34561"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-2.jpg" alt="Insomniac Games" width="120"></a></div>
</p></div>
</p></div>
<hr></div>
<p> <!-- InstanceEndEditable --> </div>
<p><!--end contentbox-->
</div>
<p><!--end span-16--> </div>
<p> <br class="clear"> </div>
<p><!--end span-21--> <!--begin right sidebar--> <!--end right sidebar--> <!– </div>
<p> Extra Div –> <!-- Beginning Sync AdSlot 21 for Ad unit Gamasutra//independentgames ### size: [[8,2]] --> <!-- End AdSlot 21 --> <!-- Beginning Sync AdSlot 22 for Ad unit Gamasutra//independentgames ### size: [[8,4]] --> <!-- End AdSlot 22 --> <!-- Beginning Sync AdSlot 23 for Ad unit Gamasutra//independentgames ### size: [[4,4]] --> <!-- End AdSlot 23 --> <br class="clear"></p></div>
<p><!--end content-body-wrapper--> </div>
<p><!--end container--><br />
<!--begin footer--> <!--end footer--> <!-- SiteCatalyst code version: H.21.
Copyright 1996-2010 Adobe, Inc. All Rights Reserved
More info available at http://www.omniture.com --> <a href="http://www.omniture.com" title="Web Analytics"><img loading="lazy" src="https://www.sickgaming.net/blog/wp-content/uploads/2020/09/blog-designing-a-thrilling-enjoyable-arcade-experience-for-vr-6.gif" height="1" width="1" border="0" alt></a><!--/DO NOT REMOVE/--><br />
<!-- End SiteCatalyst code version: H.21. --> <!-- Begin ADSNATIVE Code --> <!-- End ADSNATIVE Code --> <!--Begin Ad script for pixel --> <!--END Ad script for pixel --></p>
</div>
https://www.sickgaming.net/blog/2020/09/...ce-for-vr/