<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged procedural-terrain</title>
<link>https://coderlegion.com/tag/procedural-terrain</link>
<description>Powered by Question2Answer</description>
<item>
<title>DevLog 20250729: Procedural Terrain Generation</title>
<link>https://coderlegion.com/4324/devlog-20250729-procedural-terrain-generation</link>
<description>&lt;h3 id=&quot;intro&quot;&gt;Intro&lt;/h3&gt;
&lt;p&gt;Procedural generation, often called algorithmic art, is the process of turning code into visual content. Unlike generative AI, which can often feel &quot;either works or doesn't&quot;, procedural generation offers predictable results and detailed control over every element of the outcome. Unlike simulation, its process is less about modeling physical phenomena and more about manipulating data through arithmetic and logic.&lt;/p&gt;
&lt;p&gt;In practical production, procedural generation rarely stands alone. It’s usually combined with hand-crafted elements to achieve a balance between efficiency and artistic vision - a good example is the diverse planets in &lt;em&gt;No Man’s Sky&lt;/em&gt;, which mix algorithmic rules with human-made textures and assets. Unreal Engine’s &lt;em&gt;City Demo&lt;/em&gt; is, in my opinion, one of the most condensed showcases of how far this paradigm can be pushed. Yet, as I will discuss in a future article, procedural generation also faces diminishing returns: the more we aim for total automation, the less room we leave for meaningful artistic decisions. For world-building (not just game design), it often makes more sense to focus on curated, high-quality content rather than endlessly expanding algorithmic variety.&lt;/p&gt;
&lt;h3 id=&quot;how-does-it-has-to-do-with-divooka-&quot;&gt;How does it has to do with Divooka?&lt;/h3&gt;
&lt;p&gt;When we talk about general-purpose, low-level procedural generation, three tools come to mind: &lt;strong&gt;Houdini&lt;/strong&gt;, &lt;strong&gt;Blender Geometry Nodes&lt;/strong&gt;, and &lt;strong&gt;Rhino Grasshopper&lt;/strong&gt;. All three embrace a dataflow mindset, where complex results emerge from chaining and manipulating small, modular operations.&lt;/p&gt;
&lt;p&gt;At its core, procedural geometry is about transforming data points - vertices, edges, and faces - through parametric relationships. The same happens when working with a dataflow diagram: each node transforms data in a specific way, and the network of nodes collectively defines the outcome. This data-centric, rule-based mindset has a strong connection to what I envision for &lt;strong&gt;Divooka&lt;/strong&gt;. It’s not just about &quot;automating&quot; art; it’s about building a flexible, modular pipeline where small algorithmic rules can shape a larger creative vision.&lt;/p&gt;
&lt;h3 id=&quot;procedural-terrain-generation&quot;&gt;Procedural Terrain Generation&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u44ynxiwv1dwpyy4mrm3.png&quot; alt=&quot;Fantasy Planet Painter&quot;&gt;&lt;/p&gt;
&lt;p&gt;Among all categories of procedural content, terrain generation stands out as being easily feasible while also present just enough technical and artistic challenge. Procedural terrains, trees, and clouds - when done well - can be indispensable in environmental design. These elements create a sense of scale, variety, and believability that would be prohibitively expensive to craft by hand, especially at scale.&lt;/p&gt;
&lt;p&gt;Procedural humans are another major frontier, as projects like &lt;strong&gt;MetaHuman&lt;/strong&gt; have shown. However, most current solutions in this area remain asset-based (pre-designed components combined procedurally) rather than fully algorithm-driven, due to the complexity of human anatomy and subtle facial variations.&lt;/p&gt;
&lt;p&gt;What makes procedural terrain generation truly interesting is its multi-scale nature. The same algorithms that define the curvature of a hill, the placement of a forest, or the erosion patterns of a mountain range can be scaled up as procedural rules to shape entire planets, as seen in projects like &lt;em&gt;Outerra&lt;/em&gt; or the planet tech behind &lt;em&gt;Star Citizen&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;For terrains specifically, there are multiple approaches:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Parametric modeling:&lt;/strong&gt; Platforms like &lt;strong&gt;TerraGen&lt;/strong&gt; and &lt;strong&gt;Vue&lt;/strong&gt; provides drop-in procedural terrains that works at large scale, at the sacrifice of simulating natural erosion, weathering, and geology.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Heightmap-based workflows:&lt;/strong&gt; Tools like &lt;strong&gt;World Machine&lt;/strong&gt; remain the gold standard here, providing artists with granular control over erosion layers, noise functions, and texturing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hybrid artistic sculpting:&lt;/strong&gt; Recent software such as &lt;strong&gt;World Creator&lt;/strong&gt; blends procedural systems with direct, real-time sculpting, letting artists guide the procedural logic for more intentional results.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Biomes and planet-scale world maps:&lt;/strong&gt; Beyond local terrain detail, truly massive environments need a global &quot;climate&quot; layer to drive ecosystem placement and continental shapes. Typically you start by generating low-frequency noise on a sphere (using an icosphere or cubemap projection) to define elevation, temperature, and moisture fields. These three channels feed a biome classifier (for example, using Whittaker’s biome chart) to assign regions like tundra, desert, rainforest, or grassland. Then, by layering higher-frequency noise and erosion simulations, you carve coastlines and mountain ranges that respect those climate zones. On top of that, you can stream in progressively finer mesh tiles or voxel chunks as the viewer approaches, blending seamlessly from a planet-wide view down to individual hills and caves. This multi-scale, data-driven pipeline lets you create a consistent, believable world map—where a river born in snowy peaks will reliably flow toward warmer, wetter biomes, and deserts will hug the rain shadows of mountain ridges.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Voxel and simulation-driven worlds:&lt;/strong&gt; Games like &lt;em&gt;Minecraft&lt;/em&gt; and &lt;em&gt;Dwarf Fortress&lt;/em&gt; have shown that procedural generation can build entire, fully interactive worlds at massive scale, with layers of terrain below the surface.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Procedural generation is more than a tool - it’s a mindset, and a skill requiring practising. It allows creators to define rules and systems rather than individual assets, creating worlds that feel alive, infinite, and varied. However, its real power comes when balanced with handcrafted content, ensuring that algorithmic variety never comes at the cost of artistic intent.&lt;/p&gt;
&lt;p&gt;For Divooka, the challenge (and opportunity) lies in embracing procedural workflows without losing sight of the content’s purpose. A beautiful world isn’t necessarily one that is infinitely generated - it’s one where the procedural tools empower the creator to focus on meaning, storytelling, and design.&lt;/p&gt;
</description>
<category>Game Dev</category>
<guid isPermaLink="true">https://coderlegion.com/4324/devlog-20250729-procedural-terrain-generation</guid>
<pubDate>Tue, 29 Jul 2025 17:21:12 +0000</pubDate>
</item>
<item>
<title>Fantasy Planet Painter v1.1</title>
<link>https://coderlegion.com/4323/fantasy-planet-painter-v1-1</link>
<description>&lt;h2 id=&quot;release-note-fantasy-planet-painter-v1-1&quot;&gt;Release Note: Fantasy Planet Painter v1.1&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=2702565542440398021&quot; alt=&quot;v1.1 Screenshot&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Fantasy Planet Painter&lt;/strong&gt; is a creative software tool designed for building planet-scale world maps. Users can sketch out major planetary features - mountains, valleys, and oceans - and let the software's procedural generation engine fill in realistic terrains.&lt;/p&gt;
&lt;p&gt;The program is built on the original &lt;a rel=&quot;nofollow&quot; href=&quot;http://hjemmesider.diku.dk/~torbenm/Planet/&quot;&gt;open-source algorithms&lt;/a&gt; by Torben Mogensen, which were &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/Charles-Zhang-Project-Nine-Experiments/ProceduralPlanet&quot;&gt;ported to C#&lt;/a&gt; by Charles Zhang. Commercial use of the software is permitted to Methodox by the original author.&lt;/p&gt;
&lt;p&gt;Methodox is responsible for cross-platform builds, documentation, GUI updates, code modernization, performance optimizations, and the addition of extended features.&lt;/p&gt;
&lt;h3 id=&quot;motivation&quot;&gt;Motivation&lt;/h3&gt;
&lt;p&gt;Torben's original command-line interface (CLI) exposes many technical parameters for fine-tuning terrain generation. While powerful, this approach is daunting for non-CLI users. More importantly, the original tool lacks an intuitive editing interface for shaping custom fantasy maps.&lt;/p&gt;
&lt;p&gt;Previously, Charles developed several custom CLI utilities for tasks like scaling and shifting map cells. However, the lack of immediate visual feedback made this process slow and inefficient.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fantasy Planet Painter changes that.&lt;/strong&gt; With direct visualization, users can iterate quickly, adjusting and refining shapes without worrying about typing commands or guessing results.&lt;/p&gt;
&lt;p&gt;The software also supports saving sessions, as well as importing and exporting various components for easier collaboration and workflow integration. Even more advanced editing tools are planned for future releases.&lt;/p&gt;
&lt;h3 id=&quot;original-release&quot;&gt;Original Release&lt;/h3&gt;
&lt;p&gt;The initial &lt;strong&gt;v1.0&lt;/strong&gt; release introduced core functionality such as interactive rendering updates and different projection options. While many CLI options from the original program remain unavailable in the GUI, v1.0 laid the groundwork for a more user-friendly, visual approach.&lt;/p&gt;
&lt;h3 id=&quot;updates-in-v1-1&quot;&gt;Updates in v1.1&lt;/h3&gt;
&lt;h4 id=&quot;bug-fixes-&quot;&gt;Bug Fixes:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Fixed an issue where default map edges were incorrectly handled when painting.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;improvements-&quot;&gt;Improvements:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Added support for choosing different &lt;strong&gt;color themes&lt;/strong&gt; for maps.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;sample-color-themes&quot;&gt;Sample Color Themes&lt;/h3&gt;
&lt;p&gt;Here are some eye-catching color schemes included in v1.1. Many of their names originate from the &lt;a rel=&quot;nofollow&quot; href=&quot;http://hjemmesider.diku.dk/~torbenm/Planet/&quot;&gt;original source code&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&quot;bathymetric&quot;&gt;Bathymetric&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_Bathymetric_Mercator.jpg&quot; alt=&quot;Bathymetric&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;burrows&quot;&gt;Burrows&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_Burrows_Mercator.jpg&quot; alt=&quot;Burrows&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;col2&quot;&gt;Col2&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_Col2_Mercator.jpg&quot; alt=&quot;Col2&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;grayscale&quot;&gt;Grayscale&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_Grayscale_Mercator.jpg&quot; alt=&quot;Grayscale&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;lefebvre2&quot;&gt;Lefebvre2&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_Lefebvre2_Mercator.jpg&quot; alt=&quot;Lefebvre2&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;lefebvre&quot;&gt;Lefebvre&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_Lefebvre_Mercator.jpg&quot; alt=&quot;Lefebvre&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;light&quot;&gt;Light&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_Light_Mercator.jpg&quot; alt=&quot;Light&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;mars&quot;&gt;Mars&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_Mars_Mercator.jpg&quot; alt=&quot;Mars&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;olsson2&quot;&gt;Olsson2&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_Olsson2_Mercator.jpg&quot; alt=&quot;Olsson2&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;olsson-light&quot;&gt;Olsson Light&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_OlssonLight_Mercator.jpg&quot; alt=&quot;Olsson Light&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;white&quot;&gt;White&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_White_Mercator.jpg&quot; alt=&quot;White&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;wood&quot;&gt;Wood&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_Wood_Mercator.jpg&quot; alt=&quot;Wood&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;yellow&quot;&gt;Yellow&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://publication.tor1.cdn.digitaloceanspaces.com/Websites/MethodoxWiki/Images/Utilities-FPP-Earth_Yellow_Mercator.jpg&quot; alt=&quot;Yellow&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;references&quot;&gt;References&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://methodox.itch.io/fantasy-planet-painter&quot;&gt;Fantasy Planet Painter – Methodox Itch.io Store&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://methodox.itch.io/fantasy-planet-painter/devlog/997073/release-v11-color-theme-options&quot;&gt;Release Development Log – v1.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://wiki.methodox.io/en/Utilities/FantasyPlanetPainter/Themes&quot;&gt;Methodox Wiki: Available Color Schemes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/Project-Nine-Tooling/planet&quot;&gt;Source Code: Torben Mogensen's Planet Generator&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
<category>Game Dev</category>
<guid isPermaLink="true">https://coderlegion.com/4323/fantasy-planet-painter-v1-1</guid>
<pubDate>Tue, 29 Jul 2025 17:20:25 +0000</pubDate>
</item>
</channel>
</rss>