{"id":109,"date":"2023-03-17T16:06:19","date_gmt":"2023-03-17T20:06:19","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/?p=109"},"modified":"2023-03-17T16:06:19","modified_gmt":"2023-03-17T20:06:19","slug":"silly-little-guys-4","status":"publish","type":"post","link":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/?p=109","title":{"rendered":"Silly Little Guys #4"},"content":{"rendered":"\n<p>It\u2019s Alpha Week ladies and germs! This week was an absolute sprint to the finish as we pushed, pulled, and cried over our computers.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"128\" height=\"105\" src=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/image-7.png\" alt=\"\" class=\"wp-image-110\" \/><\/figure>\n\n\n\n<p>While we initially set out to have our first quest done by the Alpha Presentation, we sadly missed the mark! We made incredible progress with art assets (UI, Character Vectorization, Map, and 3d models) but we had issues with getting the build to function as both the camera and dialogue system were refusing to function.<\/p>\n\n\n\n<p>With all that being said, we ultimately triumphed at the last moment and were able to scrounge everything together. The camera functioned and displayed characters correctly, the dialogue functions, and the UI is interactive. As well, players can explore campus and encounter ghosts. We have the building blocks to finish our first quest, we just need to connect everything together.<\/p>\n\n\n\n<p>Now let\u2019s get into updates section by section!<\/p>\n\n\n\n<p>This week, programmers switched to the production branch, and we started working on core game scripts and (almost) finished the first quest.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Map Programming<\/strong><\/h3>\n\n\n\n<ul>\n<li>Location tracking works, with boundaries at the edges of CMU campus and an &#8220;out of bounds&#8221; detection. We prompt the user for location permissions when first opened.<\/li>\n\n\n\n<li>Map normalizes to player location (if within bounds).<\/li>\n\n\n\n<li>Touch movement implemented to view the entire map<\/li>\n\n\n\n<li>NPC detection implemented for Daniel (Postman); when the player is close to a NPC, there is a pop-up option to talk to the NPC and an ingress into the AR works.<\/li>\n\n\n\n<li>Map UI implemented for inventory and notebook.<\/li>\n<\/ul>\n\n\n\n<p>Map Location demo:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/demomap.mov\"><\/video><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Map UI demo:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/RPReplay_Final1679076412.mov\"><\/video><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Backend Programming<\/h3>\n\n\n\n<p>In terms of backend programming, we were able to create basic data structures to represent the ghosts, quests, and items the player can acquire. Currently, the data structures only exist and do not serve a functional purpose, but this will be added for Beta.<\/p>\n\n\n\n<p>Additionally, several task-specific managers were created to handle tasks such as switching between scenes, updating quest statuses, and handling UI. These are the <strong>GameSceneManager<\/strong>, <strong>GameManager<\/strong>, and <strong>UIManager<\/strong>, respectively. We also created an <strong>ARManager<\/strong> to handle the AR functions of the game, specifically in the AR scene.<\/p>\n\n\n\n<p>The Game Manager is set up to keep track of whether or not the player has completed the tutorial. Basic saving functions were also implemented into the game, but this is not yet extensive. The Game Manager also spawns the correct ghost, based on the player\u2019s location and quest completion states.<\/p>\n\n\n\n<p>The UI Manager is responsible for making the UI functional. Currently, structure exists for modifying settings, though settings themselves haven\u2019t been implemented. It does, however, toggle displaying the inventory and the notebook.<\/p>\n\n\n\n<p><strong>AR Scene Programming<\/strong><\/p>\n\n\n\n<p>For the AR Scene, we created a simple system that keeps track of the dialogue and advances the dialogue whenever the screen is pressed. The dialogue is handled by the <strong>DialogueManager.<\/strong> The Dialogue Manager keeps track of the dialogue for two people in a conversation, in our Alpha these were the Postman and the Player. The Dialogue Manager also has a list of boolean values; these represent when to switch who is talking in the conversation.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/screen-20230317-1348592.mp4\"><\/video><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Art<\/strong><\/h3>\n\n\n\n<p><strong>3D Models<\/strong><\/p>\n\n\n\n<p>For the Alpha test, we build the 3D assets to embed into side quest: Daniel-postman and letter &amp; envelop. We also build the lil guy, Rose, and other items in advance to support next steps in Beta test. Some need to do for next steps that haven\u2019t finished in Alpha:<\/p>\n\n\n\n<ul>\n<li>Refine the materials and shader to make Characters look better in AR view<\/li>\n\n\n\n<li>Character\u2019s animation<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"858\" height=\"1024\" src=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.01.20-PM-858x1024.png\" alt=\"\" class=\"wp-image-113\" srcset=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.01.20-PM-858x1024.png 858w, https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.01.20-PM-251x300.png 251w, https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.01.20-PM-768x917.png 768w, https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.01.20-PM-1287x1536.png 1287w, https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.01.20-PM.png 1292w\" sizes=\"(max-width: 858px) 100vw, 858px\" \/><\/figure>\n\n\n\n<p><strong>2D Vectorization<\/strong><\/p>\n\n\n\n<p>We decided to make all of the characters not only 3d, but 2d as well. These designs will be utilized when players are talking to the characters (dialogue voice) or trying to find them on the map (nearby ghosts). We plan to digitize more of these ghosts so that the visual language is consistent.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"461\" src=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.01.44-PM-1024x461.png\" alt=\"\" class=\"wp-image-114\" srcset=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.01.44-PM-1024x461.png 1024w, https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.01.44-PM-300x135.png 300w, https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.01.44-PM-768x345.png 768w, https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.01.44-PM.png 1196w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>UI<\/strong><\/p>\n\n\n\n<p>We made lots of big leaps in UI this week! We created a prototype in Figma to show how the initial encounter with Daniel the postman would go. Players can approach him on the map, talk to him, and show you how to play the game. He would walk you through aspects of the game like the journal and the inventory system.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1005\" height=\"1024\" src=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.02.12-PM-1005x1024.png\" alt=\"\" class=\"wp-image-115\" srcset=\"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.02.12-PM-1005x1024.png 1005w, https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.02.12-PM-295x300.png 295w, https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.02.12-PM-768x782.png 768w, https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-17-at-4.02.12-PM.png 1290w\" sizes=\"(max-width: 1005px) 100vw, 1005px\" \/><\/figure>\n\n\n\n<p>And that\u2019s it for this week! We hope you enjoyed it!<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>It\u2019s Alpha Week ladies and germs! This week was an absolute sprint to the finish as we pushed, pulled, and cried over our computers. While we initially set out to have our first quest done by the Alpha Presentation, we sadly missed the mark! We made incredible progress with art assets (UI, Character Vectorization, Map, [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/index.php?rest_route=\/wp\/v2\/posts\/109"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/index.php?rest_route=\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=109"}],"version-history":[{"count":1,"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/index.php?rest_route=\/wp\/v2\/posts\/109\/revisions"}],"predecessor-version":[{"id":117,"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/index.php?rest_route=\/wp\/v2\/posts\/109\/revisions\/117"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/53-472\/s2023\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}