Skip to main content
KPD Home

NodeMaps

I built a node-based mapping library for Unity, using the xNode plugin for the graph tooling. I build a lot of grid-based games and was hoping to create a Shader-Graph-like solution for generating tile maps. This tool is open sourced here.

Needs #

When generating maps in a code-driven way, you often need to layer and combine noise patterns in a variety of ways, testing and tweaking as you go. This iterative process can be slow when changing code every test - or time consuming and unwieldy to expose all of the appropriate elements to the inspector. Compounding this is that rather than a singular result, you are often building something robust that can be generated in a multitude of ways, so each iteration needs to be tested with some set of changing parameters: often seed, but also map_size and other elements.

Solution #

The Node Graph workflow lends itself well to these needs: you can preview your map generator at multiple steps in the generation, as well as across multiple seeds. Live Preview can be made to react to scrubbing of value, and pieces of the genreator can be detached from others to isolate elements that need fixing.

Present & Future #

The tool is open sourced here. I intend to rebuild it in Godot 4, as a GraphEdit and Noise refactor are slated to be refactored.

Another strength of this tool is combining procedural methods from different domains: like experiementing with cellular automation applied to the ouput of traditional perlin noise
You can tweak how a Minimum Spanning Tree is connected, but also how the tool stores and renders that data.
Quick gif that shows how scrubbing the seed param allows you to view many outputs of a graph
I wrote a couple of different consumers for the output, including a 3d terrain plugin.