72place
0 votes Vote

spline first workflow

I would like to be able to use splines as an early step in map generation to be able to more directly control map generation.
The purpose of this would be to be able to define spline prefabs that I can then add into the current scene and have Map Magic consume these splines to help control the resulting generation.

Id like to be able to do this so I can procedurally construct a series of spline paths that will be used as roads between locations and as source data to pick where to randomly place various objectives and structures.

The current implementation does allow this to some extent, but the workflow is limited to responding to existing height maps. I don't see a way could procedurally build a mountain and have a winding path go up around the mountain to a certain spot where I could spawn objects, such as caves or buildings.

James , 07.08.2020, 21:35
Idea status: under consideration

Comments

Wraith, 08.08.2020, 13:09
Thanks for sharing your idea!
Could you please describe how exactly do you see the spline prefabs workflow?
James, 08.08.2020, 16:57
I think I can do you one better. I had actually experimented with this process against the Unity terrain so I have a kind of example, you'll see some of the difficulties I ran into as well. I think it was a great attempt, but I need a whole lot more tools around it.

The spline tool I'm using in this example is Curvy Spines, using that to create my splines, I wrote shaders to stamp a flat area with height relative to the spline, which creates a sheer cliff path, and then I applied a compute shader which uses a really naive sediment transfer erosion mechanism. (this is not really my wheel house!)

https://i.imgur.com/pDHoCtz.gif

So basically it would be great to be able to construct a spline like this, then just add it to the scene at design or runtime and then have a node that can consume splines in the scene for a graph.

I did try to take this to great extents, but I don't have a ton of experience with this stuff, when I tried to introduce noise into the system things got a lot more difficult and my crappy erosion code wasn't very good overall.

This kind of setup is even more useful if the splines are gameobject based, as it allows me to use the splines to create additional information. It would be great to allow splines nodes to have properties that can be consumed by the graph, such as biome data that could inform what graph functions to use to generate the local landscape and such.
I think a spline based workflow like this has truly extensive utility that can be built off of and extended
Twiner, 08.08.2020, 17:28
Here is an additional link that more completely demonstrates the goals, we have some noise based terrain, but I run into problems where splines meet, I couldn't begin to understand how to deal with that problem, I suspect you already know the answer.

https://youtu.be/TJUtvtyo_Pw

I think you can probably see why this could be a very powerful type of workflow, and for procedural games this could allow you to make segments that you can randomly combine that contain information for the game play mechanics, such as what events to spawn on a given segment. The environment adapting around the spline is helpful.

the results you see here though are the only reasons I got that looked decent, trying to make other kinds of landscapes rapidly showed the limitations of my understanding.

Leave a comment