Nodemancer
A downloadable tool for Windows and macOS
This is an incredibly early version of what is trying to be a generic tool for procedurally generating content. It's highly experimental, I don't even know if it's a terrible idea and a dead end yet. I only spent ~3 days on it, and it's probably too early for anyone else to find use for it, but I wanted to post it just to see if anyone was interested in the idea.
Problem
Most proceduraly generation seems to be a big lump of ad-hoc code. This makes it hard to re-use, and even harder for non-coders or beginners to procedurally generate content.
Solution?
A C# library and Unity3D tool that, based off of a node graph created by the user, will procedurally generate a certain piece of content. You should be able to make small adjustments to the content with no code changes. For more significant changes, you should be able to write simple functions that accomplish a single operation on a node, and use those operations with different parameters on different nodes to get different results without writing more code. You can also run post-processing code to do whatever you want on the completed object; Nodemancer cannot do 100% of what you might want to do, it tries to only handle the 80% solution.
What it actually is right now:
I'm not sure if this idea is doomed from the start, so after a lot of whiteboard code, what I've accomplished in a few days is very minimal.
I had an old piece of code I was using for a cancelled project that creates a bunch of procedurally-generated swords, so I decided to use it as a starting point and use case to develop from.
A "Creation" is a top-level object that represents that encapsulates the object you're trying to create.
A "Node" is a particular part of the object that will be generated. Currently, this is restricted to spawning a choice of prefabs. Each node can have a number of sub-node objects (yes I know they're edges, not nodes) which in turn will generate sub-objects attached to the parent node.
A sword is made of three pieces: a grip, a crossguard, and a blade. The Creation only knows about the grip Node, so it will spawn one of several grips and then visit all of the children of the grip node. The grip has a node where a crossguard is attached, and the crossguard has a node where a blade is attached. Following the (very simple) node graph and spawning a sub-object at each node, in the end we've created a sword object made of randomly-selected parts.
Status | Prototype |
Category | Tool |
Platforms | Windows, macOS |
Author | Fractal Phase |
Download
Install instructions
Unzip this in the Assets directory of your Unity3D project and open the "Swords" demo scene.