{"id":315,"date":"2018-11-05T16:35:47","date_gmt":"2018-11-05T16:35:47","guid":{"rendered":"http:\/\/cliffnordman.com\/blog\/?p=315"},"modified":"2019-02-26T11:26:36","modified_gmt":"2019-02-26T11:26:36","slug":"procjam-7dfps-2018-photo-copy-final-push","status":"publish","type":"post","link":"https:\/\/cliffnordman.com\/blog\/2018\/11\/05\/procjam-7dfps-2018-photo-copy-final-push\/","title":{"rendered":"PROCJAM \/ 7DFPS 2018, Photo Copy: final push"},"content":{"rendered":"<p><a href=\"http:\/\/www.procjam.com\/\">PROCJAM<\/a>, <a href=\"http:\/\/7dfps.com\/\">7DFPS<\/a><\/p>\n<p><a href=\"https:\/\/cliffnordman.com\/blog\/2018\/10\/23\/procjam-2018-photo-copy-day-1\/\">Day 1<\/a>, <a href=\"http:\/\/cliffnordman.com\/blog\/2018\/10\/25\/procjam-2018-photo-copy-day-2\/\">Day 2<\/a>, <a href=\"http:\/\/cliffnordman.com\/blog\/2018\/10\/25\/procjam-2018-photo-copy-day-3\/\">Day 3<\/a>, <a href=\"http:\/\/cliffnordman.com\/blog\/2018\/10\/25\/procjam-7dfps-2018-day-4\/\">Day 4<\/a>, <a href=\"https:\/\/cliffnordman.com\/blog\/2018\/10\/26\/procjam-7dfps-2018-day-5\/\">Day 5<\/a>, <a href=\"https:\/\/cliffnordman.com\/blog\/2018\/10\/26\/procjam-7dfps-2018-day-6\/\">Day 6]<\/a><\/p>\n<h2 style=\"text-align: left;\"><a href=\"https:\/\/cliffordius.itch.io\/photo-copy\">Play Photo Copy in your browser!<\/a><\/h2>\n<p>&nbsp;<\/p>\n<p>Time was almost up, so I concentrated on getting the game into a playable state.\u00a0 After breaking the AI photographer the day before, I needed a quick way to make it functional again. I added an invisible box around the extents of each landmark and had the AI photographer point at that.\u00a0 Alas, no understanding of symmetry, or lining up multiple landmarks in one image, or any other things I was hoping to implement at the start of the project.<\/p>\n<p>I also cleaned up the menus and functionality to start and end the game.\u00a0 The introduction used to be a separate scene, but I pulled it into the main scene.\u00a0 Less to keep track of, and it let the player look at the instructions while playing by hitting Escape.\u00a0 Alas, walking through the exit portal, then canceling the exit UI was causing trouble, and it was faster to cut the portal than to debug it.\u00a0 RIP Exit Portal. I still believe in diagetic UI.<\/p>\n<p>At this point the player could start the game, enter the world, see photos from the AI photographer, take photos, have them scored, then leave the game.\u00a0 I exported a copy and uploaded it to itch.io, just so I&#8217;d have a working version to fall back on.\u00a0 I still wanted to add features.<\/p>\n<p>The inspiration for this entire Black Rock City generator was a camp name generator written in Tracery. Since Unity supports JavaScript, I tried just putting the Tracery files in my Unity project, but there were some errors.\u00a0 Fortunately, <a href=\"https:\/\/twitter.com\/maxkreminski\">Max Kreminski<\/a> had ported Tracery to C# specifically for use in Unity. (<a href=\"https:\/\/github.com\/mkremins\/TracerySharp\">TracerySharp<\/a> on github) Once I could generate camp names in Unity, I assigned each city block a name.\u00a0 When the user &#8220;looked&#8221; at a camp (when a ray from the center of the screen intersected the block&#8217;s collider) the name would appear on screen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-316\" src=\"http:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/11\/campnames.png\" alt=\"\" width=\"960\" height=\"599\" srcset=\"https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/11\/campnames.png 960w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/11\/campnames-300x187.png 300w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/11\/campnames-768x479.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>This added a lot of character to the city.\u00a0 Just running from camp to camp, reading the amusing names was fun.\u00a0 This technique was easily extended to the street signs as well, so the player could actually read the street signs by looking at the them, which really makes the city feel like a real place.<\/p>\n<p>My mind raced.\u00a0 Photos from the AI photographer could be annotated with hints, like, &#8220;Found this cool art piece on Echidna street&#8221;, &#8220;took this picture while chilling at the Undetectable Capitalism Dome&#8221;, &#8220;some guy told me this thing is called Normie Zone&#8221;\u00a0 Before I started that sub-project, I wanted to be sure that looking at things still worked when two cameras shared the same viewport.\u00a0 it seemed to work as expected in the editor, but I built an EXE to be sure.\u00a0 IT worked differently in the EXE.\u00a0 I built to WebGL, since most people would play it in the browser on itch.io, and it worked a third way!\u00a0 I did not have time to debug that and add all those new features, so stopped there.<\/p>\n<p>The first version that I uploaded to itch.io would be the final version.\u00a0 Rushing and stressing were against the spirit of PROCJAM, so I practiced the\u00a0 skill of knowing when to leave well enough alone.\u00a0 After I made peace with ending in a stable state instead of working up to the deadline, 7DFPS extended the deadline! Self-control was required to avoid diving in once more.<\/p>\n<h2 style=\"text-align: left;\"><a href=\"https:\/\/cliffordius.itch.io\/photo-copy\">Play Photo Copy in your browser!<\/a><\/h2>\n","protected":false},"excerpt":{"rendered":"<p>PROCJAM, 7DFPS Day 1, Day 2, Day 3, Day 4, Day 5, Day 6] Play Photo Copy in your browser! &nbsp; Time was almost up, so I concentrated on getting the game into a playable state.\u00a0 After breaking the AI photographer the day before, I needed a quick way to make it functional again. I &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/cliffnordman.com\/blog\/2018\/11\/05\/procjam-7dfps-2018-photo-copy-final-push\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;PROCJAM \/ 7DFPS 2018, Photo Copy: final push&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,8],"tags":[],"class_list":["post-315","post","type-post","status-publish","format-standard","hentry","category-photography","category-programming"],"_links":{"self":[{"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/posts\/315"}],"collection":[{"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/comments?post=315"}],"version-history":[{"count":2,"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/posts\/315\/revisions"}],"predecessor-version":[{"id":436,"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/posts\/315\/revisions\/436"}],"wp:attachment":[{"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/media?parent=315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/categories?post=315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/tags?post=315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}