{"id":292,"date":"2018-10-25T07:09:08","date_gmt":"2018-10-25T07:09:08","guid":{"rendered":"http:\/\/cliffnordman.com\/blog\/?p=292"},"modified":"2019-04-02T11:17:46","modified_gmt":"2019-04-02T11:17:46","slug":"procjam-7dfps-2018-day-4","status":"publish","type":"post","link":"https:\/\/cliffnordman.com\/blog\/2018\/10\/25\/procjam-7dfps-2018-day-4\/","title":{"rendered":"PROCJAM \/ 7DFPS 2018: Day 4"},"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><\/p>\n<p>Building Burning Man is really fun, so I neglected the photography part of the game to generate even more types of things.\u00a0 I happen to have an extensive list of <a href=\"https:\/\/cliffnordman.com\/galleries\/?event=6&amp;year=&amp;sort=alpha&amp;author=\">galleries of photos from Burning Man<\/a>, so I perused a few of them to see what types of tents and vehicles people used in their camps.\u00a0 It turns out that&#8217;s the least interesting part of Burning Man.\u00a0 Most people photograph the huge installations, the mutant vehicles, or their friends, not the tent they sleep in 3 hours a day.<\/p>\n<p>I made a few tents, a small cargo truck, a &#8220;fifth wheel&#8221; trailer, and a school bus to put in camps, as well as a street sign for intersections.\u00a0 I had to look up dimensions, because I want these objects be the proper size in the world.\u00a0 I still create 3D models in Milkshape, a program I got almost 20 years ago to do Half-Life 1 mods.\u00a0 This encourages a low-poly, flat-shaded styles, since I don&#8217;t have the skills or the tools to make fancier objects.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-295\" src=\"http:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/structures-1024x390.png\" alt=\"\" width=\"700\" height=\"267\" srcset=\"https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/structures-1024x390.png 1024w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/structures-300x114.png 300w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/structures-768x293.png 768w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/structures.png 1029w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<p>Now that I have these objects, how do I place them into the city blocks I have defined?\u00a0 I have an algorithm for packing rectangles into a 2D space from last year&#8217;s PROCJAM entry: <a href=\"https:\/\/cliffordius.itch.io\/spaceship-wrecker\">Spaceship Wrecker<\/a>!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-133\" src=\"http:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2017\/11\/DeluxeScientists-1024x491.png\" alt=\"\" width=\"700\" height=\"336\" srcset=\"https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2017\/11\/DeluxeScientists-1024x491.png 1024w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2017\/11\/DeluxeScientists-300x144.png 300w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2017\/11\/DeluxeScientists-768x369.png 768w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2017\/11\/DeluxeScientists.png 1198w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<p>The constraints are different.\u00a0 Instead of packing a per-determined list of parts into an unbounded space, I want to fill a bounded space with whatever will fit. I also had to pad the dimensions of these vehicles and structures, since people need space to walk between them.\u00a0 I pick an object at random, and if I have to push it out of bounds to avoid colliding with objects that have already been placed, I discard that object and count a failure.\u00a0 After a certain number of failures, I figure the camp is full and move on.\u00a0 Since the algorithm pushes objects in all directions equally, it works well for squarish camps, but not for the very long camps at the far rim of the city.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-293\" src=\"http:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/camp3.png\" alt=\"\" width=\"966\" height=\"630\" srcset=\"https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/camp3.png 966w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/camp3-300x196.png 300w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/camp3-768x501.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>This algorithm still needs improvement.\u00a0 I could try something more like Tetris, where I try to fill things up from one end to the other, or I could just use the current algorithm at multiple points along the long campsite.\u00a0 With relatively cheap, simple algorithms, and especially with the time constraints of a game jam, finding the most efficient solution may not be worth the trouble.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-294\" src=\"http:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/colorcoordination.png\" alt=\"\" width=\"594\" height=\"592\" srcset=\"https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/colorcoordination.png 594w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/colorcoordination-150x150.png 150w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/colorcoordination-300x300.png 300w, https:\/\/cliffnordman.com\/blog\/wp-content\/uploads\/2018\/10\/colorcoordination-100x100.png 100w\" sizes=\"(max-width: 594px) 100vw, 594px\" \/><\/p>\n<p>To make camps look unified, structures in a camp will have similar colors.\u00a0 How similar? That varies by camp. The camp in the foreground above has blue, green, cyan, even purple, but the ones behind it are all green or all magenta.<\/p>\n<p>So I planned to generate photos, and what am I generating?<\/p>\n<ul>\n<li>Width, number, &amp; spacing of radial &amp; concentric roads<\/li>\n<li>location &amp; size of landmarks<\/li>\n<li>Structure type, structure position, structure color, and range of structure color.in camps<\/li>\n<li>Also photos, I guess<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>PROCJAM, 7DFPS Day 1, Day 2, Day 3 Building Burning Man is really fun, so I neglected the photography part of the game to generate even more types of things.\u00a0 I happen to have an extensive list of galleries of photos from Burning Man, so I perused a few of them to see what types &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/cliffnordman.com\/blog\/2018\/10\/25\/procjam-7dfps-2018-day-4\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;PROCJAM \/ 7DFPS 2018: Day 4&#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,1],"tags":[],"class_list":["post-292","post","type-post","status-publish","format-standard","hentry","category-photography","category-programming","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/posts\/292"}],"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=292"}],"version-history":[{"count":2,"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/posts\/292\/revisions"}],"predecessor-version":[{"id":297,"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/posts\/292\/revisions\/297"}],"wp:attachment":[{"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/media?parent=292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/categories?post=292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cliffnordman.com\/blog\/wp-json\/wp\/v2\/tags?post=292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}