A procedural terrain generation server with multithreading.
View the html docs online (with API reference).
As usual, install the NuGet packages with
dotnet restoreand then check out the docs for the project you are interested in for more instructions.
See the TerraProc.Core project.
You can use it to build your own server interface or extend the generation pipeline.
If you want to run the server, use the TerraProc.Server project.
It provides a gRPC and REST API interface to the generation core.
To use the Unity client, refer to the TerraProc.Client project.
If you're interested in the protos used for the gRPC endpoint (and also in the client), you can find them
in the TerraProc.Contracts project.
The test projects are in tests/. For now, there are core unit tests testing the individual pipeline parts in
TerraProc.Core.Tests and core integration tests for the whole pipeline in TerraProc.Core.IntegrationTests.
The test are not yet completely comprehensive, but they cover the main functionality.
The server and client projects are not yet covered by tests.
I used various articles to figure out how perlin noise works and how to implement it.
The most helpful were Understanding Perlin Noise (along with the nice example
implementation), Improved Noise reference implementation,
The Book of Shaders,
scratchapixel.com,
The Perlin noise math FAQ
and also The Range of Perlin Noise.
Thanks to all the authors!