diff options
Diffstat (limited to '')
-rw-r--r-- | docs/Generator.html | 36 | ||||
-rw-r--r-- | docs/_files.txt | 2 |
2 files changed, 19 insertions, 19 deletions
diff --git a/docs/Generator.html b/docs/Generator.html index 85ebb91ca..3d4e09afe 100644 --- a/docs/Generator.html +++ b/docs/Generator.html @@ -1,12 +1,12 @@ <html> <head> -<title>Generating terrain in MCServer</title> +<title>Generating terrain in Cuberite</title> </head> <body> -<h1>Generating terrain in MCServer</h1> -<p>This article explains the principles behind the terrain generator in MCServer. It is not strictly -specific to MCServer, though, it can be viewed as a generic guide to various terrain-generating algorithms, -with specific implementation notes regarding MCServer.</p> +<h1>Generating terrain in Cuberite</h1> +<p>This article explains the principles behind the terrain generator in Cuberite. It is not strictly +specific to Cuberite, though, it can be viewed as a generic guide to various terrain-generating algorithms, +with specific implementation notes regarding Cuberite.</p> <p>Contents: <ul> @@ -80,7 +80,7 @@ neighboring chunks.</p> <hr /> <a name="composablegen"><h2>The ComposableGenerator pipeline</h2></a> -<p>This leads us directly to the main pipeline that is used for generating terrain in MCServer. For +<p>This leads us directly to the main pipeline that is used for generating terrain in Cuberite. For technical reasons, the terrain composition step is further subdivided into Height generation and Composition generation, and the structures are really called Finishers. For each chunk the generator generates, in this sequence: @@ -131,7 +131,7 @@ generated for any number of dimensions.</p> <a name="biomegen"><h2>Generating biomes</h2></a> <p>The easiest way to generate biomes is to not generate them at all - simply assign a single constant biome to everywhere. And indeed there are times when this kind of "generator" is useful - for the MineCraft's Flat -world type, or for testing purposes, or for tematic maps. In MCServer, this is exactly what the Constant +world type, or for testing purposes, or for tematic maps. In Cuberite, this is exactly what the Constant biome generator does.</p> <p>Of course, there are more interesting test scenarios for which multiple biomes must be generated as easy @@ -175,7 +175,7 @@ gives us the seed's X position. We use another Perlin noise and the same calcula seed.</p> <p>Here's an example of a biome map generated using the Voronoi + jitter grid, as implemented by the Voronoi -biome generator in MCServer:</p> +biome generator in Cuberite:</p> <img src="img/voronoijitterbiomes.png" /> <h3>Distorted Voronoi</h3> @@ -194,7 +194,7 @@ coordinate before sending the coordinates down to the Voronoi generator:</p> DistortedVoronoiBiome(X, Z) := VoronoiBiome(X + PerlinX(X, Z), Z + PerlinZ(X, Z)) </code> -<p>The following image shows the effects of the change, as generated by MCServer's DistortedVoronoi biome +<p>The following image shows the effects of the change, as generated by Cuberite's DistortedVoronoi biome generator. It is actually using the very same Voronoi map as the previous image, the only change has been the addition of the distortion:</p> <img src="img/distortedvoronoibiomes.png" /> @@ -241,7 +241,7 @@ either add them somewhere into the decision diagram, or we can make the generato </ul> </p> -<p>This is the approach implemented in MCServer's MultiStepMap biome generator. It generates biome maps like +<p>This is the approach implemented in Cuberite's MultiStepMap biome generator. It generates biome maps like this:</p> <img src="img/multistepmapbiomes.png" /> @@ -296,10 +296,10 @@ generator uses distortion before querying the small areas.</p> <img src="img/twolevelsmallgrid.jpg" /><br /> <img src="img/twolevelsmallareas.jpg" /><br /> -<p>The following image shows an example output of a TwoLevel biome generator in MCServer:</p> +<p>The following image shows an example output of a TwoLevel biome generator in Cuberite:</p> <img src="img/twolevelbiomes.png" /> -<p>Note that rivers are currently not implemented in this generator in MCServer, but they could be added +<p>Note that rivers are currently not implemented in this generator in Cuberite, but they could be added using the same approach as in MultiStepMap - by using a thresholded 2D Perlin noise.</p> @@ -332,12 +332,12 @@ suddenly become smooth. The following image shows the situation from the previou the averaging process: </p> <img src="img/biomeheightsavg.jpg" /> -<p>The approach used in MCServer's Biomal generator is based on this idea, with two slight modifications. +<p>The approach used in Cuberite's Biomal generator is based on this idea, with two slight modifications. Instead of using a separate generator for each biome, one generator is used with a different set of input parameters for each biomes. These input parameters modify the overall amplitude and frequency of the Perlin noise that the generator produces, thus modifying the final terrain with regards to biomes. Additionally, the averaging process is weighted - columns closer to the queried column get a more powerful weight in the sum -than the columns further away. The following image shows the output of MCServer's Biomal terrain height +than the columns further away. The following image shows the output of Cuberite's Biomal terrain height generator (each block type represents a different biome - ocean in the front (stone), plains and ice plains behind it (lapis, whitewool), extreme hills back right (soulsand), desert hills back left (mossy cobble)):</p> @@ -425,7 +425,7 @@ snow, for example.</p> into an ice block if the biome is cold. This means that any water block that is under any kind of other block, such as under a tree's leaves, will still stay water. Thus an additional improvement could be made by scanning down from the surface block through blocks that we deem as non-surface, such as leaves, torches, -ladders, fences etc. Note that MCServer currently implements only the easy solution.</p> +ladders, fences etc. Note that Cuberite currently implements only the easy solution.</p> <h3>Bottom lava</h3> <p>Most worlds in MineCraft have lava lakes at their bottom. Generating these is pretty straightforward: Use @@ -433,7 +433,7 @@ the user-configured depth and replace all the air blocks below this depth with l that this makes this generator dependent on the order in which the finishers are applied. If the mineshafts generate before bottom lava, the mineshafts that are below the lava level will get filled with lava. On the other hand, if bottom lava is generated before the mineshafts, it is possible for a mineshaft to "drill -through" a lake of lava. MCServer doesn't try to solve this and instead lets the admin choose whichever they +through" a lake of lava. Cuberite doesn't try to solve this and instead lets the admin choose whichever they prefer.</p> <h3>Specific foliage</h3> @@ -500,12 +500,12 @@ anywhere, so it would be rather useless.</p> surface, perhaps a bit more in the mountaineous biomes. There should be quite a few more springs underground, but there should definitely be more water springs than lava springs in the upper levels of the terrain, while there should be more lava springs and almost no water springs near the bottom. To accomodate this, the -MCServer team has made a tool that scanned through MineCraft's terrain and counted the amount of both types +Cuberite team has made a tool that scanned through MineCraft's terrain and counted the amount of both types of springs in relation to their height. Two curves have been found for the distribution of each type of the spring:</p> <img src="http://mc-server.xoft.cz/img/vanilla_springs_huge.png" /> -<p>MCServer uses an approximation of the above curves to choose the height at which to generate the +<p>Cuberite uses an approximation of the above curves to choose the height at which to generate the spring.</p> <!-- diff --git a/docs/_files.txt b/docs/_files.txt index 5147c62c8..85a4253c1 100644 --- a/docs/_files.txt +++ b/docs/_files.txt @@ -11,7 +11,7 @@ Login Sequence.txt - Annotated log of packets exchanged between the client and server for login; 1.6.2 protocol Object ownership.gv - - a GraphViz file to visualise ownership relations in the MCServer code architecture + - a GraphViz file to visualise ownership relations in the Cuberite code architecture SocketThreads states.gv - a GraphViz file documenting the states for individual sockets in cSocketThreads, and transitions between them |