{"id":20,"date":"2022-06-23T13:30:33","date_gmt":"2022-06-23T13:30:33","guid":{"rendered":"https:\/\/trew.tk\/blog\/?p=20"},"modified":"2023-12-05T09:34:46","modified_gmt":"2023-12-05T09:34:46","slug":"procedural-generation-heatmaps","status":"publish","type":"post","link":"https:\/\/trewest.dev\/blog\/index.php\/2022\/06\/23\/procedural-generation-heatmaps\/","title":{"rendered":"Procedural Generation Heatmaps"},"content":{"rendered":"<div class=\"wp-post-series-box series-susminer wp-post-series-box--expandable\">\n\t\t\t<input id=\"collapsible-series-susminer69e91d42c8a8c\" class=\"wp-post-series-box__toggle_checkbox\" type=\"checkbox\">\n\t\n\t<label\n\t\tclass=\"wp-post-series-box__label\"\n\t\t\t\t\tfor=\"collapsible-series-susminer69e91d42c8a8c\"\n\t\t\ttabindex=\"0\"\n\t\t\t\t>\n\t\t<p class=\"wp-post-series-box__name wp-post-series-name\">\n\t\t\tThis is post 1 of 4 in the series <em>&ldquo;Susminer&rdquo;<\/em>\t\t<\/p>\n\t\t\t\t\t<div class=\"wp-post-series-box__description wp-post-series-description\">\n\t\t\t\t<p>A game that never was.  Posts related to Procedural Generation and coding.<\/p>\n\t\t\t<\/div>\n\t\t\t<\/label>\n\n\t\t\t<div class=\"wp-post-series-box__posts\">\n\t\t\t<ol>\n\t\t\t\t\t\t\t\t\t<li><span class=\"wp-post-series-box__current\">Procedural Generation Heatmaps<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2022\/06\/23\/creating-a-world-generator\/\">Creating A World Generator<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2022\/06\/24\/graphical-programming-weirdness\/\">Graphical Programming Weirdness<\/a><\/li>\n\t\t\t\t\t\t\t\t\t<li><a href=\"https:\/\/trewest.dev\/blog\/index.php\/2023\/01\/12\/project-susminer\/\">Project: Susminer<\/a><\/li>\n\t\t\t\t\t\t\t<\/ol>\n\t\t<\/div>\n\t<\/div>\n\n<p>While working on my game\/demo &#8220;Susminer&#8221;, inspired by my recent reading of <em>&#8220;Procedural Generation in Game Design&#8221;<\/em> I created a tool to analyze the generation code by making heatmaps of x number of generations.  This is a useful tool to observe biases in how the generation code creates things, and it revealed that the left side had a bias to create &#8220;wings&#8221; where as the right side would more smoothly approach the top.  These islands were initially intended to be somewhat symmetrical in design, but I realized that I had actually quite liked the look of this, plus &#8220;fixing&#8221; it would take a lot of time and digging through code, and so the design stayed.  <\/p>\n\n\n\n<p>Anyways, here&#8217;s a few of the heatmaps.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"894\" height=\"388\" src=\"https:\/\/trew.tk\/blog\/wp-content\/uploads\/2022\/06\/image.png\" alt=\"\" class=\"wp-image-21\" srcset=\"https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image.png 894w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-300x130.png 300w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-768x333.png 768w\" sizes=\"auto, (max-width: 894px) 100vw, 894px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1002\" height=\"423\" src=\"https:\/\/trew.tk\/blog\/wp-content\/uploads\/2022\/06\/image-1.png\" alt=\"\" class=\"wp-image-22\" srcset=\"https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-1.png 1002w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-1-300x127.png 300w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-1-768x324.png 768w\" sizes=\"auto, (max-width: 1002px) 100vw, 1002px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"881\" height=\"417\" src=\"https:\/\/trew.tk\/blog\/wp-content\/uploads\/2022\/06\/image-2.png\" alt=\"\" class=\"wp-image-23\" srcset=\"https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-2.png 881w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-2-300x142.png 300w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-2-768x364.png 768w\" sizes=\"auto, (max-width: 881px) 100vw, 881px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"888\" height=\"368\" src=\"https:\/\/trew.tk\/blog\/wp-content\/uploads\/2022\/06\/image-3.png\" alt=\"\" class=\"wp-image-24\" srcset=\"https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-3.png 888w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-3-300x124.png 300w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-3-768x318.png 768w\" sizes=\"auto, (max-width: 888px) 100vw, 888px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"871\" height=\"435\" src=\"https:\/\/trew.tk\/blog\/wp-content\/uploads\/2022\/06\/image-4.png\" alt=\"\" class=\"wp-image-25\" srcset=\"https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-4.png 871w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-4-300x150.png 300w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-4-768x384.png 768w\" sizes=\"auto, (max-width: 871px) 100vw, 871px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"914\" height=\"386\" src=\"https:\/\/trew.tk\/blog\/wp-content\/uploads\/2022\/06\/image-5.png\" alt=\"\" class=\"wp-image-26\" srcset=\"https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-5.png 914w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-5-300x127.png 300w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-5-768x324.png 768w\" sizes=\"auto, (max-width: 914px) 100vw, 914px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"849\" height=\"287\" src=\"https:\/\/trew.tk\/blog\/wp-content\/uploads\/2022\/06\/image-6.png\" alt=\"\" class=\"wp-image-27\" srcset=\"https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-6.png 849w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-6-300x101.png 300w, https:\/\/trewest.dev\/blog\/wp-content\/uploads\/2022\/06\/image-6-768x260.png 768w\" sizes=\"auto, (max-width: 849px) 100vw, 849px\" \/><\/figure>\n\n\n\n<p>Eventually, I did some extra coding and made it so it&#8217;d also export the image data as a PNG allowing for this one to not be a screenshot.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/trew.tk\/blog\/wp-content\/uploads\/2022\/06\/image-7.png\" alt=\"\" class=\"wp-image-28\" width=\"837\" height=\"358\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>This is post 1 of 4 in the series &ldquo;Susminer&rdquo; A game that never was. Posts related to Procedural Generation and coding. Procedural Generation Heatmaps Creating A World Generator Graphical &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5,3],"tags":[6,7],"post_series":[56],"class_list":["post-20","post","type-post","status-publish","format-standard","hentry","category-coding","category-gamedev","category-susminer","tag-procedural-generation","tag-unity","post_series-susminer"],"_links":{"self":[{"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/posts\/20","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=20"}],"version-history":[{"count":1,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/posts\/20\/revisions"}],"predecessor-version":[{"id":29,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/posts\/20\/revisions\/29"}],"wp:attachment":[{"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=20"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=20"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=20"},{"taxonomy":"post_series","embeddable":true,"href":"https:\/\/trewest.dev\/blog\/index.php\/wp-json\/wp\/v2\/post_series?post=20"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}