{"id":2859,"date":"2021-04-28T17:52:02","date_gmt":"2021-04-28T21:52:02","guid":{"rendered":"https:\/\/dems.asc.ohio-state.edu\/?p=2859"},"modified":"2021-04-28T17:54:29","modified_gmt":"2021-04-28T21:54:29","slug":"cycles-23-sara","status":"publish","type":"post","link":"https:\/\/dems.asc.ohio-state.edu\/?p=2859","title":{"rendered":"Cycles 2+3 (Sara)"},"content":{"rendered":"\n<iframe loading=\"lazy\" src=\"https:\/\/itch.io\/embed\/1019509\" height=\"167\" width=\"552\" frameborder=\"0\"><a href=\"https:\/\/goodcouch.itch.io\/rock-stackin\">Rock Stackin&#039; by goodcouch<\/a><\/iframe>\n\n\n\n<p><strong>Intent<\/strong><\/p>\n\n\n\n<p>Originally, I intended to call this project \u201cCliffside Cairn.\u201d&nbsp; My goal was to build an ambient, meditative game in which the user could pick up and stack rocks as a way to practice slowing down and idly injecting a moment of calm into the churn of maintaining a constant online presence in the current global pandemic.&nbsp; I took inspiration from the Cairn Challenges present in <em>Assassin\u2019s Creed: Valhalla<\/em>.&nbsp; While I haven\u2019t been able to maintain the attention necessary to tackle a new, robust open-world game in some time, my wife has been relishing her time as a burly viking bringing chaos down upon the countryside.&nbsp; Whenever she stumbled upon a pile of rocks on a cliff, however, she handed the controller over to me.&nbsp; The simplicity of the challenge and the total dearth of stakes was a relief after long days.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/sLPK_Jk7CAiYUGNb5mKg3EDHE2c7nMclpcEK04LrA0HDd7b7g3eab9rQh6dSJRJvsGtrehIRiP7WQiSUjfnGunHrhoWgymBhfpcwzIqAqoM_AQtep0iRJMS1F3QNzXp6Vlhbq94A\" alt=\"\"\/><\/figure>\n\n\n\n<p>As the prototype took shape, though, I realized that no amount of pastels or ocean sounds could dispel the rock stacking hellscape I had inadvertently created.&nbsp; I showed an early version to a graduate peer, and they laughed and said I\u2019d made a punishment game.&nbsp; Undeterred, I leaned into the absurdity and torment of watching teetering towers tumble.&nbsp; I slapped the new name <em>Rock Stackin\u2019<\/em> on the project and went all in.<\/p>\n\n\n\n<p><strong>Process<\/strong><\/p>\n\n\n\n<p>Initially, I sought to incorporate Leap Motion controls into the Godot Game Engine, so the user could directly manipulate 3D physics objects.&nbsp; To do so, I first took a crash course in Godot and created a simple 3D game based on a tutorial series.&nbsp; With a working understanding of the software under my belt, I felt confident I could navigate the user interface to set up a scene of 3D rock models.&nbsp; I pulled up the documentation I had barely skimmed the week before about setting up Leap Motion in Godot\u2014only to find that the solution required a solid grasp of Python.&nbsp;&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/QQeRepUidgFSnYWQOihLatJ5682rJqGdQQua4VUhctlzJkOWfcvms6AxFXVuBj_ty_UTQmHCXGF3Ejint-pZGc9-_ygku2QCWUmjJuWyWF0lppA12meXYokVsBj2ZC31i6DtQF6r\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/-qTKZ42l_FVvgn5HotFIqAWRui6zvnqTPY9pNDlH_X-YaNquhwSTphlqOYO1-_sG5Dl0NeciHxyV_ju22I0SzEhmVCwMMIRI96S61xIzVH9usN5YPZOdL_fJfXvC8QifclLdr11c\" alt=\"\"\/><\/figure>\n\n\n\n<p>After it became clear that I would not be able to master Python in a week, I briefly toyed around with touch-and-drag controls as an alternative before setting Godot aside and returning to Isadora.&nbsp; Establishing Leap Motion controls in Isadora was straightforward; establishing physics in Isadora was not.&nbsp; Alex was remarkably patient as I repeatedly picked his brain for the best way to create a structure that would allow Isadora to recognize: 1. When a rock was pressed, 2. When a rock was released, and 3. Where the rock should fall when it was released.&nbsp; With his help, we set up the necessary actors; however, incorporating additional rocks presented yet another stumbling block.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/klrLkugPwWvkDxa-fWYgZlEv6ZriJxKNksry2dYNEpFvcHaYJCAOP3evtfEbIzrcjYmj8cqjUQ6RhxmMa6Q-XE-LnOFi9hmFraECM3WRt1QFJ-zQf4W_bXG7Ein8-ywEkqDdZPDW\" alt=\"\"\/><\/figure>\n\n\n\n<p>I returned to my intent: stack rocks for relaxation.&nbsp; Nowhere in that directive did I mention that I needed to stack rocks with the Leap Motion.&nbsp; Ultimately, I wanted to drag and drop physics objects.&nbsp; That was not intuitive in Isadora, but it was in Godot, so at the 11th hour, I returned to Godot because I believed it was the appropriate tool for the job.<\/p>\n\n\n\n<p><strong>Challenges<\/strong><\/p>\n\n\n\n<p>As a designer, I know the importance of iteration.&nbsp; Iterate, iterate, iterate\u2014then lock it in.&nbsp; The most significant challenge I faced with this effort was the \u201clocking it in\u201d step.&nbsp; I held onto extraneous design requirements (i.e., incorporate Leap Motion controls) much longer than I should have.&nbsp; If I had reflected on the initial question and boiled it down to its essential form sooner, I could have spent more time in Godot and further polished the prototype in time for the final presentation.<\/p>\n\n\n\n<p>Additionally, when I did decide to lean into the silliness of the precariousness of the rock stack, I decided I wanted to insert a victory condition.&nbsp; If the user could indeed create a rock stack that stayed in place for x amount of time, I wanted to propel them to a \u201cYou Win!\u201d screen.&nbsp; I thought I would replicate the boundary reset script I successfully implemented, but I realized one could game the system just by dragging an object into the Area2D node.<\/p>\n\n\n\n<p>Finally, while I did incorporate ambient wave sounds, I struggled to add additional sound effects.&nbsp; The rock splash sound was only supposed to trigger when it hit the water, but it fired when the scene began as well.&nbsp; I faced similar challenges when trying to add rock collision sound effects.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/Em3c8ri0jTVKwqGqzmxrvqdyuKLt25XOFjau5hTJZzrmQOxXATOHqUu3nbZ16FapAwxHdTgUpOpe07u0A89Sm18Q0I3xuSM3XrczVtyS3aDApsmqbv9PtUamsbdmdNVPLL2CjAQB\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong>Accomplishments<\/strong><\/p>\n\n\n\n<p>Challenges aside, I\u2019m incredibly pleased with the current prototype.\u00a0 I successfully implemented code that allowed for dragging and dropping of physics objects that interacted with colliders.\u00a0 Without that, <em>Rock Stackin\u2019<\/em> would have been impossible.\u00a0 Furthermore, I established a scene reset script if the user flings a rock off the edge.\u00a0 At first, I prevented the user from being able to drag a user off the screen with the inclusion of multiple invisible colliders.\u00a0 However, I wanted <em>some<\/em> tension to emerge from the potential of a tumbling tower, and a reset seemed like a gentle push.\u00a0 Lastly, I\u2019m pleased with the rock colliders I added.\u00a0 Capsule colliders caused jitter, while rectangle colliders provided no challenge.\u00a0 <em>Multiple <\/em>rectangle colliders scaled and rotated to fit the rocks I had drawn and led to a pleasing amount of collision and groundedness.\u00a0<\/p>\n\n\n\n<p><strong>Observations<\/strong><\/p>\n\n\n\n<p>As I mentioned previously, I was using software not ideally suited for my needs.&nbsp; My main observation stems from that realization:<\/p>\n\n\n\n<p>Go where the water flows.<\/p>\n\n\n\n<p>Identify the hierarchy in your design goals and use the best tools for the job.&nbsp; I spent a while bobbing against the shore before I pushed myself back into the stream to where the water flowed.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"681\" src=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-28-at-2.50.29-PM-1024x681.png\" alt=\"\" class=\"wp-image-2861\" srcset=\"https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-28-at-2.50.29-PM-1024x681.png 1024w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-28-at-2.50.29-PM-300x199.png 300w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-28-at-2.50.29-PM-768x511.png 768w, https:\/\/dems.asc.ohio-state.edu\/wp-content\/uploads\/2021\/04\/Screen-Shot-2021-04-28-at-2.50.29-PM.png 1083w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><a href=\"https:\/\/goodcouch.itch.io\/rock-stackin\" data-type=\"URL\" data-id=\"https:\/\/goodcouch.itch.io\/rock-stackin\">Link to <em>Rock Stackin&#8217;<\/em><\/a><\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Rock Stackin&#039; by goodcouch Intent Originally, I intended to call this project \u201cCliffside Cairn.\u201d&nbsp; My goal was to build an ambient, meditative game in which the user could pick up and stack rocks as a way to practice slowing down and idly injecting a moment of calm into the churn of maintaining a constant online [&hellip;]<\/p>\n","protected":false},"author":62,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,54],"tags":[58],"class_list":["post-2859","post","type-post","status-publish","format-standard","hentry","category-assignments","category-sara-c","tag-godot"],"_links":{"self":[{"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/posts\/2859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/users\/62"}],"replies":[{"embeddable":true,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2859"}],"version-history":[{"count":3,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/posts\/2859\/revisions"}],"predecessor-version":[{"id":2864,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=\/wp\/v2\/posts\/2859\/revisions\/2864"}],"wp:attachment":[{"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dems.asc.ohio-state.edu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}