{"id":1576,"date":"2013-01-24T01:35:57","date_gmt":"2013-01-23T22:35:57","guid":{"rendered":"http:\/\/unitycoder.com\/blog\/?p=1576"},"modified":"2013-01-27T01:52:09","modified_gmt":"2013-01-26T22:52:09","slug":"perlin-cave-dungeon-maker","status":"publish","type":"post","link":"https:\/\/unitycoder.com\/blog\/2013\/01\/24\/perlin-cave-dungeon-maker\/","title":{"rendered":"Perlin Dungeon Maker"},"content":{"rendered":"<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1577\" data-permalink=\"https:\/\/unitycoder.com\/blog\/2013\/01\/24\/perlin-cave-dungeon-maker\/perlin_cave_maker1\/\" data-orig-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker1.jpg?fit=680%2C348&amp;ssl=1\" data-orig-size=\"680,348\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"perlin_cave_maker1\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker1.jpg?fit=300%2C153&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker1.jpg?fit=680%2C348&amp;ssl=1\" class=\"alignnone size-full wp-image-1577\" alt=\"perlin_cave_maker1\" src=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker1.jpg?resize=680%2C348\" width=\"680\" height=\"348\" srcset=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker1.jpg?w=680&amp;ssl=1 680w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker1.jpg?resize=300%2C153&amp;ssl=1 300w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/p>\n<p>Perlin noise generated dungeons \/ caves! (w.i.p)<\/p>\n<p><strong>Webplayer:<\/strong><br \/>\n<a title=\"http:\/\/unitycoder.com\/upload\/demos\/PerlinDungeons1\/\" href=\"http:\/\/unitycoder.com\/upload\/demos\/PerlinDungeons1\/\" target=\"_blank\">http:\/\/unitycoder.com\/upload\/demos\/PerlinDungeons1\/<\/a> (v1.0 : some bugs in webplayer build: floor &amp; roof normals \/ tangents broken?, minimap is broken..)<\/p>\n<p><strong>Current version info:<\/strong><br \/>\n&#8211; Creates 2D texture and array with perlin noise (not needed, since you could check x,y perlin values directly anyways..)<br \/>\n&#8211; First pass, create floors (with basic <a title=\"http:\/\/en.wikipedia.org\/wiki\/Run-length_encoding\" href=\"http:\/\/en.wikipedia.org\/wiki\/Run-length_encoding\" target=\"_blank\">RLE<\/a> &#8211; to save few vertices.. 1 floor can be long as seen in the image):<br \/>\n-&gt; If we hit empty grid point, save x &amp; y values<br \/>\n-&gt; Until we hit a filled grid point (wall), then draw floor mesh from saved x &amp; y values until here<br \/>\n-&gt; Scale UV based on floor piece length (so that tiling is still correct)<br \/>\n&#8211; Second pass: Similar thing for walls (currently single pieces..would save vertices to draw long walls as 2 faces only)<br \/>\n&#8211; Maximum: 256&#215;256 grid (mesh cannot have more than 65k vertices..could split it to new mesh)<br \/>\n&#8211; Adjustable wall height<br \/>\n&#8211; Added: basic minimap (<a title=\"http:\/\/answers.unity3d.com\/questions\/15375\/how-to-make-a-custom-guitexture-at-runtime.html\" href=\"http:\/\/answers.unity3d.com\/questions\/15375\/how-to-make-a-custom-guitexture-at-runtime.html\" target=\"_blank\">guitexture with texture2D<\/a> &amp; setpixel..)<br \/>\n&#8211; Walls, floor, roof are separate meshes, easier to adjust their texturing (current textures are from <a title=\"http:\/\/opengameart.org\/textures\/all\" href=\"http:\/\/opengameart.org\/textures\/all\" target=\"_blank\">opengameart.org<\/a>)<br \/>\n&#8211; Added: Tangents for floor &amp; roof meshes (so can use normal maps), founded the info from <a title=\"http:\/\/forum.unity3d.com\/threads\/63149-After-playing-minecraft...?p=997588&amp;viewfull=1#post997588\" href=\"http:\/\/forum.unity3d.com\/threads\/63149-After-playing-minecraft...?p=997588&amp;viewfull=1#post997588\" target=\"_blank\">minecraft thread<\/a>.<br \/>\n&#8211; Added: Footstep sounds (script &amp; sounds from: <a title=\"https:\/\/www.assetstore.unity3d.com\/#\/content\/1376\" href=\"https:\/\/www.assetstore.unity3d.com\/#\/content\/1376\" target=\"_blank\">bootcamp demo<\/a>, modified the script to play sounds with <a title=\"http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/Input.GetButton.html\" href=\"http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/Input.GetButton.html\" target=\"_blank\">autofire timer<\/a>..)<br \/>\n&#8211; Added: Ambient cave sound (from: <a title=\"http:\/\/www.freesfx.co.uk\" href=\"http:\/\/www.freesfx.co.uk\" target=\"_blank\">http:\/\/www.freesfx.co.uk<\/a> )<br \/>\n&#8211; Added: waterdrop particles from roof<br \/>\n&#8211; Added: Cave <a title=\"http:\/\/unitycoder.com\/blog\/2013\/01\/26\/save-mesh-created-by-script-in-editor-playmode\/\" href=\"http:\/\/unitycoder.com\/blog\/2013\/01\/26\/save-mesh-created-by-script-in-editor-playmode\/\" target=\"_blank\">mesh saving from playmode<\/a><br \/>\n&#8211; Added: <a title=\"http:\/\/wiki.unity3d.com\/index.php?title=Headbobber\" href=\"http:\/\/wiki.unity3d.com\/index.php?title=Headbobber\" target=\"_blank\">HeadBobber<\/a> (had to move fps camera under dummy gameobject and assign bobber to that gameobject..)<br \/>\n&#8211; Tried: <a title=\"http:\/\/wiki.unity3d.com\/index.php\/GridMove\" href=\"http:\/\/wiki.unity3d.com\/index.php\/GridMove\" target=\"_blank\">GridMove<\/a>, works fine but rather use free moving for now..<\/p>\n<p><strong><br \/>\nIdeas:<\/strong><br \/>\n&#8211; Actually floor and ceiling could be just single plane..<br \/>\n&#8211; For texturing..use secondary perlin noise for &#8220;terrain&#8221; variation? (moss, rocky, sand..)<br \/>\n&#8211; Its single mesh, needs texture atlas for multiple materials?<br \/>\n&#8211; Generate mob spawned locations too? Other objects too?<br \/>\n&#8211; Generate floors and stairs and holes to other floors? (needs 3D perlin noise, currently using Mathf.PerlinNoise();)<br \/>\n&#8211; Level saving as an asset? (or could use OBJ save from angry bots?)<br \/>\n&#8211; Digging\/breaking the walls?<br \/>\n&#8211; Volumetric fog or other effects? (since we are inside limited 2D grid, could do visibility casting &amp; fake shadow stuff too?)<br \/>\n&#8211; Tesselation shaders (must use for something?! rounding the objects? or with wall displacement mapping?)<\/p>\n<p>&#8212;<\/p>\n<p><strong>Image#1<\/strong>: 8&#215;8 &#8220;dungeon&#8221;<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1580\" data-permalink=\"https:\/\/unitycoder.com\/blog\/2013\/01\/24\/perlin-cave-dungeon-maker\/perlin_cave_maker2\/\" data-orig-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker2.jpg?fit=680%2C376&amp;ssl=1\" data-orig-size=\"680,376\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"perlin_cave_maker2\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker2.jpg?fit=300%2C165&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker2.jpg?fit=680%2C376&amp;ssl=1\" class=\"alignnone size-full wp-image-1580\" alt=\"perlin_cave_maker2\" src=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker2.jpg?resize=680%2C376\" width=\"680\" height=\"376\" srcset=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker2.jpg?w=680&amp;ssl=1 680w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker2.jpg?resize=300%2C165&amp;ssl=1 300w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/p>\n<p>&#8212;<\/p>\n<p><strong>Image#2:<\/strong> 256&#215;256 cave\/labyrinth\u00a0 (adjusted perlin noise scale to make larger walkways) <em>*click to view full size<\/em><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker256.jpg\" target=\"_blank\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1579\" data-permalink=\"https:\/\/unitycoder.com\/blog\/2013\/01\/24\/perlin-cave-dungeon-maker\/perlin_cave_maker256\/\" data-orig-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker256.jpg?fit=1091%2C706&amp;ssl=1\" data-orig-size=\"1091,706\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"perlin_cave_maker256\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker256.jpg?fit=300%2C194&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker256.jpg?fit=1024%2C662&amp;ssl=1\" class=\"alignnone size-medium wp-image-1579\" alt=\"perlin_cave_maker256\" src=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker256-300x194.jpg?resize=300%2C194\" width=\"300\" height=\"194\" srcset=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker256.jpg?resize=300%2C194&amp;ssl=1 300w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker256.jpg?resize=1024%2C662&amp;ssl=1 1024w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_maker256.jpg?w=1091&amp;ssl=1 1091w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&#8212;<\/p>\n<p><strong>Image#3:<\/strong> FPS Controller view (still needs variation for texturing..)<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1578\" data-permalink=\"https:\/\/unitycoder.com\/blog\/2013\/01\/24\/perlin-cave-dungeon-maker\/perlin_cave_fps1\/\" data-orig-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_fps1.jpg?fit=680%2C464&amp;ssl=1\" data-orig-size=\"680,464\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"perlin_cave_fps1\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_fps1.jpg?fit=300%2C204&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_fps1.jpg?fit=680%2C464&amp;ssl=1\" class=\"alignnone size-full wp-image-1578\" alt=\"perlin_cave_fps1\" src=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_fps1.jpg?resize=680%2C464\" width=\"680\" height=\"464\" srcset=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_fps1.jpg?w=680&amp;ssl=1 680w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_fps1.jpg?resize=300%2C204&amp;ssl=1 300w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/p>\n<p>&#8212;<\/p>\n<p><strong>Image#4:<\/strong> Now wall, floor, roof are separate meshes. Added basic minimap also.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_slender_caves_not.jpg\" target=\"_blank\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1595\" data-permalink=\"https:\/\/unitycoder.com\/blog\/2013\/01\/24\/perlin-cave-dungeon-maker\/perlin_slender_caves_not\/\" data-orig-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_slender_caves_not.jpg?fit=1039%2C675&amp;ssl=1\" data-orig-size=\"1039,675\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"perlin_slender_caves_not\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_slender_caves_not.jpg?fit=300%2C194&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_slender_caves_not.jpg?fit=1024%2C665&amp;ssl=1\" class=\"alignnone size-medium wp-image-1595\" alt=\"perlin_slender_caves_not\" src=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_slender_caves_not-300x194.jpg?resize=300%2C194\" width=\"300\" height=\"194\" srcset=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_slender_caves_not.jpg?resize=300%2C194&amp;ssl=1 300w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_slender_caves_not.jpg?resize=1024%2C665&amp;ssl=1 1024w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_slender_caves_not.jpg?w=1039&amp;ssl=1 1039w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>(click to view)<\/p>\n<p>&#8212;<\/p>\n<p><strong>Image#5<\/strong>: Testing fog with particles.. (doesnt look so good then turning..)<br \/>\n<a href=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles.jpg\" target=\"_blank\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1613\" data-permalink=\"https:\/\/unitycoder.com\/blog\/2013\/01\/24\/perlin-cave-dungeon-maker\/dungeon_fog_particles\/\" data-orig-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles.jpg?fit=1085%2C669&amp;ssl=1\" data-orig-size=\"1085,669\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"dungeon_fog_particles\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles.jpg?fit=300%2C184&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles.jpg?fit=1024%2C631&amp;ssl=1\" class=\"alignnone size-medium wp-image-1613\" alt=\"dungeon_fog_particles\" src=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles-300x184.jpg?resize=300%2C184\" width=\"300\" height=\"184\" srcset=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles.jpg?resize=300%2C184&amp;ssl=1 300w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles.jpg?resize=1024%2C631&amp;ssl=1 1024w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles.jpg?w=1085&amp;ssl=1 1085w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&#8212;<\/p>\n<p><strong>Image#6:<\/strong> Particles with <a title=\"http:\/\/wiki.unity3d.com\/index.php?title=AlphaClipsafe\" href=\"http:\/\/wiki.unity3d.com\/index.php?title=AlphaClipsafe\" target=\"_blank\">Clipsafe shader<\/a> (also moved the emitter down, so the smoke is more at floor level and particle type is vertical billboard)<br \/>\n<a href=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles_2.jpg\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1615\" data-permalink=\"https:\/\/unitycoder.com\/blog\/2013\/01\/24\/perlin-cave-dungeon-maker\/dungeon_fog_particles_2\/\" data-orig-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles_2.jpg?fit=1075%2C755&amp;ssl=1\" data-orig-size=\"1075,755\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"dungeon_fog_particles_2\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles_2.jpg?fit=300%2C210&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles_2.jpg?fit=1024%2C719&amp;ssl=1\" class=\"alignnone size-medium wp-image-1615\" alt=\"dungeon_fog_particles_2\" src=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles_2-300x210.jpg?resize=300%2C210\" width=\"300\" height=\"210\" srcset=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles_2.jpg?resize=300%2C210&amp;ssl=1 300w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles_2.jpg?resize=1024%2C719&amp;ssl=1 1024w, https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/dungeon_fog_particles_2.jpg?w=1075&amp;ssl=1 1075w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Perlin noise generated dungeons \/ caves! (w.i.p) Webplayer: http:\/\/unitycoder.com\/upload\/demos\/PerlinDungeons1\/ (v1.0 : some bugs in webplayer build: floor &amp; roof normals \/ tangents broken?, minimap is broken..) Current version info: &#8211; Creates 2D texture and array with perlin noise (not needed, since you could check x,y [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1578,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,3],"tags":[65,62,300,401,223,399,400,253,302,285],"class_list":["post-1576","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-demos","category-unity3d","tag-2d","tag-3d","tag-cave","tag-dungeon","tag-generator","tag-labyrinth","tag-map","tag-perlin","tag-procedural","tag-unlimited"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2013\/01\/perlin_cave_fps1.jpg?fit=680%2C464&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p1KTaT-pq","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/1576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/comments?post=1576"}],"version-history":[{"count":25,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/1576\/revisions"}],"predecessor-version":[{"id":1584,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/1576\/revisions\/1584"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media\/1578"}],"wp:attachment":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media?parent=1576"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/categories?post=1576"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/tags?post=1576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}