Yay more caves! One time I was on a planet and I dug straight down for seemingly hours (2 minutes) before finding anything.
I was thinking about my digging habits when I play and that is what came out of my tinkering: So is the generation of the solid layer all pre-made before the cave generation? If so, that means a lot more air space underground, so a lot of lost resources to dig out per square Cube-o-meter right? A lot more exploration for sure is cool. Resources could be sticking to the background too then to mitigate some of the miles to cover for lost solid ground? Like a nice copper vein cut in half by a cave and the rest of that veins carry on the background tiles, still there for the taking. It is a complex suggestion but with a pretty cool and functional result. After all, the world is played in 2d, but it sure would give the underground design some more depth too. I really like the new algorithm for the caves! Great job at applying Mathematics to games That would be great to know from you Metadept what you think of it. From everybody else too for that matter.
i think you should varied algorithm of underground between planets, because traversing similar algorithm shape can make people bored, and it is more interesting if some algorithm linked to type of biome, giving biome unique danger and traversing method
THIS would be a neat feature - the ability for it to place ores and such in the background layer too. ^^
Have you also thought of having cave levels being different on planets. I.E. one planet may have a crazy amount of cave labryths similar to what would almost feel too much. And another might have a low quantity, while most have that sweet spot middle?
From the images, I kinda think there's such a thing as too -many- caves. It might just be me though. I agree on the one poster above, stick some very valuable ore right up against the lava layer, or have to place blocks in the lava and "tunnel" deeper to get to it somehow. I also think there should be the potential for an uber-meteor remnant on the surface that opens into a bunch of caves. A giant depression/dino killer meteor impact...
Great cavegeneration system, now FILL IT WITH INTERESTING STUFF > Lots and lots of interesting stuff. Tons of it. So there's a reason to dig there! Terraria did it quite nice with the layers, there was always a point to get digging - loot, enemies, even hell. IT might be me, but building -smoking good- hellevators was always a huge delight for me and my servermates. But! Since Starbound isn't all about digging and more about exploring, could we, possibly, get ourselves more ways to dig? Dig massively and speedily, like a good bunch of space explorers. Please, don't let Starbound become another game about digging! It will make occasional rants (like mine) appear!
Lower the rate of enemy encounters, mob encounter to be more precise, it ruins immersion. Between that second picture with regular shaped caves is best.
Looks Great , Nice work Guys!! i have no idea how to create content, I would love a boat and surfboard!! and beach house materials! , for ocean biome !!
Today's diffs (HI NEURO): Code: FILES ----- biomes\distributions.config [NEW] damage\sawblade.damage dungeons\human\humanprison\humanprison.dungeon dungeons\microdungeons\platforming\iceplatforming\iceplatforming.dungeon interface\statuses\cold.png interface\statuses\glow.png interface\statuses\heal.png interface\statuses\invisible.png interface\statuses\irradiated.png interface\statuses\jumpboost.png interface\statuses\runboost.png [NEW] items\armors\biome\eyepatch\eyeball\bsleeve.png [NEW] items\armors\biome\eyepatch\eyeball\chest.png [NEW] items\armors\biome\eyepatch\eyeball\eyeball.chest [NEW] items\armors\biome\eyepatch\eyeball\eyeball.head [NEW] items\armors\biome\eyepatch\eyeball\eyeball.legs [NEW] items\armors\biome\eyepatch\eyeball\fsleeve.png [NEW] items\armors\biome\eyepatch\eyeball\head.png [NEW] items\armors\biome\eyepatch\eyeball\headicon.png [NEW] items\armors\biome\eyepatch\eyeball\icons.png [NEW] items\armors\biome\eyepatch\eyeball\mask.png [NEW] items\armors\biome\eyepatch\eyeball\pants.png [NEW] items\generic\crafting\ancientbones.item [NEW] items\guns\biome\eyestalk\eyeblaster\eyeblaster.frames [NEW] items\guns\biome\eyestalk\eyeblaster\eyeblaster.gun [NEW] items\guns\biome\eyestalk\eyeblaster\eyeblaster.png [NEW] items\guns\biome\eyestalk\eyeblaster\icon.png objects\avian\propeller\propeller.object [NEW] objects\avian\propeller\propellerleft.frames [NEW] objects\avian\propeller\propellerleft.png [NEW] objects\avian\propeller\propellerright.frames [NEW] objects\avian\propeller\propellerright.png [NEW] objects\avian\propeller\propellertop.frames [NEW] objects\avian\propeller\propellertop.png objects\avian\sawblade\sawblade.object [NEW] objects\obstacles\ice\icespike\icespike.object [NEW] objects\obstacles\ice\icespike\icespikebottom.frames [NEW] objects\obstacles\ice\icespike\icespikebottom.png [NEW] objects\obstacles\ice\icespike\icespikeicon.png [NEW] objects\obstacles\ice\icespike\icespikeleft.frames [NEW] objects\obstacles\ice\icespike\icespikeleft.png [NEW] objects\obstacles\ice\icespike\icespikeright.frames [NEW] objects\obstacles\ice\icespike\icespikeright.png [NEW] objects\obstacles\ice\icespike\icespiketop.frames [NEW] objects\obstacles\ice\icespike\icespiketop.png [NEW] objects\obstacles\ice\icestalactite1\ceilingicon.png [NEW] objects\obstacles\ice\icestalactite1\icestalactite1.frames [NEW] objects\obstacles\ice\icestalactite1\icestalactite1.object [NEW] objects\obstacles\ice\icestalactite1\icestalactite1.png [NEW] objects\obstacles\ice\icestalactite2\ceilingicon.png [NEW] objects\obstacles\ice\icestalactite2\icestalactite2.frames [NEW] objects\obstacles\ice\icestalactite2\icestalactite2.object [NEW] objects\obstacles\ice\icestalactite2\icestalactite2.png [NEW] objects\obstacles\ice\icestalactite3\ceilingicon.png [NEW] objects\obstacles\ice\icestalactite3\icestalactite3.frames [NEW] objects\obstacles\ice\icestalactite3\icestalactite3.object [NEW] objects\obstacles\ice\icestalactite3\icestalactite3.png [NEW] objects\obstacles\ice\icestalactite4\ceilingicon.png [NEW] objects\obstacles\ice\icestalactite4\icestalactite4.frames [NEW] objects\obstacles\ice\icestalactite4\icestalactite4.object [NEW] objects\obstacles\ice\icestalactite4\icestalactite4.png objects\wired\shieldgenerator\shieldgenerator.lua [NEW] plants\bushes\groundocean\seabush\cone1.png [NEW] plants\bushes\groundocean\seabush\cone2.png [NEW] plants\bushes\groundocean\seabush\cone3.png [NEW] plants\bushes\groundocean\seabush\cone4.png [NEW] plants\bushes\groundocean\seabush\cone5.png [NEW] plants\bushes\groundocean\seabush\coral1.png [NEW] plants\bushes\groundocean\seabush\coral2.png [NEW] plants\bushes\groundocean\seabush\coral3.png [NEW] plants\bushes\groundocean\seabush\coral4.png [NEW] plants\bushes\groundocean\seabush\coral5.png [NEW] plants\bushes\groundocean\seabush\oshroom1.png [NEW] plants\bushes\groundocean\seabush\oshroom2.png [NEW] plants\bushes\groundocean\seabush\oshroom3.png [NEW] plants\bushes\groundocean\seabush\oshroom4.png [NEW] plants\bushes\groundocean\seabush\oshroom5.png [NEW] plants\bushes\groundocean\seabush\seagrass1.png [NEW] plants\bushes\groundocean\seabush\seagrass2.png [NEW] plants\bushes\groundocean\seabush\seagrass3.png [NEW] plants\bushes\groundocean\seabush\seagrass4.png [NEW] plants\bushes\groundocean\seabush\seagrass5.png [NEW] plants\bushes\groundocean\seabush\seaweed1.png [NEW] plants\bushes\groundocean\seabush\seaweed2.png [NEW] plants\bushes\groundocean\seabush\seaweed3.png [NEW] plants\bushes\groundocean\seabush\seaweed4.png [NEW] plants\bushes\groundocean\seabush\seaweed5.png [NEW] plants\trees\seatrees\foliage\bubbles\basefoliage1.png [NEW] plants\trees\seatrees\foliage\bubbles\basefoliage2.png [NEW] plants\trees\seatrees\foliage\bubbles\basefoliage3.png [NEW] plants\trees\seatrees\foliage\bubbles\basefoliage4.png [NEW] plants\trees\seatrees\foliage\bubbles\crownfoliage1.png [NEW] plants\trees\seatrees\foliage\bubbles\crownfoliage2.png [NEW] plants\trees\seatrees\foliage\bubbles\crownfoliage3.png [NEW] plants\trees\seatrees\foliage\bubbles\crownfoliage4.png [NEW] plants\trees\seatrees\foliage\bubbles\foliage1.png [NEW] plants\trees\seatrees\foliage\bubbles\foliage2.png [NEW] plants\trees\seatrees\foliage\bubbles\foliage3.png [NEW] plants\trees\seatrees\foliage\bubbles\foliage4.png [NEW] plants\trees\seatrees\foliage\flowy\basefoliage1.png [NEW] plants\trees\seatrees\foliage\flowy\basefoliage2.png [NEW] plants\trees\seatrees\foliage\flowy\basefoliage3.png [NEW] plants\trees\seatrees\foliage\flowy\basefoliage4.png [NEW] plants\trees\seatrees\foliage\flowy\crownfoliage1.png [NEW] plants\trees\seatrees\foliage\flowy\crownfoliage2.png [NEW] plants\trees\seatrees\foliage\flowy\crownfoliage3.png [NEW] plants\trees\seatrees\foliage\flowy\crownfoliage4.png [NEW] plants\trees\seatrees\foliage\flowy\foliage1.png [NEW] plants\trees\seatrees\foliage\flowy\foliage2.png [NEW] plants\trees\seatrees\foliage\flowy\foliage3.png [NEW] plants\trees\seatrees\foliage\flowy\foliage4.png [NEW] plants\trees\seatrees\foliage\leafy\basefoliage1.png [NEW] plants\trees\seatrees\foliage\leafy\basefoliage2.png [NEW] plants\trees\seatrees\foliage\leafy\basefoliage3.png [NEW] plants\trees\seatrees\foliage\leafy\basefoliage4.png [NEW] plants\trees\seatrees\foliage\leafy\crownfoliage1.png [NEW] plants\trees\seatrees\foliage\leafy\crownfoliage2.png [NEW] plants\trees\seatrees\foliage\leafy\crownfoliage3.png [NEW] plants\trees\seatrees\foliage\leafy\crownfoliage4.png [NEW] plants\trees\seatrees\foliage\leafy\foliage1.png [NEW] plants\trees\seatrees\foliage\leafy\foliage2.png [NEW] plants\trees\seatrees\foliage\leafy\foliage3.png [NEW] plants\trees\seatrees\foliage\leafy\foliage4.png [NEW] plants\trees\seatrees\foliage\wavy\basefoliage1.png [NEW] plants\trees\seatrees\foliage\wavy\basefoliage2.png [NEW] plants\trees\seatrees\foliage\wavy\basefoliage3.png [NEW] plants\trees\seatrees\foliage\wavy\basefoliage4.png [NEW] plants\trees\seatrees\foliage\wavy\crownfoliage1.png [NEW] plants\trees\seatrees\foliage\wavy\crownfoliage2.png [NEW] plants\trees\seatrees\foliage\wavy\crownfoliage3.png [NEW] plants\trees\seatrees\foliage\wavy\crownfoliage4.png [NEW] plants\trees\seatrees\foliage\wavy\foliage1.png [NEW] plants\trees\seatrees\foliage\wavy\foliage2.png [NEW] plants\trees\seatrees\foliage\wavy\foliage3.png [NEW] plants\trees\seatrees\foliage\wavy\foliage4.png [NEW] plants\trees\seatrees\stem\seaweed\base1.png [NEW] plants\trees\seatrees\stem\seaweed\base2.png [NEW] plants\trees\seatrees\stem\seaweed\base3.png [NEW] plants\trees\seatrees\stem\seaweed\base4.png [NEW] plants\trees\seatrees\stem\seaweed\crown1.png [NEW] plants\trees\seatrees\stem\seaweed\crown2.png [NEW] plants\trees\seatrees\stem\seaweed\crown3.png [NEW] plants\trees\seatrees\stem\seaweed\crown4.png [NEW] plants\trees\seatrees\stem\seaweed\mid1.png [NEW] plants\trees\seatrees\stem\seaweed\mid2.png [NEW] plants\trees\seatrees\stem\seaweed\mid3.png [NEW] plants\trees\seatrees\stem\seaweed\mid4.png [NEW] recipes\weapons\tier3\giganticsnowball.recipe [NEW] recipes\weapons\tier3\largesnowball.recipe [NEW] recipes\weapons\tier3\mediumsnowball.recipe [NEW] recipes\weapons\tier3\snowball.recipe [NEW] recipes\weapons\tier3\throwingbones.recipe [NEW] sfx\melee\sawblade_hit_organic.wav [NEW] sfx\melee\sawblade_hit_robotic.wav [NEW] sfx\melee\sawblade_kill_organic.wav stats\effects\melting\melting.lua terrain\cave\normalcaves.terrain DIFFS ----- biomes\distributions.config 127,128c127,128 < "modulus" : 2, < "modulusVariance" : 2, --- > "modulus" : 3.5, > "modulusVariance" : 2.5, dungeons\human\humanprison\humanprison.dungeon 5,6c5 < "rules" : [ < ], --- > "rules" : [ ], 10c9,10 < "maxParts" : 100 --- > "maxParts" : 100, > "protected" : true 167c167 < "brush" : [ [ "clear" ], [ "object", "humangenerator", { "direction" : "left", "parameters" : { "defaultSwitchState" : true } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "humangenerator", { "direction" : "left", "parameters" : { "defaultState" : true } } ] ] 173c173 < "brush" : [ [ "clear" ], [ "object", "humangenerator", { "direction" : "right", "parameters" : { "defaultSwitchState" : true } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "humangenerator", { "direction" : "right", "parameters" : { "defaultState" : true } } ] ] dungeons\microdungeons\platforming\iceplatforming\iceplatforming.dungeon 439,440c439,440 < "comment" : "icestalagtite", < "brush" : [ [ "random", [ [ "object", "icestalagtite1" ], [ "object", "icestalagtite2" ], [ "object", "icestalagtite3" ], [ "object", "icestalagtite4" ] ] ] ] --- > "comment" : "icestalactite", > "brush" : [ [ "random", [ [ "object", "icestalactite1" ], [ "object", "icestalactite2" ], [ "object", "icestalactite3" ], [ "object", "icestalactite4" ] ] ] ] objects\avian\propeller\propeller.object 21a22,23 > "direction" : "left", > "flipImages" : true, 25,26c27,127 < "spaceScan" : 0.1, < "anchors" : [ "bottom" ] --- > "spaces" : [ [-1, 0], [0, 0], [1, 0], [0, 1], [0, 2], [-4, 3], [-3, 3], [-2, 3], [-1, 3], [0, 3], [1, 3], [2, 3], [3, 3], [4, 3], [-4, 4], [-3, 4], [-2, 4], [-1, 4], [0, 4], [1, 4], [2, 4], [3, 4], [4, 4], [-1, 5], [0, 5], [1, 5] ], > "anchors" : [ "bottom" ], > > "touchDamage" : { > "poly" : [ [-3.5, 3.9], [-3.5, 4.8], [4.5, 4.8], [4.5, 3.9] ], > "damage" : 80, > > "damageType" : "IgnoresDef", > "damageSourceKind" : "2hsword" > } > }, > { > "image" : "propeller.png:<color>.<frame>", > "imagePosition" : [-28, 0], > "direction" : "right", > "frames" : 4, > "animationCycle" : 0.1, > > "spaces" : [ [-1, 0], [0, 0], [1, 0], [0, 1], [0, 2], [-4, 3], [-3, 3], [-2, 3], [-1, 3], [0, 3], [1, 3], [2, 3], [3, 3], [4, 3], [-4, 4], [-3, 4], [-2, 4], [-1, 4], [0, 4], [1, 4], [2, 4], [3, 4], [4, 4], [-1, 5], [0, 5], [1, 5] ], > "anchors" : [ "bottom" ], > > "touchDamage" : { > "poly" : [ [-3.5, 3.9], [-3.5, 4.8], [4.5, 4.8], [4.5, 3.9] ], > "damage" : 80, > > "damageType" : "IgnoresDef", > "damageSourceKind" : "2hsword" > } > }, > { > "image" : "propellertop.png:<color>.<frame>", > "imagePosition" : [-28, -40], > "direction" : "left", > "flipImages" : true, > "frames" : 4, > "animationCycle" : 0.1, > > "spaces" : [ [-1, 0], [0, 0], [1, 0], [0, -1], [0, -2], [-4, -3], [-3, -3], [-2, -3], [-1, -3], [0, -3], [1, -3], [2, -3], [3, -3], [4, -3], [-4, -4], [-3, -4], [-2, -4], [-1, -4], [0, -4], [1, -4], [2, -4], [3, -4], [4, -4], [-1, -5], [0, -5], [1, -5] ], > "anchors" : [ "top" ], > > "touchDamage" : { > "poly" : [ [-3.5, -2.8], [-3.5, -3.7], [4.5, -3.7], [4.5, -2.8] ], > "damage" : 80, > > "damageType" : "IgnoresDef", > "damageSourceKind" : "2hsword" > } > }, > { > "image" : "propellertop.png:<color>.<frame>", > "imagePosition" : [-28, -40], > "direction" : "right", > "frames" : 4, > "animationCycle" : 0.1, > > "spaces" : [ [-1, 0], [0, 0], [1, 0], [0, -1], [0, -2], [-4, -3], [-3, -3], [-2, -3], [-1, -3], [0, -3], [1, -3], [2, -3], [3, -3], [4, -3], [-4, -4], [-3, -4], [-2, -4], [-1, -4], [0, -4], [1, -4], [2, -4], [3, -4], [4, -4], [-1, -5], [0, -5], [1, -5] ], > "anchors" : [ "top" ], > > "touchDamage" : { > "poly" : [ [-3.5, -2.8], [-3.5, -3.7], [4.5, -3.7], [4.5, -2.8] ], > "damage" : 80, > > "damageType" : "IgnoresDef", > "damageSourceKind" : "2hsword" > } > }, > { > "image" : "propellerleft.png:<color>.<frame>", > "imagePosition" : [0, -28], > "direction" : "right", > "frames" : 4, > "animationCycle" : 0.1, > > "spaces" : [ [0, 1], [0, 0], [0, -1], [1, 0], [2, 0], [3, 4], [3, 3], [3, 2], [3, 1], [3, 0], [3, -1], [3, -2], [3, -3], [3, -4], [4, 4], [4, 3], [4, 2], [4, 1], [4, 0], [4, -1], [4, -2], [4, -3], [4, -4], [5, 1], [5, 0], [5, -1] ], > "anchors" : [ "left" ], > > "touchDamage" : { > "poly" : [ [3.9, 4.5], [4.8, 4.5], [4.8, -3.5], [3.9, -3.5] ], > "damage" : 80, > > "damageType" : "IgnoresDef", > "damageSourceKind" : "2hsword" > } > }, > { > "image" : "propellerright.png:<color>.<frame>", > "imagePosition" : [-40, -28], > "direction" : "right", > "frames" : 4, > "animationCycle" : 0.1, > > "spaces" : [ [0, 1], [0, 0], [0, -1], [-1, 0], [-2, 0], [-3, 4], [-3, 3], [-3, 2], [-3, 1], [-3, 0], [-3, -1], [-3, -2], [-3, -3], [-3, -4], [-4, 4], [-4, 3], [-4, 2], [-4, 1], [-4, 0], [-4, -1], [-4, -2], [-4, -3], [-4, -4], [-5, 1], [-5, 0], [-5, -1] ], > "anchors" : [ "right" ], > > "touchDamage" : { > "poly" : [ [-2.8, 4.5], [-3.7, 4.5], [-3.7, -3.5], [-2.8, -3.5] ], > "damage" : 80, > > "damageType" : "IgnoresDef", > "damageSourceKind" : "2hsword" > } objects\avian\sawblade\sawblade.object 17,38d16 < "particleEmitter" : { < "emissionRate" : 0.1, < "emissionVariance" : 0.05, < "pixelOrigin" : [0, 0], < < "particle" : { < "type" : "textured", < "image" : "/particles/hazard/hazardstat.png", < "size" : 1.0, < "color" : [73, 179, 253, 255], < "fade" : 0, < "destructionAction" : "shrink", < "destructionTime" : 7, < "initialVelocity" : [3, 4], < "finalVelocity" : [-3, 2], < "approach" : [4, 1], < "timeToLive" : 1, < "layer" : "middle" < } < < }, < 46c24,27 < "animationCycle" : 0.3, --- > "animationCycle" : 0.2, > > "spaces" : [ [-2, 0], [-1, 0], [0, 0], [1, 0], [-2, 1], [-1, 1], [0, 1], [1, 1] ], > "anchors" : [ "bottom" ], 48,49c29,35 < "spaceScan" : 0.1, < "anchors" : [ "bottom" ] --- > "touchDamage" : { > "poly" : [ [-1.8, 0.3], [-0.8, 2.0], [0.8, 2.0], [1.8, 0.3] ], > "damage" : 80, > > "damageType" : "IgnoresDef", > "damageSourceKind" : "sawblade" > } 57c43 < "animationCycle" : 0.3, --- > "animationCycle" : 0.2, 59,60c45,54 < "spaceScan" : 0.1, < "anchors" : [ "top" ] --- > "spaces" : [ [-2, 0], [-1, 0], [0, 0], [1, 0], [-2, -1], [-1, -1], [0, -1], [1, -1] ], > "anchors" : [ "top" ], > > "touchDamage" : { > "poly" : [ [-1.8, 0.7], [-0.8, -1.0], [0.8, -1.0], [1.8, 0.7] ], > "damage" : 80, > > "damageType" : "IgnoresDef", > "damageSourceKind" : "sawblade" > } 68c62,65 < "animationCycle" : 0.3, --- > "animationCycle" : 0.2, > > "spaces" : [ [1, 1], [0, 1], [1, 0], [0, 0], [1, -1], [0, -1], [1, -2], [0, -2] ], > "anchors" : [ "left" ], 70,71c67,73 < "spaceScan" : 0.1, < "anchors" : [ "left" ] --- > "touchDamage" : { > "poly" : [ [0.3, 2.0], [2, 0.8], [2, -0.8], [0.3, -2.0] ], > "damage" : 80, > > "damageType" : "IgnoresDef", > "damageSourceKind" : "sawblade" > } 79c81 < "animationCycle" : 0.3, --- > "animationCycle" : 0.2, 81,82c83,92 < "spaceScan" : 0.1, < "anchors" : [ "right" ] --- > "spaces" : [ [-1, 1], [0, 1], [-1, 0], [0, 0], [-1, -1], [0, -1], [-1, -2], [0, -2] ], > "anchors" : [ "right" ], > > "touchDamage" : { > "poly" : [ [0.7, 2.0], [-1, 0.8], [-1, -0.8], [0.7, -2.0] ], > "damage" : 80, > > "damageType" : "IgnoresDef", > "damageSourceKind" : "sawblade" > } 89,90d98 < < //TODO: touch damage objects\wired\shieldgenerator\shieldgenerator.lua 6c6,7 < entity.setInteractive(entity.configParameter("interactive", true)) --- > entity.setInteractive(entity.configParameter("interactive", true) and not (entity.inboundNodeCount() > 0 and entity.isInboundNodeConnected(0))) > 8,10c9 < output(entity.configParameter("defaultSwitchState", false)) < else < output(storage.state) --- > storage.state = entity.configParameter("defaultState", true); 13,14c12,15 < if storage.triggered == nil then < storage.triggered = false --- > updateAnimationState(storage.state) > > if entity.outboundNodeCount() > 0 then > entity.setOutboundNodeLevel(0, storage.state) 15a17,18 > > script.setUpdateDelta(0); 21a25,32 > function onNodeConnectionChange(args) > entity.setInteractive(entity.configParameter("interactive", true) and not entity.isInboundNodeConnected(0)) > end > > function onInboundNodeChange(args) > output(entity.getInboundNodeLevel(0)) > end > 23c34,44 < storage.state = state --- > if state ~= storage.state then > storage.state = state > updateAnimationState(storage.state) > world.setTileProtection(self.dungeonId, storage.state) > if entity.outboundNodeCount() > 0 then > entity.setOutboundNodeLevel(0, storage.state) > end > end > end > > function updateAnimationState(state) 32,41d52 < end < world.setTileProtection(self.dungeonId, storage.state) < end < < function update(args) < if entity.getInboundNodeLevel(0) and not storage.triggered then < storage.triggered = true < output(not storage.state) < elseif storage.triggered and not entity.getInboundNodeLevel(0) then < storage.triggered = false stats\effects\melting\melting.lua 10c10 < self.damage = 20 --- > self.damage = 30 14c14 < damage = 20, --- > damage = 30, 23c23 < self.damage = self.damage + 20 --- > self.damage = self.damage * 2 terrain\cave\normalcaves.terrain 11c11 < "layerDensity" : 0.1, --- > "layerDensity" : 0.05, 13c13 < "surfaceDensity" : 0.015, --- > "surfaceDensity" : 0.02, 19c19 < "frequency" : 0.008, --- > "frequency" : 0.009, 27c27 < "frequency" : 0.011, --- > "frequency" : 0.01, 29c29 < "bias" : 0 --- > "bias" : -0.05 38c38 < "bias" : 9 --- > "bias" : 10 73c73 < "bias" : -0.7 --- > "bias" : -0.9 81,82c81,82 < "amplitude" : 20, < "bias" : 30 --- > "amplitude" : 24, > "bias" : 38 89,90c89,90 < "amplitude" : 6, < "bias" : -8 --- > "amplitude" : 8, > "bias" : -14 112c112 < "numberOfWormsPerSectorRange" : [0.2, 0.3], --- > "numberOfWormsPerSectorRange" : [0.2, 0.2], 115,116c115,116 < "wormSizeRange" : [2, 5], < "wormLengthRange" : [50, 120], --- > "wormSizeRange" : [2.5, 4], > "wormLengthRange" : [60, 120], 119c119 < "wormTurnChance" : 0.25, --- > "wormTurnChance" : 0.2,
I agree, a varied algorithm between different kinds of planets would be representative of differences in the geological processes or parameters between different planets. On Earth caves formed by lava and volcanic activity look different from caves formed by water and erosion. Naturally though, Starbound has could have more kinds of caves, caves formed from massive root systems that have long since decayed, or formed by giant rockworms that may or may not be extinct, or formed (or simply widened) through giant tentacle activity of a currently infested planet. I'd almost suggesting making cave algorithms biome specific but trying to get the ends at biome borders to match up sounds like utter insanity. Ultimately gameplay trumps realism, so some variations in the algorithm's parameters on different base planet\ types would be awesome enough.
I agree with the idea of randomizaiton of frequency and sizes of caves generated for the planet. Such variation would actually be quite nice, I'd say, making planets more different from each other. Plus, I'd like to be able to explore vast cave systems on some planets and on some I'd rather have areas of solid rock for the sake of mining and underground facility construction.
Well that was an interesting read. Nice to see the cave gen is being tweaked and modified a bit. Like quite a few that have mentioned above, I hope or it would be nice if there was a way to make the cave algorithm variable in density, as well some for each type. Shape size. Well at least the density part would be fine by me; the other extra things beyond like size, shape, height, etc.. would be a bonus. With that said, having each planet have those variables added to create quite a bit of randomness. Could be even influenced by biome to a degree, if not some other factors like hazards. So in a way I actually like what @Witness had said above me; so I don't see the same generation per biome or even per planet. The more varied, the better; especially if biomes themself had similarities within their biome, but quite varied enough to say it is a different planet to an extent. (Of what I have mentioned doesn't take into account of mini-dungeons and the like that is more or less placed after the cave gen.) Of course that might be pretty complex to get it done, but would be nice in the long run, even if it is only just the primary density variable that get messed with.