Annihlator Posted February 3, 2019 Share Posted February 3, 2019 Greetings everyone, The past few days I've been mucking about trying to build towards a modlet that allows us to use RWG to generate maps in 4k,8k and 16k sizes with round borders having a general pattern going from snow through forest, burnt forest, desert and wasteland. In the past I'd used other peoples RWGmixer settings but hadn't been able to get those older setups to work again. In the current state it is not by any means perfect and the generations uses much more layers then should be necessary, I'm just still at the point where I find this an easier setup to tweak. The codeblock below can be pasted in any rwgmixer.xml file in any modlet if you want to try it for yourself, any feedback is well-appreciated! currently I'm readjusting the FRMF layers in order to increase randomisation a fair bit (still slightly too static for my liking) and after that will move on to 8K and 16K sizes (as the worldgen time increases a fair bit ) codeblock to assign bandedSmall generator to small worldsize: <set xpath="/rwgmixer/rulesets/ruleset[@name='vanillaSmall']/@biome_generator">bandedSmall</set> codeblock of bandedSmall biomegenerator: <append xpath="/rwgmixer/biome_generators"> <biome_generator name="bandedSmall"> <module name="bands" type="Cylinders"> <property name="frequency" value="0.000185"/> </module> <module name="invertbands" type="InvertOutput"> <property name="sourceModule" value="bands"/> </module> <module name="rotate" type="RotateInput"> <property name="sourceModule" value="invertbands"/> <property name="xAngle" value="0"/> <property name="zAngle" value="1"/> </module> <module name="trans" type="TranslateInput"> <property name="sourceModule" value="rotate"/> <property name="x" value="-2048"/> <property name="y" value="0"/> <property name="z" value="-2816"/> </module> <module name="landNoiseBias" type="ScaleBiasOutput"> <property name="sourceModule" value="trans"/> <property name="scale" value="0.65"/> <property name="bias" value="0.575"/> </module> <module name="landNoiseCurve" type="CurveOutput"> <property name="sourceModule" value="landNoiseBias"/> <property name="source_module1" value="landNoiseBias"/> <property name="controlPoints" value="0,0.15;0.25,0.4;0.4,0.6;0.7,0.6;1.0,0.9"/> </module> <module name="landNoiseClamp" type="ClampOutput"> <property name="sourceModule" value="landNoiseCurve"/> <property name="bounds" value="0.0, 0.74"/> </module> <module name="landNoiseDither" type="FastTurbulence"> <property name="sourceModule" value="landNoiseClamp"/> <property name="frequency" value="0.001"/> <property name="power" value="50"/> <property name="roughness" value="2"/> </module> <module name="NoiseFRMF" type="FastRidgedMultifractal" seed_additive="2" no_seed="false"> <property name="frequency" value="0.0015"/> </module> <module name="FRMFScale" type="ScaleOutput"> <property name="sourceModule" value="NoiseFRMF"/> <property name="scale" value="0.35"/> </module> <module name="landBlendFactor" type="Constant"> <property name="constant" value="-0.5"/> </module> <module name="landNoiseBlend" type="Blend"> <property name="sourceModule1" value="landNoiseDither"/> <property name="sourceModule2" value="FRMFScale"/> <property name="controlModule" value="landBlendFactor"/> </module> <module name="NoiseFRMF2" type="FastRidgedMultifractal" seed_additive="8" no_seed="false"> <property name="frequency" value="0.002"/> </module> <module name="FRMFScale2" type="ScaleOutput"> <property name="sourceModule" value="NoiseFRMF2"/> <property name="scale" value="0.10"/> </module> <module name="landBlendFactor2" type="Constant"> <property name="constant" value="-0.75"/> </module> <module name="landNoiseBlend2" type="Blend"> <property name="sourceModule1" value="landNoiseBlend"/> <property name="sourceModule2" value="FRMFScale2"/> <property name="controlModule" value="landBlendFactor2"/> </module> <module name="bands2" type="Cylinders"> <property name="frequency" value="0.000225"/> </module> <module name="invertbands2" type="InvertOutput"> <property name="sourceModule" value="bands2"/> </module> <module name="trans2" type="TranslateInput"> <property name="sourceModule" value="invertbands2"/> <property name="x" value="-2048"/> <property name="y" value="0"/> <property name="z" value="-2048"/> </module> <module name="landNoiseBias2" type="ScaleBiasOutput"> <property name="sourceModule" value="trans2"/> <property name="scale" value="0.525"/> <property name="bias" value="0.45"/> </module> <module name="borderSelect" type="Select"> <property name="sourceModule1" value="landNoiseBlend2"/> <property name="sourceModule2" value="landNoiseBias2"/> <property name="controlModule" value="landNoiseBias2"/> <property name="bounds" value="0.675, 1000"/> <property name="edgeFalloff" value="0.125"/> </module> <module name="val_wasteland" type="Constant"> <property name="constant" value="1.1"/> </module> <module name="wastelandborderSelect" type="Select"> <property name="sourceModule1" value="borderSelect"/> <property name="sourceModule2" value="val_wasteland"/> <property name="controlModule" value="landNoiseBias2"/> <property name="bounds" value="0.875, 1000"/> <property name="edgeFalloff" value="0.15"/> </module> <module name="biomeDither" type="FastTurbulence"> <property name="sourceModule" value="wastelandborderSelect"/> <property name="frequency" value="0.2"/> <property name="power" value="10"/> <property name="roughness" value="3"/> </module> <module name="biomeJiggle" type="FastTurbulence"> <property name="sourceModule" value="biomeDither"/> <property name="frequency" value="0.01"/> <property name="power" value="75"/> <property name="roughness" value="2"/> </module> <module name="clampOutput" type="ClampOutput"> <property name="sourceModule" value="biomeJiggle"/> <property name="bounds" value="0,1"/> </module> <module name="biomeOutput" type="BiomeIDMapper"> <property name="sourceModule" value="biomeJiggle"/> <property name="biomemap0.Name" value="pine_forest"/> <property name="biomemap0.Range" value="0.2,0.5"/> <property name="biomemap1.Name" value="snow"/> <property name="biomemap1.Range" value="0,0.2"/> <property name="biomemap2.Name" value="wasteland"/> <property name="biomemap2.Range" value="1.0,1000"/> <property name="biomemap3.Name" value="burnt_forest"/> <property name="biomemap3.Range" value="0.5,0.75"/> <property name="biomemap4.Name" value="desert"/> <property name="biomemap4.Range" value="0.75,1.0"/> </module> <output module="biomeOutput"/> </biome_generator> </append> Example: Link to comment Share on other sites More sharing options...
Necrodemus Posted February 3, 2019 Share Posted February 3, 2019 This is exactly what I was looking for and striving to achieve, when I could find time to devote to it. 16k is my target map size. Thank you for posting this. Link to comment Share on other sites More sharing options...
Annihlator Posted February 6, 2019 Author Share Posted February 6, 2019 Past few days I've been busy whenever I had time to do so and in my opinion have made good progress. I've just finished generating "Gozeva mountains" (67d27f69osiesol7wbk) on 16384 and love the result! Ive used the following block in rwgmixer.xml to attain the biome map; <!-- ========================================================== --> <!-- Biome Generator selection --> <!-- ========================================================== --> <set xpath="/rwgmixer/rulesets/ruleset[@name='vanillaMedium']/@biome_generator">banded</set> <!-- <set xpath="/rwgmixer/rulesets/ruleset[@name='vanillaLarge']/@biome_generator">banded</set> --> <!-- Sadly, broken... 16384 RWG uses 8192 preset in B9--> <!-- ========================================================== --> <!-- Biome Generators --> <!-- ========================================================== --> <append xpath="/rwgmixer/biome_generators"> <!--Biome Generator: bandedLarge--> <biome_generator name="banded"> <!-- Inner circles--> <module name="bands" type="Cylinders"> <property name="frequency" value="0.00005"/> </module> <module name="invertbands" type="InvertOutput"> <property name="sourceModule" value="bands"/> </module> <module name="rotate" type="RotateInput"> <property name="sourceModule" value="invertbands"/> <property name="xAngle" value="0"/> <property name="zAngle" value="1"/> </module> <module name="trans" type="TranslateInput"> <property name="sourceModule" value="rotate"/> <property name="x" value="-8192"/> <property name="y" value="0"/> <property name="z" value="-11264"/> </module> <module name="landNoiseBias" type="ScaleBiasOutput"> <property name="sourceModule" value="trans"/> <property name="scale" value="0.7"/> <property name="bias" value="0.6"/> </module> <module name="landNoiseCurve" type="CurveOutput"> <property name="sourceModule" value="landNoiseBias"/> <property name="source_module1" value="landNoiseBias"/> <property name="controlPoints" value="-0.5,-0.5;0.0,0.2;0.25,0.4;0.4,0.5;0.7,0.6;1.0,0.85"/> </module> <module name="landNoiseClamp" type="ClampOutput"> <property name="sourceModule" value="landNoiseCurve"/> <property name="bounds" value="0.1, 0.775"/> </module> <module name="landNoiseDither" type="FastTurbulence"> <property name="sourceModule" value="landNoiseClamp"/> <property name="frequency" value="0.001"/> <property name="power" value="60"/> <property name="roughness" value="2"/> </module> <!-- Randomnisation--> <module name="NoiseFRMF" type="FastRidgedMultifractal" seed_additive="2" no_seed="false"> <property name="frequency" value="0.001"/> </module> <module name="FRMFScale" type="ScaleBiasOutput"> <property name="sourceModule" value="NoiseFRMF"/> <property name="scale" value="0.75"/> <property name="bias" value="0.25"/> </module> <module name="FRMFCurve" type="CurveOutput"> <property name="sourceModule" value="FRMFScale"/> <property name="source_module1" value="FRMFScale"/> <property name="controlPoints" value="-0.25,-0.25;0.0,0.0;0.15,0.25;0.5,0.5;0.65,0.75;1.0,1.0"/> </module> <module name="landBlendFactor" type="Constant"> <property name="constant" value="-0.6"/> </module> <module name="landNoiseBlend" type="Blend"> <property name="sourceModule1" value="landNoiseDither"/> <property name="sourceModule2" value="FRMFCurve"/> <property name="controlModule" value="landBlendFactor"/> </module> <!-- More randomnisation --> <module name="NoiseFRMF2" type="FastRidgedMultifractal" seed_additive="8" no_seed="false"> <property name="frequency" value="0.0002"/> </module> <module name="FRMFScale2" type="ScaleBiasOutput"> <property name="sourceModule" value="NoiseFRMF2"/> <property name="scale" value="0.75"/> <property name="bias" value="0.0"/> </module> <module name="FRMF2Curve" type="CurveOutput"> <property name="sourceModule" value="FRMFScale2"/> <property name="source_module1" value="FRMFScale2"/> <property name="controlPoints" value="-0.25,-0.5;0.0,0.0;0.2,0.4;0.5,0.4;0.6,0.75;1.0,1.35"/> </module> <module name="landBlendFactor2" type="Constant"> <property name="constant" value="-0.6"/> </module> <module name="landNoiseBlend2" type="Blend"> <property name="sourceModule1" value="landNoiseBlend"/> <property name="sourceModule2" value="FRMF2Curve"/> <property name="controlModule" value="landBlendFactor2"/> </module> <!-- Outer circles --> <module name="bands2" type="Cylinders"> <property name="frequency" value="0.000055"/> </module> <module name="invertbands2" type="InvertOutput"> <property name="sourceModule" value="bands2"/> </module> <module name="trans2" type="TranslateInput"> <property name="sourceModule" value="invertbands2"/> <property name="x" value="-8192"/> <property name="y" value="0"/> <property name="z" value="-8192"/> </module> <module name="landNoiseBias2" type="ScaleBiasOutput"> <property name="sourceModule" value="trans2"/> <property name="scale" value="0.55"/> <property name="bias" value="0.5"/> </module> <module name="borderSelect" type="Select"> <property name="sourceModule1" value="landNoiseBlend2"/> <property name="sourceModule2" value="landNoiseBias2"/> <property name="controlModule" value="landNoiseBias2"/> <property name="bounds" value="0.65, 1000"/> <property name="edgeFalloff" value="0.15"/> </module> <module name="val_wasteland" type="Constant"> <property name="constant" value="1.1"/> </module> <module name="wastelandborderSelect" type="Select"> <property name="sourceModule1" value="borderSelect"/> <property name="sourceModule2" value="val_wasteland"/> <property name="controlModule" value="landNoiseBias2"/> <property name="bounds" value="0.85, 1000"/> <property name="edgeFalloff" value="0.175"/> </module> <!-- Dither / Jiggle and Clamp --> <module name="biomeDither" type="FastTurbulence"> <property name="sourceModule" value="wastelandborderSelect"/> <property name="frequency" value="0.2"/> <property name="power" value="20"/> <property name="roughness" value="3"/> </module> <module name="biomeJiggle" type="FastTurbulence"> <property name="sourceModule" value="biomeDither"/> <property name="frequency" value="0.01"/> <property name="power" value="100"/> <property name="roughness" value="2"/> </module> <module name="clampOutput" type="ClampOutput"> <property name="sourceModule" value="biomeJiggle"/> <property name="bounds" value="0,1"/> </module> <!-- BiomeMapper --> <module name="biomeOutput" type="BiomeIDMapper"> <property name="sourceModule" value="clampOutput"/> <property name="biomemap0.Name" value="pine_forest"/> <property name="biomemap0.Range" value="0.2,0.5"/> <property name="biomemap1.Name" value="snow"/> <property name="biomemap1.Range" value="0,0.2"/> <property name="biomemap2.Name" value="wasteland"/> <property name="biomemap2.Range" value="0.75,1.0"/> <property name="biomemap3.Name" value="burnt_forest"/> <property name="biomemap3.Range" value="0.5,0.75"/> <property name="biomemap4.Name" value="desert"/> <property name="biomemap4.Range" value="1.0,1000"/> </module> <output module="biomeOutput"/> </biome_generator> </append> I've tried to comment most pieces and mostly haven't been able to test properly wether the hub rule changes actually do much. Most of the blocks have been pieces that other people had posted in the past and simply didn't throw errors when used in the current state, some things i'd tried to cobble together myself did (I clearly don't really understand the L-system). All-in-all I do like the end result of the world that just had been output, so wanted to pass this along to here if anyone wants to experiment with it, too. I'm also experimenting with the following blocks of code though can't say for certain they all work as i'd expect, I still have a lot more of testing (and mainly waiting ) to do for that, though I'll post that along, just in case there would prove to be differences. Edit; as the second block would make this post too long I've alternatively uploaded my current rwgmixer.xml as-a whole; https://pastebin.com/and8Fc2A Note; A minor caveat is that in the current state 16384 RWG uses the 8192 preset; I haven't thought of a trick to make the code compatible to both 8192 and 16384 currently. Link to comment Share on other sites More sharing options...
Cirion Posted February 6, 2019 Share Posted February 6, 2019 Excellent, this should somewhat scratch one of the itches I've wanted which is biomes change radially/in difficult in a radius from 0,0.... Link to comment Share on other sites More sharing options...
Ragsy 2145 Posted February 6, 2019 Share Posted February 6, 2019 Very nice work , Post it up as a modlet (Work in Progress) in the main mod forum and all will see it then and give you feedback. https://7daystodie.com/forums/forumdisplay.php?61-Mods Link to comment Share on other sites More sharing options...
Annihlator Posted February 6, 2019 Author Share Posted February 6, 2019 Very nice work , Post it up as a modlet (Work in Progress) in the main mod forum and all will see it then and give you feedback. https://7daystodie.com/forums/forumdisplay.php?61-Mods I just did so https://7daystodie.com/forums/showthread.php?109335-Radial-Biomes-(16384-RWG) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.