TerraProc

A procedural terrain generation server with multithreading.

View the html docs online (with API reference).

Getting started

As usual, install the NuGet packages with

dotnet restore

and then check out the docs for the project you are interested in for more instructions.

Core library

See the TerraProc.Core project.

You can use it to build your own server interface or extend the generation pipeline.

Server

If you want to run the server, use the TerraProc.Server project.

It provides a gRPC and REST API interface to the generation core.

Unity Client

To use the Unity client, refer to the TerraProc.Client project.

Protobuf contracts

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.

Tests

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.

Acknowledgements

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!

  • Edit this page
In this article
Back to top Generated by DocFX