{"id":168,"date":"2023-02-17T15:21:35","date_gmt":"2023-02-17T15:21:35","guid":{"rendered":"https:\/\/projects.etc.cmu.edu\/ace-breakers\/?p=168"},"modified":"2023-02-27T03:32:39","modified_gmt":"2023-02-27T03:32:39","slug":"week-5-first-demo","status":"publish","type":"post","link":"https:\/\/projects.etc.cmu.edu\/ace-breakers\/week-5-first-demo\/","title":{"rendered":"Week 5: First Demo"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">This week we had our process grade meetings with Jonathan. Through the discussion, we realized that although the project is quite self-explanatory regarding what should be done, we still have some divergence on what features the game will ultimately have.  So the first thing we did for this week was to host a team meeting to settle down what features are feasible that we could deliver and make sure everyone was on the same page.<\/p>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>Post-Halves Direction<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Game Elements\n<ul class=\"wp-block-list\">\n<li>Systems\n<ul class=\"wp-block-list\">\n<li>Create rooms &#8211; Singles &amp; Doubles<\/li>\n\n\n\n<li>Training Mode<\/li>\n\n\n\n<li>Tutorial &#8211; after 4.1st<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Gameplay\n<ul class=\"wp-block-list\">\n<li>Normal hits<\/li>\n\n\n\n<li>Techniques\n<ul class=\"wp-block-list\">\n<li>Topspin\/Backspin<\/li>\n\n\n\n<li>Curve<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Skills<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Avatar movement &#8211; <strong>Teleport + Joystick<\/strong>\n<ul class=\"wp-block-list\">\n<li>Why use both\n<ul class=\"wp-block-list\">\n<li>TP for major movements and Joysticks for minor adjustments<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Where <\/strong>to tp the avatars to\n<ul class=\"wp-block-list\">\n<li>An estimated position behind the bounce<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Will the player be TPed if the ball is <strong>out<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Yes<\/strong>, we want to allow players to make <strong>mistakes<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>How to account for the <strong>crossovers<\/strong>\n<ul class=\"wp-block-list\">\n<li>Do not TP if the ball is obviously beyond reach, and let the player know by UI<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What if the player wants to <strong>volley<\/strong>?\n<ul class=\"wp-block-list\">\n<li>A) Based on where the ball lands and the avatar\u2019s current position, the system judges whether the player should volley or not and TP to the corresponding position<\/li>\n\n\n\n<li>B) Players use one button on the controller to switch between regular play&nbsp; mode and net-play mode<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>What about <strong>doubles<\/strong>?\n<ul class=\"wp-block-list\">\n<li>Basically the same logic but the system should judge who should hit the ball<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>Updates<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Design<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On the design side, we concentrate on optimizing the singles game experience. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We noticed through our internal playtesting, that the ball direction after swinging is always leaning toward one side (depending on your handedness) because the formula we used didn&#8217;t account for the natural tilt of the paddles when held by hands. So we added a mapping layer to the formula to make sure that it&#8217;s equally possible to hit the ball to every direction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We also improved the ball physics to account for the spinning of the balls. Judging by the relative velocity of the paddle to the ball and the paddle angle, we are capable of determining whether the spin of the ball is topspin or backspin, which will further influence the ball&#8217;s movement after the bounce.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Programming<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Programmers are working on merging the ball physics and rule together into the networked scene for the singles game. We did not foresee how difficult it was to incorporate the game manager&#8217;s logic into the Photon framework and thus resulted in a delay for the 2-week goal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Art<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-content\/uploads\/2023\/02\/unnamed.png\" alt=\"\" class=\"wp-image-173\" width=\"842\" height=\"396\" srcset=\"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-content\/uploads\/2023\/02\/unnamed.png 512w, https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-content\/uploads\/2023\/02\/unnamed-300x141.png 300w\" sizes=\"auto, (max-width: 842px) 100vw, 842px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-content\/uploads\/2023\/02\/unnamed-1.png\" alt=\"\" class=\"wp-image-174\" width=\"840\" height=\"394\" srcset=\"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-content\/uploads\/2023\/02\/unnamed-1.png 512w, https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-content\/uploads\/2023\/02\/unnamed-1-300x141.png 300w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-content\/uploads\/2023\/02\/unnamed-2.png\" alt=\"\" class=\"wp-image-175\" width=\"840\" height=\"395\" srcset=\"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-content\/uploads\/2023\/02\/unnamed-2.png 512w, https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-content\/uploads\/2023\/02\/unnamed-2-300x141.png 300w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>This week we had our process grade meetings with Jonathan. Through the discussion, we realized that although the project is quite self-explanatory regarding what should be done, we still have some divergence on what features the game will ultimately have. So the first thing we did for this week was [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-168","post","type-post","status-publish","format-standard","hentry","category-blogs"],"_links":{"self":[{"href":"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-json\/wp\/v2\/posts\/168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-json\/wp\/v2\/comments?post=168"}],"version-history":[{"count":3,"href":"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-json\/wp\/v2\/posts\/168\/revisions"}],"predecessor-version":[{"id":177,"href":"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-json\/wp\/v2\/posts\/168\/revisions\/177"}],"wp:attachment":[{"href":"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-json\/wp\/v2\/media?parent=168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-json\/wp\/v2\/categories?post=168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/ace-breakers\/wp-json\/wp\/v2\/tags?post=168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}