Read by Council New planet type suggestion to supplement dodecahedrons

    Joined
    Feb 27, 2014
    Messages
    1,074
    Reaction score
    504
    • Purchased!
    • Legacy Citizen 4
    • Top Forum Contributor
    Sounds awesome, I dont fully understand the concept though......
    Could someone please flesh it out for me :?
    Thanks!
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    Just cut some space out of the square segments and shape them to look like natural island/continents. Potentially, given a large enough planet size one island could be twice the size of one of the old planets with minimal lag issues on decent computers, so things getting too small isn't really a concern.
    Cutting up the continents would be no problem. Forming the ocean mesh around the continents gets more complicated, but maybe that would be no problem also.

    Sounds awesome, I dont fully understand the concept though......
    Could someone please flesh it out for me :?
    Thanks!
    Here is a basic idea from a profile/cutaway kind of view to help clarify the layers.
    MeshPlanet1.png
     
    Last edited:

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    Now I need a MC/Starmade mod that lets me spawn in giant spheres so I can test out feasible continent sizes vs. ocean sphere sizes.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    I just realized that this solution hits two proverbial birds with a single stone... It allows planets with a sufficient radius to look cool, while not causing them to contain millions and millions of resources and limiting the amount of real estate on a single planet somewhat.
     
    Joined
    Aug 21, 2015
    Messages
    165
    Reaction score
    87
    • Community Content - Bronze 1
    • Purchased!
    This approach to planets is essentially a more generalized case of the current planets. You could easily make the current dodecahedron planets in this new style. However, this approach offers significantly more flexibility.

    An easy way to handle the ocean/atmosphere mesh might be:
    • Entities stop upon contacting the outside of the mesh
    • Entities may pass through the mesh after stopping
    • Entities inside the mesh have a drag parameter, like space. Thin liquids would have low drag (but higher than space), thick liquids would have high drag. This means it requires more thrust to move in the liquid mesh, and you'll accelerate slower and maybe never reach max server speed. Also, with planet gravity, a ship with a poor thrust-to-mass ratio could get trapped in the liquid and sink to the bedrock. Enter with big ships at your own risk!
    You shouldn't even have to dynamically shape the mesh around continents. Make the ocean mesh clip into the continental plates, cull the mesh faces that are hidden inside the plates, and use a shader to show/hide rendering of the mesh based on whether its in a continent or not. You could also use a shader for fun volumetric effects like fog underneath the mesh radius.
     
    • Like
    Reactions: jayman38
    Joined
    Aug 28, 2013
    Messages
    1,831
    Reaction score
    374
    • Legacy Citizen 2
    • Top Forum Contributor
    • Legacy Citizen
    You shouldn't even have to dynamically shape the mesh around continents. Make the ocean mesh clip into the continental plates, cull the mesh faces that are hidden inside the plates, and use a shader to show/hide rendering of the mesh based on whether its in a continent or not. You could also use a shader for fun volumetric effects like fog underneath the mesh radius.
    The thing is, unless you want to prohibit underground bases, you'll need to cut out the oceans around the continents. Otherwise all the rooms will be flooded.
     
    Joined
    Aug 21, 2015
    Messages
    165
    Reaction score
    87
    • Community Content - Bronze 1
    • Purchased!
    The thing is, unless you want to prohibit underground bases, you'll need to cut out the oceans around the continents. Otherwise all the rooms will be flooded.
    There aren't any flooded underground bases in my suggestion, unless you want them.

    There are two parts to this discussion: the visual display of the ocean, and the in-game mechanical effects of being in the water (liquid drag, drowning, whatever). These two things are largely separable.

    My suggestion was for the visual portion. Assuming you know where your continents are, you don't have to "cut" the mesh to hide it, just use a shader to not display the ocean mesh when you're in a "continent" region. A shader would likely already be used to smooth and animate the ocean mesh to save on triangles rendered, so this is just adding a visibility check before you apply the normal shader behavior.

    To put it another way, the game state would provide whether a given voxel's space is "continental" or not. These spaces would never have the ocean mesh shown, and they would inform an entirely different portion of code as to what the drag, etc., for that voxel should be.

    This has a nice benefit of not requiring dynamically "re-cutting" the mesh every time some player excavates an edge near the ocean. The game just updates the excavated voxel's spaces as "ocean" or "non-continental" and the ocean mesh is automatically rendered there. It was present there all along, invisible, just waiting until its needed.
     
    Joined
    Aug 21, 2013
    Messages
    237
    Reaction score
    76
    • Legacy Citizen 2
    • Purchased!
    • Community Content - Bronze 1
    Though I like jayman38 's idea, it presents a couple of issues that need to be addressed:

    1) A large amount of the surface of the planet will be the 'ocean' mesh. This is not a voxel, so it can't be mined or built upon. This creates a disjunction with the game: we can't interact with this thing (aside from standing on it).

    2) Having an 'ocean layer' works for planets that have liquids of one sort or another (water, lava, methane, mercury, etc). It does not work for planets that don't have liquids. I can accept mining beams not working on or through liquids, but I can't understand them not working on solid dirt or sand. I can understand not being able to build voxels on liquids, but can I build on the barren fields of rocky 'ocean?' I can understand an ocean with no life or formations anything interesting to look at, but not a barren landscape that has no hills, plateaus, canyons, or rocks.
    This can be solved by saying that all planets have some sort of liquid... but that's not an intuitive way for space to work.

    3) What happens when I'm below the surface of the 'ocean' mesh? Lets say that on a continent I dig a tunnel 100 blocks down, then 1,000 blocks to the right. What does it look like? What's down there? Can I swim? Then let's say I'm on a planet where the 'ocean' layer is rock, what do I see at the end of my tunnel?
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    Though I like jayman38 's idea, it presents a couple of issues that need to be addressed:

    1) A large amount of the surface of the planet will be the 'ocean' mesh. This is not a voxel, so it can't be mined or built upon. This creates a disjunction with the game: we can't interact with this thing (aside from standing on it).

    2) Having an 'ocean layer' works for planets that have liquids of one sort or another (water, lava, methane, mercury, etc). It does not work for planets that don't have liquids. I can accept mining beams not working on or through liquids, but I can't understand them not working on solid dirt or sand. I can understand not being able to build voxels on liquids, but can I build on the barren fields of rocky 'ocean?' I can understand an ocean with no life or formations anything interesting to look at, but not a barren landscape that has no hills, plateaus, canyons, or rocks.
    This can be solved by saying that all planets have some sort of liquid... but that's not an intuitive way for space to work.

    3) What happens when I'm below the surface of the 'ocean' mesh? Lets say that on a continent I dig a tunnel 100 blocks down, then 1,000 blocks to the right. What does it look like? What's down there? Can I swim? Then let's say I'm on a planet where the 'ocean' layer is rock, what do I see at the end of my tunnel?
    1) Same with planet cores. However, since the ocean won't kill you, you can build on it and land on it (and hopefully in the future, dive below the surface, depending on how liquids are redefined in the future, hopefully, as a high-friction atmosphere-type environment that simulates water.) Also, depending on how fauna and resource gathering changes in the future, you might be able to mine liquid oceans for fuel and/or sea creatures. If it is a solid surface, you should be able to lay down an entity on the surface (not docking, just sitting there) and build up with that entity. The gravity will affect the entity based on its Center of Mass. I don't see why you couldn't build a city in the middle of nowhere. (New Galactic Las Vegas, baby!)

    2) Solid "oceans" were discussed in the OP. they will essentially be giant rocks, which will have a mining "HP", so you can mine it or damage it as a whole until it is gone. You will be able to lay down entities on the surface of the ocean mesh (if it's rocky, otherwise if it is liquid, and if liquids have been properly simulated in the game at that point, the entity will sink beneath the waves...), because of gravity all around the planet pointing at the center. (Versus simply "down" on each continent.) The oceans won't be barren for long: The fauna update cometh.

    3) This is a concern of mine as well. The end of the tunnel, depends entirely on how this idea is implemented. If there is a liquid ocean, hopefully, the tunnel fills with some sort of flowing water (maybe a shader, similar to how the oceans are rendered?) and maybe you can swim out into the ocean. If a rock, I imagine it would be an impenetrable rock wall. You would still be able to "mine" the mesh as discussed in point 2.
     
    • Like
    Reactions: Ithirahad
    Joined
    Jul 26, 2013
    Messages
    122
    Reaction score
    28
    • Purchased!
    Yeah, I placed squares to show how relatively easy it would be. It would be nice to have more natural-looking continents. I'm not sure how dynamic meshes (and associated water blocks) work versus static ones, so I'm not sure how more natural continents would work.
    Plate Tectonics? A plate tectonic can have either an ocean, or a landmass. The entire planet would be covered in plates with randomly generated, irregular shapes. They would fit together like a jigsaw so that they wouldn't leave any gaps. They would of course be limited in size - otherwise they wouldn't connect well, but you could get decent sized continents if several plates generated as land next to each other.

    Schema! Please add this or something similar! Dodecahedron planets are absolutely hideous!
     
    Last edited:

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    If it is a solid surface, you should be able to lay down an entity on the surface (not docking, just sitting there) and build up with that entity.
    Very minor note, but this is not a good idea, by the way. Any buildings on the mesh part of a planet (the seafloor, etc.) should be either 'docked' to the mesh or static like a station. Otherwise the thing will be constantly colliding with the mesh... And jiggling around by miniscule amounts... and generating lag.
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    Plate Tectonics? A plate tectonic can have either an ocean, or a landmass. The entire planet would be covered in plates with randomly generated, irregular shapes. They would fit together like a jigsaw so that they wouldn't leave any gaps. They would of course be limited in size - otherwise they wouldn't connect well, but you could get decent sized continents if several plates generated as land next to each other.

    Schema! Please add this or something similar! Dodecahedron planets are absolutely hideous!
    One of the benefits of this will be that multiple plates won't be touching each other. You could test it out on a server once implemented, but if you have multiple "continents" touching, you'll have the same interaction lag you see with current planets, especially with mass-salvage operations. Keeping the continents separated is part of the plan to keep lag minimal on this planet type.

    Very minor note, but this is not a good idea, by the way. Any buildings on the mesh part of a planet (the seafloor, etc.) should be either 'docked' to the mesh or static like a station. Otherwise the thing will be constantly colliding with the mesh... And jiggling around by miniscule amounts... and generating lag.
    I didn't say it was a good idea to do so! Just possible for players to do, is all. :) Maybe the planet meshes could spawn non-salvagable "ghost" rail dock points with a random direction rail facing the point direction outward (away from the planet) at each vector point for this purpose. You could theoretically have them all pointing to the north pole of the planet, but then you have to set the poles to point somewhere, assuming the mesh comes to a point at the poles. Galactic North would be the first choice for these special pole rails.
     
    Joined
    Jun 22, 2013
    Messages
    196
    Reaction score
    157
    • Purchased!
    • Legacy Citizen 8
    1) A large amount of the surface of the planet will be the 'ocean' mesh.
    Personally I would like this, I think building spaceships that are also ships would be really cool.

    Having an 'ocean layer' works for planets that have liquids of one sort or another (water, lava, methane, mercury, etc). It does not work for planets that don't have liquids.
    Why not have a liquid ocean of some sort on every planet? It obviously isn't realistic, but it would be very interesting.
     
    Joined
    Aug 21, 2013
    Messages
    237
    Reaction score
    76
    • Legacy Citizen 2
    • Purchased!
    • Community Content - Bronze 1
    dwwojcik , I think that having an "ocean" on every planet would change the feel of the game, particularly since each planet would have a huge amount of "ocean."

    If we get right down to it, I think having a mesh+voxel system would be a decent approach; look at 7 Days to Die. It works, but it has some hang-ups. This requires a change to the core of what StarMade is, though. There might be better ways to fix planets than the option presented by the OP.
     
    Joined
    Dec 14, 2014
    Messages
    745
    Reaction score
    158
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen 2
    I have finally rendered my idea for a different planet style.

    View attachment 15229

    What are those at the poles? Why, yes, they are polar ice caps, thanks for asking.

    My idea for a planet is an expansion of the 3-D planet idea. It consists of 14 parts: north and south poles. 8 square "continents", an atmosphere layer (not visible in the render above), a middle layer, usually an ocean, a bedrock layer, and a core. (I think current planets also consist of 14 parts, including core, atmosphere, and 12 continents.)

    The core is unchanged. It should have all those wonderful changes folks talk about (mining), but should mostly be unreachable until something happens to the bedrock layer....

    The bedrock layer will be a solid mesh. For gas planets, it would be just like the "ocean" layer, but with instakill for all astronauts, other fauna, and ships. (Heavy pressure). Can be mined. Slowly, slowly regenerates, but provides one of each resource to a capital-level mining operation (one maximum) on each of the 10 continental plates, including the ice caps. So you can get a maximum of 10 of each ore and crystal on each planet you own. When this layer is destroyed, either through over-mining or damage, the ocean and atmosphere layers above it are instantly destroyed, the continental plates are thrown off as asteroids, and the core is exposed as the only remaining piece of the planet.

    The ocean layer will be a mesh, and can be solid or fluid, depending on planet type. (Example: conventional M-class planets will have a swimmable, "flyable" ocean, while desert or rocky planets will have un-swimmable, unflyable bedrock "ocean".)

    The polar ice caps will usually be ice, but this may not be true for all planet types. It's just a cubic biome going down from the surface of the ocean layer down to the surface of the bedrock layer.

    The regular continents will be cubic biomes that also go down the depth of the ocean layer. I guess they could be pentagon-shaped like the ones on Dedecahedron planets, but I consider StarMade a rather cubic metaverse.

    Because there is a big giant mesh separating all the different plates, optimization should be easier. Mining and ramming and landing will no longer affect more than one plate at a time, so this is why it will become much easier to handle optimizations.

    Gravity will be normal (straight down) on each plate. On the other hand, if you drive or float across the surface of the ocean layer, the game should be able to set "down" to always point at the center of the planet.

    tl;dr: I think this solution, where planetary plates are embedded in larger meshes will allow for larger plates, much larger planets, and a more satisfying planetary encounter. This solution will still require significant optimization to reduce lag on each plate, but that optimization will be easier on plates separated by larger meshes than on the current dodecahedrons.
    The sphere you used seems to be the same basic type blender and other programs use.
    I took a little time off of working on my servers and went ahead and ported some of my old work over and even made an obj output for it so it could be imported into blender or anyone can use. The sphere here is created by starting with a cube and dividing each surface into 4.
    Then the new vertices are normalized and new surfaces created. You can see 6 iterations of this.
    The little chart on the right side shows how a 2D map can be generated for a height map and or texture and dropped on it just as if it is a cube. I went ahead and added the zip of the objs in case anyone here including staff would like to use these.
    You can make a fully generated planet with squares and fly to it without a load screen basically you are going to need to use a form of LOD.
    When you are out at a distance you see more of the larger square you see here. Once you get close enough or on the surface limit visibility to the region you are in plus the 9 surrounding regions. The larger planet becomes and the more iterations the less distortion in the 8 corners.
    If you notice teh quares don't get smaller as the approach the poles in general while the shape is less consistent on low itterations that goes away on increased iterations. Making viruatly the entire planet build able and once you map the 2d surface down you can simply set gravity to point toward the center of the planet and just render the surrounding faces.
     

    Attachments

    Joined
    Aug 28, 2013
    Messages
    1,831
    Reaction score
    374
    • Legacy Citizen 2
    • Top Forum Contributor
    • Legacy Citizen
    So what about if someone builds an orbital elevator? Should the blocks get wider as they go up? How do you handle structures that extend the planet into orbit?

    Yeah, apparently you can handle the surface just fine. But what about orbit? What about digging down?
     
    Joined
    Dec 14, 2014
    Messages
    745
    Reaction score
    158
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen 2
    So what about if someone builds an orbital elevator? Should the blocks get wider as they go up? How do you handle structures that extend the planet into orbit?

    Yeah, apparently you can handle the surface just fine. But what about orbit? What about digging down?
    There is an easy solution as simple as setting a flag on a block.
    For example you could designate a zone or rectangle as a build zone or couple several together to make a larger one.
    If it is inside the build zone it would use the normal of the surface/build zone to ensure blocks remain same size.
    however outside of those zones you would use the surface normal and the blocks would get larger. the amount of a block getting larger is extremely small once you are several hundred away from the core anyways. But what it would allow you to do is say build a tram or path that goes around the planet and is completely connected.

    What you might not be getting is that is a base layer there. Basically you add terrain and so on top of it.
    Cube expansion gets very small the larger the planet and the greater the tessellation.
    On a planet with a radius of several hundred you couldn't visibly see the difference with out going out a good deal more since the two blocks would not be then close to one another you ability to tell would be impaired.
     

    Valiant70

    That crazy cyborg
    Joined
    Oct 27, 2013
    Messages
    2,189
    Reaction score
    1,168
    • Thinking Positive
    • Purchased!
    • Legacy Citizen 4
    Why not have a liquid ocean of some sort on every planet? It obviously isn't realistic, but it would be very interesting.
    EEEEEEEEEEEEEEEWW!!! I beg to differ. Having liquid on EVERY planet would make it far less interesting. Variety is what makes things interesting and fun. Even if liquids were all different, the general feel of all planets would be too similar.