{"id":153,"date":"2022-03-18T12:12:53","date_gmt":"2022-03-18T16:12:53","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/?p=153"},"modified":"2022-03-18T12:12:53","modified_gmt":"2022-03-18T16:12:53","slug":"parasite-week-7","status":"publish","type":"post","link":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/?p=153","title":{"rendered":"Parasite &#8211; Week 7"},"content":{"rendered":"\n<p>We finally made it &#8211; a complete game loop! This week was another big batch of technical additions and improvements. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Programming<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Bug Fixes<\/h3>\n\n\n\n<p>There were a ton of miscellaneous bugs and issues that have been fixed &#8211; the parasite jump motion and physics has been made a lot more reliable, and network issues with duplicate objects have finally been ironed out. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Win Conditions<\/h3>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/wp-content\/uploads\/2022\/03\/Screen_Recording_2022-03-18_at_11.39.42_AM.mov\"><\/video><\/figure>\n\n\n\n<p>We added a universal game-end state that is activated when all local and global conditions are fulfilled for the current human player. The UI doesn&#8217;t exist yet but now we know the system works and can start iterating on interesting tasks.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Tasks &#8211; Richard<\/h3>\n\n\n\n<p>Designing the tasks for the human player to accomplish while running around the spaceship is key to making sure the player has goals they want to accomplish while they&#8217;re in the hot seat &#8211; and doing them should give the other players time to potentially hijack the player. <\/p>\n\n\n\n<p>I spent sometime making up some basic wall panels to test that the conditions work for the human player (pardon the lighting): &#8211; After making sure that works, I moved on to more design work &#8211; the goal is for these games to be instantiable, so they have to be able to dropped into a level and work out of the box. Furthermore, &#8211; they should be simple enough that the only necessary RPC&#8217;s should be task failure\/completion &#8211; if the player gets hijacked, they should be interrupted on the spot and the game\/task gracefully close &#8211; they should varied enough to not get tedious. The current goal is to have a mix of more mundane tasks that might just involve standing in one spot (something like <a rel=\"noreferrer noopener\" href=\"https:\/\/www.youtube.com\/watch?v=yRCoQgUNTxk\" target=\"_blank\">https:\/\/www.youtube.com\/watch?v=yRCoQgUNTxk<\/a>) survivor gameplay but for nowhere near as long), and others might be more involved, such as the minigames in Among Us or the lockpicking from the Elder Scolls games. Implementing a game inside of a game presents an interesting challenge to tackle in terms of managing game states inside of another game, but hopefully as long as we keep the games simple it shouldn&#8217;t be difficult to implement. I&#8217;m making headway into a simple DNA matching game where the player is presented with a short DNA sequence and is told to pick the right match out of 3 options right now to lay the foundation for more games in the future.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Level Components<\/h3>\n\n\n\n<p>The level components have been fully integrated into the prefab system &#8211; now all we need to do to make the level look nicer is replace the meshes on these components. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"568\" height=\"390\" src=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/wp-content\/uploads\/2022\/03\/image-4.png\" alt=\"\" class=\"wp-image-161\" srcset=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/wp-content\/uploads\/2022\/03\/image-4.png 568w, https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/wp-content\/uploads\/2022\/03\/image-4-300x206.png 300w\" sizes=\"(max-width: 568px) 100vw, 568px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Parasite Jump UI<\/h3>\n\n\n\n<p>We have a line renderer component in the works which generates an arc which shows the player their exact trajectory they would follow with a jump in a specific direction and specific power. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sound<\/h2>\n\n\n\n<p>Being able to properly iterate on sound has been difficult so far since the fundamental game loop has still been coming together, so this is something that will expand a lot more once we pass alpha and start much more vigorously play testing.<\/p>\n\n\n\n<p>But in the meantime &#8211; here&#8217;s some cool background music Ian has put together<\/p>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/wp-content\/uploads\/2022\/03\/ParasiteBgmSample.mp3\"><\/audio><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Art<\/h2>\n\n\n\n<p>We&#8217;ve integrated the latest parasite model into the game &#8211; its quite fun to see it bounce around after the jump &#8211; I&#8217;m personally really looking forward to getting a proper jumping\/falling animation in for it. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"751\" height=\"480\" src=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/wp-content\/uploads\/2022\/03\/image-5.png\" alt=\"\" class=\"wp-image-164\" srcset=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/wp-content\/uploads\/2022\/03\/image-5.png 751w, https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/wp-content\/uploads\/2022\/03\/image-5-300x192.png 300w\" sizes=\"(max-width: 751px) 100vw, 751px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>We finally made it &#8211; a complete game loop! This week was another big batch of technical additions and improvements. Programming Bug Fixes There were a ton of miscellaneous bugs [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[6,5],"tags":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/index.php?rest_route=\/wp\/v2\/posts\/153"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=153"}],"version-history":[{"count":1,"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/index.php?rest_route=\/wp\/v2\/posts\/153\/revisions"}],"predecessor-version":[{"id":165,"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/index.php?rest_route=\/wp\/v2\/posts\/153\/revisions\/165"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2022\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}