Some semi-random thoughts on terrain generation
I think either my computer is really slow or I have something not configurated properly. When the server is generating in extreme hills biomes I only get ~3 ch/s
World.ini:
Code:
[Storage]
Schema=Default
CompressionFactor=6

[Plants]
IsSugarcaneBonemealable=0
MaxSugarcaneHeight=3
MaxCactusHeight=3
IsCarrotsBonemealable=1
IsCropsBonemealable=1
IsGrassBonemealable=1
IsSaplingBonemealable=1
IsMelonStemBonemealable=1
IsMelonBonemealable=0
IsPotatoesBonemealable=1
IsPumpkinStemBonemealable=1
IsPumpkinBonemealable=0
IsCactusBonemealable=0

[PVP]
Enabled=1

[Physics]
WaterSimulator=Vanilla
LavaSimulator=Vanilla
DeepSnow=1
SandInstantFall=0
ShouldLavaSpawnFire=1
RedstoneSimulator=incremental
TNTShrapnelLevel=2

[GameMode]
GameMode=1

[Generator]
Generator=Composable
BiomeGenCacheSize=64
HeightGenCacheSize=64
CompositionGenCacheSize=64
BiomeGen=TwoLevel
CompositionGen=DistortedHeightmap
HeightGen=DistortedHeightmap
DistortedHeightmapSeaLevel=62
DistortedHeightmapFrequencyX=10.000000
DistortedHeightmapFrequencyY=10.000000
DistortedHeightmapFrequencyZ=10.000000
Finishers=Ravines,WormNestCaves,Villages,OreNests,WaterLakes,LavaLakes, SprinkleFoliage,Trees,Ice,Snow,Lilypads,DeadBushes,WaterSprings,LavaSprings,BottomLava,PreSimulator
MineShaftsGridSize=960
MineShaftsMaxSystemSize=1280
MineShaftsChanceCorridor=6000
MineShaftsChanceCrossing=2000
MineShaftsChanceStaircase=2000
LavaLakesProbability=10
WaterLakesProbability=25
BottomLavaLevel=10
VillageGridSize=384
VillageMaxDepth=1.5
VillageMaxSize=128

[WaterSimulator]
Falloff=1
MaxHeight=7
TickDelay=5
NumNeighborsForSource=2

[LavaSimulator]
Falloff=2
MaxHeight=6
TickDelay=30
NumNeighborsForSource=-1

[General]
Dimension=0
Gamemode=1

[FireSimulator]
BurnStepTimeFuel=500
BurnStepTimeNonfuel=100
Flammability=50
ReplaceFuelChance=50000

[WaterSprings]
HeightDistribution=0, 0; 10, 10; 11, 75; 16, 83; 20, 83; 24, 78; 32, 62; 40, 40; 44, 15; 48, 7; 56, 2; 64, 1; 255, 0
Chance=24

[LavaSprings]
HeightDistribution=0, 0; 10, 5; 11, 45; 48, 2; 64, 1; 255, 0
Chance=9

[SpawnProtect]
ProtectRadius=10
Enable=0

[WorldLimit]
LimitRadius=0

[Difficulty]
WorldDifficulty=2

[Monsters]
Types=bat, cavespider, chicken, cow, creeper, enderman, horse, mooshroom, ocelot, pig, sheep, silverfish, skeleton, slime, spider, squid, wolf, zombie
AnimalsOn=0
VillagersShouldHarvestCrops=1

[Mechanics]
CommandBlocksEnabled=1
PVPEnabled=1
UseChatPrefixes=0

CPU-Z Info: http://puu.sh/8WCih.png
Reply
Thanks given by:
I tryed the "Resource contention data (concurreny)" performance test from MSVS.
It says, the test is for "Detecting threads waiting for threads".
https://mega.co.nz/#!0Ugz1Spa!G9XfQ8Fn5i...mRP_lnORis
I made it, because MCServer isnĀ“t even using one cpu core fully.
Reply
Thanks given by:
STR: I get between 4 and 20 chunks / sec, with the speed oscillating quite randomly, when I use your ini file. My CPU is a Core2Quad, too, although a bit newer than yours. I'll investigate tomorrow, it's too late today.

L01ZB: Those files can only be opened by the MSVC Ultimate edition, I have that at work so I'll look there, if I have time.
Reply
Thanks given by:
(05-23-2014, 01:47 AM)STR_Warrior Wrote: I think either my computer is really slow or I have something not configurated properly. When the server is generating in extreme hills biomes I only get ~3 ch/s
World.ini:
Code:
[Storage]
Schema=Default
CompressionFactor=6

[Plants]
IsSugarcaneBonemealable=0
MaxSugarcaneHeight=3
MaxCactusHeight=3
IsCarrotsBonemealable=1
IsCropsBonemealable=1
IsGrassBonemealable=1
IsSaplingBonemealable=1
IsMelonStemBonemealable=1
IsMelonBonemealable=0
IsPotatoesBonemealable=1
IsPumpkinStemBonemealable=1
IsPumpkinBonemealable=0
IsCactusBonemealable=0

[PVP]
Enabled=1

[Physics]
WaterSimulator=Vanilla
LavaSimulator=Vanilla
DeepSnow=1
SandInstantFall=0
ShouldLavaSpawnFire=1
RedstoneSimulator=incremental
TNTShrapnelLevel=2

[GameMode]
GameMode=1

[Generator]
Generator=Composable
BiomeGenCacheSize=64
HeightGenCacheSize=64
CompositionGenCacheSize=64
BiomeGen=TwoLevel
CompositionGen=DistortedHeightmap
HeightGen=DistortedHeightmap
DistortedHeightmapSeaLevel=62
DistortedHeightmapFrequencyX=10.000000
DistortedHeightmapFrequencyY=10.000000
DistortedHeightmapFrequencyZ=10.000000
Finishers=Ravines,WormNestCaves,Villages,OreNests,WaterLakes,LavaLakes, SprinkleFoliage,Trees,Ice,Snow,Lilypads,DeadBushes,WaterSprings,LavaSprings,BottomLava,PreSimulator
MineShaftsGridSize=960
MineShaftsMaxSystemSize=1280
MineShaftsChanceCorridor=6000
MineShaftsChanceCrossing=2000
MineShaftsChanceStaircase=2000
LavaLakesProbability=10
WaterLakesProbability=25
BottomLavaLevel=10
VillageGridSize=384
VillageMaxDepth=1.5
VillageMaxSize=128

[WaterSimulator]
Falloff=1
MaxHeight=7
TickDelay=5
NumNeighborsForSource=2

[LavaSimulator]
Falloff=2
MaxHeight=6
TickDelay=30
NumNeighborsForSource=-1

[General]
Dimension=0
Gamemode=1

[FireSimulator]
BurnStepTimeFuel=500
BurnStepTimeNonfuel=100
Flammability=50
ReplaceFuelChance=50000

[WaterSprings]
HeightDistribution=0, 0; 10, 10; 11, 75; 16, 83; 20, 83; 24, 78; 32, 62; 40, 40; 44, 15; 48, 7; 56, 2; 64, 1; 255, 0
Chance=24

[LavaSprings]
HeightDistribution=0, 0; 10, 5; 11, 45; 48, 2; 64, 1; 255, 0
Chance=9

[SpawnProtect]
ProtectRadius=10
Enable=0

[WorldLimit]
LimitRadius=0

[Difficulty]
WorldDifficulty=2

[Monsters]
Types=bat, cavespider, chicken, cow, creeper, enderman, horse, mooshroom, ocelot, pig, sheep, silverfish, skeleton, slime, spider, squid, wolf, zombie
AnimalsOn=0
VillagersShouldHarvestCrops=1

[Mechanics]
CommandBlocksEnabled=1
PVPEnabled=1
UseChatPrefixes=0

CPU-Z Info: http://puu.sh/8WCih.png

I get between 18 and 31 chunks / sec.
Reply
Thanks given by:
I've found out why the profiling output is useless, CMake was munching our switches. I'll commit a fix soon(ish).
Reply
Thanks given by:
STR, I've tried your world.ini at work in a profiled release executable, I get over 150 chunks / sec. The current breakdown for the generator is:
Trees: 33 %
Lakes: 12 %
PreSimulator: 3 %
Villages: 2 %
The rest is under 1 % of the run time. Note that the high percentage for Trees is caused mainly by the Trees generator querying terrain composition of its neighbors, which is then stored in the cache and thus all the other generators that query those will get them cheap.

I've added the profiler fix to both master and VillageGen branches. Can you do the profiling for me once more, please?
Reply
Thanks given by:
Did you also try MineShafts? Because I only got 0.23 ch/s when its enabled. Anyway I'm really curious if it's just my computer being slow or if something isn't configured properly. On normal biomes I get around 30 ch/s but in extreme hills it goes down to 3 ch/s.

I tried profiling again, but for some reason MCServer can't open any files. Because of that it can't open the world.ini and thus is not generating MineShafts. I'm now editing MCServer so it generates MineShafts by default.

Weird. It looks like it isn't generating anything at all.
Reply
Thanks given by:
I get 1.32 ch/s with Village and MineShafts at running cpu profiling.
https://mega.co.nz/#!JNAVlIAD!T1v6YOv9yf...sPdiJ4rW08
Reply
Thanks given by:
L01ZB the VSP files are useless to me when I don't have your PDBs. I need the CallerCalleeSummary.csv file produced by our profiling script.

STR, yes, adding mineshafts seems to have slowed down the generator significantly. Investigating now.
Reply
Thanks given by: NiLSPACE
Found it. You're asking for too large mineshafts (MineShaftsMaxSystemSize=1280), and they are overflowing the internal cGridStructGen cache size. Currently the cache is set to 100 items, but each chunk query is asking for 196 mineshaft systems, so each chunk effectively clears the cache, and the next chunk must generate all those 196 mineshaft systems anew.

There may be additional problems with the size calculations, I'm checking those, too.

As a hotfix, try smaller system size, 128 is the default value.
Reply
Thanks given by:




Users browsing this thread: 16 Guest(s)