Demonstration of Procedural Terrain modifying runtime Recast Graph Tiles

Just showing off, thought some people (Aron) would like to see it?

I captured this video of a side by side in the editor showing my games procedural terrain being edited in real time and updating local tiles in the Recast Graph.

One thing I think I might need to do is given the frequency of edits the player can make and the threading updating the tiles, there might be multiple requests to update the graph in the same area.

Aron what happens if a tile is being updated and another update is request, does it get buffered? Should I add a delay between update frequency?

1 Like

Depends on which version you are using and your settings.

In the latest beta it will get added to a queue, and the next time graph updates can be processed, the recast graph will figure out which tiles need to be updated, and update those.

1 Like

This is exactly what I want to achieve in my game. Can you share some more information on how you did this? Also how large is your world?

I’d love to have some input and some hint for the right direction.

World size is 32x32 Klms

The terrain is a custom threaded mesh generation system with a multi layered noise sampling.
I use Microsplat for the terrain shader.
Terrain LOD’s are managed by a custom Quad Tree.
You have to modify the heightmaps, cleared maps and splatmaps and then regenerate the mesh.
The grass patches is a custom system that uses Indirect Instancing and uses the cleared map.
In multiplayer, terrain edits are sent as ‘operations’ so it only sends the location and type of modification and then the clients apply it locally.

Everything is seeded including the grass patch generation so it is the same on every client.

Thank you for the brief description, I was hoping you’d be using mapmagic 2 as that is what I am using. I have gotten a great result but I just have a few bugs that are being pesky.

So could you tell me more about how you apply the navmesh to the terrain?

I also use microsplat for my textures, but in conjunction with mapmagic 2. The only problem I am having is actually dealing with terrain manipulation at the seams. I can’t seem to get that to be perfect.

Do you think I can buy you a virtual coffee at some point and pick your brain on doing the navmesh?

Sorry I don’t have a lot of time.

I’m not doing anything special with the Navmesh, its all built into A* but you will want to use the latest Beta version.