1
0
forked from 0ad/0ad

Increasing the generation speed of the maps: Northern Lights, Rhine Marshlands

This was SVN commit r14173.
This commit is contained in:
O.Davoodi 2013-11-14 18:58:55 +00:00
parent 8dedf7bc3d
commit a04cc9f01b
4 changed files with 48 additions and 27 deletions

View File

@ -183,7 +183,7 @@ for (var ix = 0; ix < mapSize; ix++)
log("Creating shores..."); log("Creating shores...");
for (var i = 0; i < scaleByMapSize(20,120); i++) for (var i = 0; i < scaleByMapSize(20,120); i++)
{ {
placer = new ClumpPlacer(scaleByMapSize(50, 70), 0.2, 0.1, 10, randFloat(0.1,0.9)*mapSize, randFloat(0.67,0.74)*mapSize); placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 30)), 1, floor(randFloat(0.1,0.9)*mapSize), floor(randFloat(0.67,0.74)*mapSize));
var terrainPainter = new LayeredPainter( var terrainPainter = new LayeredPainter(
[tSnowA, tSnowA], // terrains [tSnowA, tSnowA], // terrains
[2] // widths [2] // widths
@ -198,7 +198,7 @@ for (var i = 0; i < scaleByMapSize(20,120); i++)
// create islands // create islands
log("Creating islands..."); log("Creating islands...");
placer = new ClumpPlacer(scaleByMapSize(40, 180), 0.2, 0.1, 1); placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 0.1);
var terrainPainter = new LayeredPainter( var terrainPainter = new LayeredPainter(
[tSnowA, tSnowA], // terrains [tSnowA, tSnowA], // terrains
[3] // widths [3] // widths
@ -216,7 +216,7 @@ paintTerrainBasedOnHeight(-6, 1, 1, tWater);
// create lakes // create lakes
log("Creating lakes..."); log("Creating lakes...");
var numLakes = round(scaleByMapSize(1,4) * numPlayers); var numLakes = round(scaleByMapSize(1,4) * numPlayers);
var placer = new ClumpPlacer(scaleByMapSize(100,250), 0.8, 0.1, 10); var placer = new ChainPlacer(1, floor(scaleByMapSize(5, 7)), floor(scaleByMapSize(20, 50)), 0.1);
var terrainPainter = new LayeredPainter( var terrainPainter = new LayeredPainter(
[tShoreBlend, tShore, tWater], // terrains [tShoreBlend, tShore, tWater], // terrains
[1,1] // widths [1,1] // widths
@ -236,7 +236,7 @@ RMS.SetProgress(45);
// create hills // create hills
log("Creating hills..."); log("Creating hills...");
placer = new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1); placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 0.1);
var terrainPainter = new LayeredPainter( var terrainPainter = new LayeredPainter(
[tCliff, tSnowA], // terrains [tCliff, tSnowA], // terrains
[3] // widths [3] // widths
@ -246,7 +246,7 @@ createAreas(
placer, placer,
[terrainPainter, elevationPainter, paintClass(clHill)], [terrainPainter, elevationPainter, paintClass(clHill)],
avoidClasses(clPlayer, 20, clHill, 15, clWater, 2, clBaseResource, 2), avoidClasses(clPlayer, 20, clHill, 15, clWater, 2, clBaseResource, 2),
scaleByMapSize(2, 8) * numPlayers scaleByMapSize(1, 4) * numPlayers
); );
@ -268,12 +268,12 @@ var types = [
]; // some variation ]; // some variation
var size = numForest / (scaleByMapSize(2,8) * numPlayers); var size = numForest / (scaleByMapSize(3,6) * numPlayers);
var num = floor(size / types.length); var num = floor(size / types.length);
for (var i = 0; i < types.length; ++i) for (var i = 0; i < types.length; ++i)
{ {
placer = new ClumpPlacer(numForest / num, 0.1, 0.1, 1); placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), numForest / (num * floor(scaleByMapSize(2,4))), 1);
painter = new LayeredPainter( painter = new LayeredPainter(
types[i], // terrains types[i], // terrains
[2] // widths [2] // widths
@ -298,10 +298,10 @@ RMS.SetProgress(70);
// create dirt patches // create dirt patches
log("Creating dirt patches..."); log("Creating dirt patches...");
var sizes = [scaleByMapSize(3, 9), scaleByMapSize(5, 15), scaleByMapSize(8, 24)]; var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)];
for (var i = 0; i < sizes.length; i++) for (var i = 0; i < sizes.length; i++)
{ {
placer = new ClumpPlacer(sizes[i], 0.3, 0.06, 0.5); placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), sizes[i], 0.5);
painter = new LayeredPainter( painter = new LayeredPainter(
[tSnowD,tSnowB,tSnowC], // terrains [tSnowD,tSnowB,tSnowC], // terrains
[2,1] // widths [2,1] // widths
@ -313,10 +313,10 @@ for (var i = 0; i < sizes.length; i++)
scaleByMapSize(20, 80) scaleByMapSize(20, 80)
); );
} }
var sizes = [scaleByMapSize(3, 9), scaleByMapSize(5, 15), scaleByMapSize(8, 24)]; var sizes = [scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)];
for (var i = 0; i < sizes.length; i++) for (var i = 0; i < sizes.length; i++)
{ {
placer = new ClumpPlacer(sizes[i], 0.3, 0.06, 0.5); placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), sizes[i], 0.5);
painter = new LayeredPainter( painter = new LayeredPainter(
[tSnowE,tSnowE], // terrains [tSnowE,tSnowE], // terrains
[1] // widths [1] // widths
@ -334,14 +334,14 @@ log("Creating stone mines...");
group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock); group = new SimpleGroup([new SimpleObject(oStoneSmall, 0,2, 0,4), new SimpleObject(oStoneLarge, 1,1, 0,4)], true, clRock);
createObjectGroups(group, 0, createObjectGroups(group, 0,
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clRock, 10, clHill, 1), avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clRock, 10, clHill, 1),
scaleByMapSize(4,16), 100 scaleByMapSize(8,32), 100
); );
// create small stone quarries // create small stone quarries
group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock); group = new SimpleGroup([new SimpleObject(oStoneSmall, 2,5, 1,3)], true, clRock);
createObjectGroups(group, 0, createObjectGroups(group, 0,
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clRock, 10, clHill, 1), avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clRock, 10, clHill, 1),
scaleByMapSize(4,16), 100 scaleByMapSize(8,32), 100
); );
log("Creating metal mines..."); log("Creating metal mines...");
@ -349,7 +349,7 @@ log("Creating metal mines...");
group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal); group = new SimpleGroup([new SimpleObject(oMetalLarge, 1,1, 0,4)], true, clMetal);
createObjectGroups(group, 0, createObjectGroups(group, 0,
avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1), avoidClasses(clWater, 3, clForest, 1, clPlayer, 20, clMetal, 10, clRock, 5, clHill, 1),
scaleByMapSize(4,16), 100 scaleByMapSize(8,32), 100
); );
@ -409,12 +409,17 @@ createObjectGroups(group, 0,
setSunColour(0.6, 0.6, 0.6); setSunColour(0.6, 0.6, 0.6);
setSunElevation(PI/ 6); setSunElevation(PI/ 6);
setWaterColour(0.0, 0.047, 0.286); // dark majestic blue setWaterColour(0.3, 0.347, 0.386); // dark majestic blue
setWaterTint(0.471, 0.776, 0.863); // light blue setWaterTint(0.171, 0.236, 0.263); // light blue
setWaterReflectionTint(0.0, 0.047, 0.286); setWaterReflectionTint(0.0, 0.047, 0.086);
setWaterMurkiness(0.82); setWaterMurkiness(0.82);
setWaterWaviness(3); setWaterWaviness(3);
setWaterReflectionTintStrength(0.15); setWaterReflectionTintStrength(0.15);
setFogFactor(0.95);
setFogThickness(0.09);
setPPSaturation(0.28);
setPPEffect("hdr");
setSkySet("fog"); setSkySet("fog");
ExportMap(); ExportMap();

View File

@ -210,7 +210,7 @@ createAreas(
log("Creating marshes..."); log("Creating marshes...");
for (var i = 0; i < 7; i++) for (var i = 0; i < 7; i++)
{ {
placer = new ClumpPlacer(9*scaleByMapSize(50,130)*randFloat(0.6,1.4), 0.8, 0.1, 10); placer = new ChainPlacer(1, floor(scaleByMapSize(6, 12)), floor(scaleByMapSize(15, 60)), 0.8);
var terrainPainter = new LayeredPainter( var terrainPainter = new LayeredPainter(
[tShoreBlend, tShore, tWater], // terrains [tShoreBlend, tShore, tWater], // terrains
[1,1] // widths [1,1] // widths
@ -265,11 +265,11 @@ var types = [
[[tForestFloor, tGrass, pForestD], [tForestFloor, pForestD]], [[tForestFloor, tGrass, pForestD], [tForestFloor, pForestD]],
[[tForestFloor, tGrass, pForestP], [tForestFloor, pForestP]] [[tForestFloor, tGrass, pForestP], [tForestFloor, pForestP]]
]; // some variation ]; // some variation
var size = numForest / (scaleByMapSize(2,8) * numPlayers); var size = numForest / (scaleByMapSize(3,6) * numPlayers);
var num = floor(size / types.length); var num = floor(size / types.length);
for (var i = 0; i < types.length; ++i) for (var i = 0; i < types.length; ++i)
{ {
placer = new ClumpPlacer(numForest / num, 0.1, 0.1, 1); placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), numForest / (num * floor(scaleByMapSize(2,4))), 1);
painter = new LayeredPainter( painter = new LayeredPainter(
types[i], // terrains types[i], // terrains
[2] // widths [2] // widths
@ -286,10 +286,10 @@ RMS.SetProgress(50);
// create mud patches // create mud patches
log("Creating mud patches..."); log("Creating mud patches...");
var sizes = [scaleByMapSize(3, 21), scaleByMapSize(5, 37), scaleByMapSize(8, 50)]; var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)];
for (var i = 0; i < sizes.length; i++) for (var i = 0; i < sizes.length; i++)
{ {
placer = new ClumpPlacer(sizes[i], 0.3, 0.06, 0.5); placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), sizes[i], 1);
painter = new LayeredPainter( painter = new LayeredPainter(
[tGrassA, tGrassB, tMud], // terrains [tGrassA, tGrassB, tMud], // terrains
[1,1] // widths [1,1] // widths
@ -476,4 +476,11 @@ setWaterMurkiness(0.8);
setWaterWaviness(0.8); setWaterWaviness(0.8);
setWaterReflectionTintStrength(0.4); setWaterReflectionTintStrength(0.4);
setFogThickness(0.25);
setFogFactor(0.6);
setPPEffect("hdr");
setPPSaturation(0.44);
setPPBloom(0.3);
ExportMap(); ExportMap();

View File

@ -25,14 +25,14 @@ var g_Environment = {
}, },
Fog: { Fog: {
FogFactor: 0.0, FogFactor: 0.0,
FogThickness: 0.0, FogThickness: 0.5,
FogColor: {r: 0.8, g: 0.8, b: 0.8, a: 0} FogColor: {r: 0.8, g: 0.8, b: 0.8, a: 0}
}, },
Postproc: { Postproc: {
Brightness: 0.0, Brightness: 0.0,
Contrast: 0.0, Contrast: 1.0,
Saturation: 0.5, Saturation: 1.0,
Bloom: 0.0, Bloom: 0.2,
PostprocEffect: "default" PostprocEffect: "default"
} }
}; };

View File

@ -410,7 +410,7 @@ for (var i = 0; i < types.length; ++i)
// Set environment // Set environment
setSkySet("sunny"); setSkySet("sunny");
setSunElevation(PI / 6); setSunElevation(PI / 8);
setSunRotation(randFloat(0, TWO_PI)); setSunRotation(randFloat(0, TWO_PI));
setSunColour(0.746, 0.718, 0.539); setSunColour(0.746, 0.718, 0.539);
setWaterColour(0.292, 0.347, 0.691); setWaterColour(0.292, 0.347, 0.691);
@ -419,5 +419,14 @@ setWaterReflectionTint(0.562, 0.511, 0.425);
setWaterMurkiness(0.83); setWaterMurkiness(0.83);
setWaterReflectionTintStrength(0.377); setWaterReflectionTintStrength(0.377);
setFogColor(0.8, 0.76, 0.61);
setFogThickness(0.2);
setFogFactor(0.4);
setPPEffect("hdr");
setPPContrast(0.65);
setPPSaturation(0.42);
setPPBloom(0.6);
// Export map data // Export map data
ExportMap(); ExportMap();