Planets!

    What do you think to be better in a next planet's update?

    • "False" spherical planets (see thread)

      Votes: 8 24.2%
    • Leave the planets as they are now

      Votes: 13 39.4%
    • Flat planets

      Votes: 5 15.2%
    • Spherical planets

      Votes: 3 9.1%
    • Other type planets (please tell what kind in thread)

      Votes: 4 12.1%

    • Total voters
      33
    Joined
    Aug 5, 2015
    Messages
    51
    Reaction score
    42
    • Purchased!
    maybe i'll make a picture to explain my thoughts it could be easier to understand... I think my idea isn't bad.... i'll try to explain this soon :)

    Can't speak for others, but I'm a visual person and really appreciate mockups and pictures when talking about complex ideas.
     
    Joined
    Aug 18, 2015
    Messages
    26
    Reaction score
    3
    • Purchased!
    Back here with a picture !

    So, as mentioned before, i talked about planar projection when you are on planet. I mean, you cross the atmosphere, then you can explore planets, like in a famous voxel game. Flat landscapes, dig sites, lakes, etc. No more cliffs when you reach the border!

    From space, planets are still dodecahedrons. If you shot from space, you can destroy things on planet's ground, because coordinate are the same. Look at the pictures for more details. Remember that planar projection is only when you cross the atmosphere (we have a flashy color full screen anyway when we cross it, so easy to swtich from dodecahedron).


    We can suppose that's heavy for servers, but maybe we can do this client side? I don't know about this stuff but that's an idea...

    Well i'll hope you'll understand my thoughts :) Thanks for reading! :)

    Edit: We will have a problem if we construct something on edges (on planar projection, it will be hard to see we're on an edge.) But i'm sure you can find something to do with that :) We can't build on edge actually so...
     
    Last edited:
    • Like
    Reactions: BION

    Valiant70

    That crazy cyborg
    Joined
    Oct 27, 2013
    Messages
    2,189
    Reaction score
    1,168
    • Thinking Positive
    • Purchased!
    • Legacy Citizen 4
    Back here with a picture !

    So, as mentioned before, i talked about planar projection when you are on planet. I mean, you cross the atmosphere, then you can explore planets, like in a famous voxel game. Flat landscapes, dig sites, lakes, etc. No more cliffs when you reach the border!

    From space, planets are still dodecahedrons. If you shot from space, you can destroy things on planet's ground, because coordinate are the same. Look at the pictures for more details. Remember that planar projection is only when you cross the atmosphere (we have a flashy color full screen anyway when we cross it, so easy to swtich from dodecahedron).


    We can suppose that's heavy for servers, but maybe we can do this client side? I don't know about this stuff but that's an idea...

    Well i'll hope you'll understand my thoughts :) Thanks for reading! :)

    Edit: We will have a problem if we construct something on edges (on planar projection, it will be hard to see we're on an edge.) But i'm sure you can find something to do with that :) We can't build on edge actually so...
    You still have two problems that would make this more complicated. One is that the blocks at the edges will not line up in a grid. That is essentially incurable unless starmade uses the "torus world" model, so we shouldn't worry about it. The other is the corners. The meeting corners of a dodecahedron don't add up to 360 degrees, but 324, leaving a disjoint as shown in your diagrams. To solve this, we either have to distort the overall shape of each polygon and "squash" it back into the right shape when viewed from orbit, or warp the rendering when standing on the ground. Warping the ground rendering would at most cause a 10% visual size difference when viewing distant objects (360-324 = 36 = 10% of 360) so it's honestly not a bad option.

    This could work. The only remaining problem is the angle of the ground relative to space. I know a way to solve that to some extent, but it's complicated and I don't have enough time to write about it now.
    [DOUBLEPOST=1441122359,1441122121][/DOUBLEPOST]
    To solve this, we either have to distort the overall shape of each polygon and "squash" it back into the right shape when viewed from orbit
    On second thought that might not be an option at all. I'll do some messing with geometry later to find out.
     
    • Like
    Reactions: Lecic and RavenWT
    Joined
    Aug 18, 2015
    Messages
    26
    Reaction score
    3
    • Purchased!
    You still have two problems that would make this more complicated. One is that the blocks at the edges will not line up in a grid. That is essentially incurable unless starmade uses the "torus world" model, so we shouldn't worry about it. The other is the corners. The meeting corners of a dodecahedron don't add up to 360 degrees, but 324, leaving a disjoint as shown in your diagrams. To solve this, we either have to distort the overall shape of each polygon and "squash" it back into the right shape when viewed from orbit, or warp the rendering when standing on the ground. Warping the ground rendering would at most cause a 10% visual size difference when viewing distant objects (360-324 = 36 = 10% of 360) so it's honestly not a bad option.

    This could work. The only remaining problem is the angle of the ground relative to space. I know a way to solve that to some extent, but it's complicated and I don't have enough time to write about it now.
    [DOUBLEPOST=1441122359,1441122121][/DOUBLEPOST]
    On second thought that might not work at all. I'll do some messing with geometry later to find out.
    Or maybe warpzones on borders? like this?



    Borders are in light blue, and when players cross or look throught it, they see what's supposed to be there. Could seem strange from space viewing people walking on planet... but it could work. And for blank space, planet shape is like that, on ground, it will be a "corner"... but i'll try this tonight, with captures to build a photoshop montage and see what it looks like. And off course, warp zone are all around the surface... just did some of them...
     

    Valiant70

    That crazy cyborg
    Joined
    Oct 27, 2013
    Messages
    2,189
    Reaction score
    1,168
    • Thinking Positive
    • Purchased!
    • Legacy Citizen 4
    Or maybe warpzones on borders? like this?



    Borders are in light blue, and when players cross or look throught it, they see what's supposed to be there. Could seem strange from space viewing people walking on planet... but it could work. And for blank space, planet shape is like that, on ground, it will be a "corner"... but i'll try this tonight, with captures to build a photoshop montage and see what it looks like. And off course, warp zone are all around the surface... just did some of them...
    I think I see how you think that would work, but I don't think it will actually work that way (not if it's seamless anyway). I'll elaborate later tonight if I still have any brain cells left to spare after calculus homework.
     
    • Like
    Reactions: Dire Venom
    Joined
    Aug 18, 2015
    Messages
    26
    Reaction score
    3
    • Purchased!
    Indeed, we have blanks spaces between each plate on planar projections. But, if matching cubes are displayed when player is close these blanks, we should be able to have our planar projection. I wonder if we couldn't have something like warp zones, on edges, that show whats on other side. If player cross this, player is TP on the matching face. I'll try to do some screenshots to test this in 3D...

    But cross edges build is still a problem...
     

    StormWing0

    Leads the Storm
    Joined
    Jun 26, 2015
    Messages
    2,126
    Reaction score
    316
    • Community Content - Bronze 1
    hmm there could be a way to make spherical planets work if you start the squares at the poles and radiate out from them rather than starting at the equator.
     
    Joined
    Aug 18, 2015
    Messages
    26
    Reaction score
    3
    • Purchased!
    No no spherical planets are out. We talk about Dodecahedrons. And a solution to have better ground experience :)
     
    Joined
    Aug 18, 2015
    Messages
    26
    Reaction score
    3
    • Purchased!
    Guys, I was wandering around the web, and found this

    Maybe dodecahedrons could be replaced by icosahedron? His explanations aren't so bad... maybe at a lower scale off course but that's a good start... I saw other voxel planets on google... may be that's a clue to find a solution ^^
     
    Last edited:

    StormWing0

    Leads the Storm
    Joined
    Jun 26, 2015
    Messages
    2,126
    Reaction score
    316
    • Community Content - Bronze 1
    Could make it so we can pick what kinds of planets we are using in the configs? :)
     
    Joined
    Jun 27, 2013
    Messages
    896
    Reaction score
    166
    Could make it so we can pick what kinds of planets we are using in the configs?
    Highly likely, provided someone funds Schine to maintain and bugfix two, or three, or five versions of planets and make sure they all play nice among themselves and with each other...
     

    Valiant70

    That crazy cyborg
    Joined
    Oct 27, 2013
    Messages
    2,189
    Reaction score
    1,168
    • Thinking Positive
    • Purchased!
    • Legacy Citizen 4
    Guys, I was wandering around the web, and found this

    Maybe dodecahedrons could be replaced by icosahedron? His explanations aren't so bad... maybe at a lower scale off course but that's a good start... I saw other voxel planets on google... may be that's a clue to find a solution ^^
    There are two reasons dodecahedrons are better than iscosohedrons.
    1. More contiguous surface area due to smaller surfaces.
    2. Gentler angles between faces.
    Iscosohedrons worsen the problems dodecahedrons already suffer from. They're not an improvement but a downgrade.
    [DOUBLEPOST=1441321994,1441320763][/DOUBLEPOST]
    The first thing that came at my eye in this game was actually how planets have changed. They were flat circles at start, and now they became dodecahedrons. So why don't change them? Why don't make them bigger and more "realistic"? The lag they create is a lot so a little idea to make bigger and less laggy planets came in my mind.
    Premising that one of the best things of this game is the lack of loading screens, my idea was to create "false" round planets. In space they will seem like a normal planet (with textured atmosphere and surface) but as coming close to it and entering in the atmosphere our ship will enter in the actual planet, huge by dimension, and with procedurally loaded surface. What I mean by that? That normally the planet will look like a normal planet in space would look (without causing lag upon going too close to it), and if you want to go on the surface you may enter in it's atmosphere and, after a little animation (like the exterior hull heating up because of the atmosphere) you may stay with your ship on the actual surface (flat and huge, so it may seem spherical) with the sky above you actually rotating as you move (or time passes).

    The benefits of this new concept of planets may be many

    -More resources
    -Aliens wandering on the surface of the planet without glitching trough gravity wells
    -Less Lag (maybe)
    -Bigger planets
    -Good looking realistic planets

    and so on.

    Also gravity may be progressively strong depending on the distance from the planet surface.


    What do you think about that? It's a good or bad idea?

    I'm sorry for my bad grammar, English is not my first language :p
    I've been thinking about ways to accomplish something like this for a long time. Most of what I've come up with is on this thread: http://starmadedock.net/threads/another-planet-thread.7334/

    The best option for an instance-like planet is the initial idea which ends up actually being a torus (although it can be presented and made to act much like a sphere).

    The other option that I've considered is applying some graphical effects and some special loading mechanics to the planets we already have. Planets would look better from orbit and load/generate only a portion of a planet into memory at a time, rather than trying to stuff a WHOLE FREAKING PLANET into RAM when someone approaches it. In addition, planets should not save their entire set of chunks (which would bloat server databases), but only parts that have been modified by players (not counting craters made by random weapons fire).

    I see two main problems with dodecahedrons: Hardware-limited size (a.k.a. "LAG!!!") and edges we can't build across. The edges are far less relevant when there's ample space between them, so planets would be nicer overall if they were simply larger. Thus I think the most likely solution to nicer planets is overcoming their current size limits. (Note that I don't mean hard limits. I mean that kilometer-scale planets overload computers.)
     
    • Like
    Reactions: Ithirahad
    Joined
    Oct 7, 2014
    Messages
    18
    Reaction score
    2
    There are two reasons dodecahedrons are better than iscosohedrons.
    1. More contiguous surface area due to smaller surfaces.
    2. Gentler angles between faces.
    Iscosohedrons worsen the problems dodecahedrons already suffer from. They're not an improvement but a downgrade.
    [DOUBLEPOST=1441321994,1441320763][/DOUBLEPOST]
    I've been thinking about ways to accomplish something like this for a long time. Most of what I've come up with is on this thread: http://starmadedock.net/threads/another-planet-thread.7334/

    The best option for an instance-like planet is the initial idea which ends up actually being a torus (although it can be presented and made to act much like a sphere).

    The other option that I've considered is applying some graphical effects and some special loading mechanics to the planets we already have. Planets would look better from orbit and load/generate only a portion of a planet into memory at a time, rather than trying to stuff a WHOLE FREAKING PLANET into RAM when someone approaches it. In addition, planets should not save their entire set of chunks (which would bloat server databases), but only parts that have been modified by players (not counting craters made by random weapons fire).

    I see two main problems with dodecahedrons: Hardware-limited size (a.k.a. "LAG!!!") and edges we can't build across. The edges are far less relevant when there's ample space between them, so planets would be nicer overall if they were simply larger. Thus I think the most likely solution to nicer planets is overcoming their current size limits. (Note that I don't mean hard limits. I mean that kilometer-scale planets overload computers.)

    I looked at my thread and I thought something that could be the solution to those problems. Do you remember what I said about descending on the surface of a planet? RavenWT said something similar to what I wanted to see in-game, but found that Dodecahedrons are no good for the purpose of making a flat surface

    Or maybe warpzones on borders? like this?



    Borders are in light blue, and when players cross or look throught it, they see what's supposed to be there. Could seem strange from space viewing people walking on planet... but it could work. And for blank space, planet shape is like that, on ground, it will be a "corner"... but i'll try this tonight, with captures to build a photoshop montage and see what it looks like. And off course, warp zone are all around the surface... just did some of them...


    and after Raven himself proposed Icosahedrons as a better planet template.
    But as Valiant said Icosahedrons makes everything more complicated.. so an idea came up to my mind.

    Upon descending on the planet the surface may be "flat", but the planet itself shall be an Icosahedron.
    Why something like that?

    The major problem with a flat surface made from a Dodecahedron is that there is some space between faces that can't be filled.
    With Icosahedrons perhaps this problem wont come, because every face of an Icosahedron is made by a triangle.
    So an "opened" Icosahedron may seem like this





    so tell me, it would be a nice idea? to have a virtually "flat" surface made from an Icosahedron or it's better to leave everything as it's right now?


    The "flat" I intended to create is a "false" flat, because when you come to one borded, shall it be west border/east border/north border/south border, you will keep going on without falling in an infinite pit of doom, because the word is not really flat, but it's an Icosahedron.
     

    Valiant70

    That crazy cyborg
    Joined
    Oct 27, 2013
    Messages
    2,189
    Reaction score
    1,168
    • Thinking Positive
    • Purchased!
    • Legacy Citizen 4
    I looked at my thread and I thought something that could be the solution to those problems. Do you remember what I said about descending on the surface of a planet? RavenWT said something similar to what I wanted to see in-game, but found that Dodecahedrons are no good for the purpose of making a flat surface



    and after Raven himself proposed Icosahedrons as a better planet template.
    But as Valiant said Icosahedrons makes everything more complicated.. so an idea came up to my mind.

    Upon descending on the planet the surface may be "flat", but the planet itself shall be an Icosahedron.
    Why something like that?

    The major problem with a flat surface made from a Dodecahedron is that there is some space between faces that can't be filled.
    With Icosahedrons perhaps this problem wont come, because every face of an Icosahedron is made by a triangle.
    So an "opened" Icosahedron may seem like this





    so tell me, it would be a nice idea? to have a virtually "flat" surface made from an Icosahedron or it's better to leave everything as it's right now?


    The "flat" I intended to create is a "false" flat, because when you come to one borded, shall it be west border/east border/north border/south border, you will keep going on without falling in an infinite pit of doom, because the word is not really flat, but it's an Icosahedron.
    That's really quite similar to my previous parallelogram map idea, only the shape is more complex. The difficulty is getting the thing to actually behave like a sphere. You can have oddly-shaped maps all day long, but getting it to behave like a sphere is a different matter. You either wind up with a torus world, which is better accomplished with a simple share map as it does the same thing, or something totally wonky like my parallelogram map concept.

    As far as I can tell, mapping a grid to a sphere or polyhedron will always result in some kind of seam, with or without a distortion. The best compromise is mapping a square onto a torus, and rendering it to look like a sphere. Games have made planets that way before and they work pretty well. I'm just not sure it's right for Starmade.
     
    Joined
    Aug 21, 2013
    Messages
    237
    Reaction score
    76
    • Legacy Citizen 2
    • Purchased!
    • Community Content - Bronze 1
    In reference to the lag problem of planets:

    Proposal 1:
    I've noticed an interesting behavior of how planets are loaded in the game. I start with an exposed core, and then chunks of the planet start loading from the core outward. Most of the the chunks that load at the start of the lag end up being hidden by chunks that load later on. Why send all that information for blocks/chunks that can't be viewed anyway?

    What if the chunks of a planet had an extra boolen variable: solid
    If a chunk is 'solid' then you can't see the chunk underneath it, and therefore don't have to transmit the information for that chunk. This isn't to say that sub-surface shield batteries aren't providing stats, only that the information from them is just a number and not the actual structure. If you carve a hole/tunnel straight through a chunk then it is no longer 'solid' because you can see through the hole.

    Part of the problem with planets is not just the size and amout of cubes present, but that a vast majority of the cubes (and information) is under the surface and unseen. The Server/CPU sends information about blocks that the player doesn't interact with. If the chunk on the surface can hide the chunk underneath, then why bother sending the information about the chunk underneath? Prioritize the chunks, and only send what is needed.


    Proposal 2:
    Another possible fix is taking an approach to blocks similar to how you optimize texture rendering. When a texture is close to the character it renders at max resolution. When it is 100m away it renders at half resolution. When 1000m away it renders at even less resolution. Far away objects look fuzzy anyway, so they don't need as much detail. You send in 800x500 pixels, then compress it down to fit on a 100x100 pixel object which takes processing power. Why not only send the 100x100 'pre compressed' texture if an object is 1000m from the player?

    Walk around any 3D environment and you'll see this in use for both textuers and polygons. If points in a polygon are within pixels of each other you can combine them into a single point and not loose too much detail. It's better to have objects get more details over time than to be invisible right up until they become super-detailed.

    What if when a chunk loads, we change how many blocks are displayed according to the chunks distance to the player? While standing on a chunk you obviously need to see all the blocks, but when you are 1000m away you could get away with only every other block. So, only 1/2 of the blocks are displayed but they are displayed at 2x their normal size. You loose the fine details of the design but still retain the rough shape, the ship appears to be the same size/color and you don't have to deal with lag. As you approach the object chunks load the additional blocks and come into better focus.

    Effectively, far-away objects seem a bit 'blockier,' but they only take up 1/8th (or less) of the CPU resources. With a variable, a player can adjust the blocky-view distance to fit their server/PC/internet speed.

    It might also be worth it to have this feature only attach to large structures (like planets/capital ships) rather than small fighters.
     
    Joined
    Aug 18, 2015
    Messages
    26
    Reaction score
    3
    • Purchased!
    The major problem with a flat surface made from a Dodecahedron is that there is some space between faces that can't be filled.
    With Icosahedrons perhaps this problem wont come, because every face of an Icosahedron is made by a triangle.
    So an "opened" Icosahedron may seem like this
    That's why i talked about Icosahedrons :) This way, we have planar shape when on planet, and chunks shouldn't be a problem on ground. It could be really nice to have flat planets when on the ground and still have an interactivity between space and ground.
     

    Valiant70

    That crazy cyborg
    Joined
    Oct 27, 2013
    Messages
    2,189
    Reaction score
    1,168
    • Thinking Positive
    • Purchased!
    • Legacy Citizen 4
    That's why i talked about Icosahedrons :) This way, we have planar shape when on planet, and chunks shouldn't be a problem on ground. It could be really nice to have flat planets when on the ground and still have an interactivity between space and ground.
    It will still be a problem on the ground as I explained above. Even with an iscosohedron, you have to close the gaps somehow to get a flat surface experience. You'll either have to wrap the edges to one another, which basically just gives you a square map, or you have to distort the shape of blocks on the surface to close the gaps, which is odd.

    If you have any ideas for fixing the gaps that I haven't thought of yet, I'd like to hear them. Just remember that we must also keep in mind that space-to-planet interactions can't be disrupted and that Schema actually has to program this.
     
    Joined
    Aug 21, 2013
    Messages
    237
    Reaction score
    76
    • Legacy Citizen 2
    • Purchased!
    • Community Content - Bronze 1
    Does the cube-atom have to be a predetermined and unchangeable shape?

    What if when a terrain block is placed (dirt/stone/asteroid) the vertices for it's corners are moved based upon the surrounding blocks? This means that all the different shapes we currently have for blocks (and a couple more that would need to be created) can be achieved automatically and changed as surrounding blocks are added/removed.

    Something like this would allow a planet to generate smooth seams between plates but ALSO maintain smoothness when being mined.

    For illustration purposes, here is what I mean. Start with a smooth plane.

    I dig up one block. This currently results in a cube-shaped hole.

    What I am proposing is that the removal of this one cube automatically forces the adjacent cubes to change into slants and corners.

    Only for terrain tiles, though (I couldn't make screen shots with grass, obviously). It would make mining quite a bit more CPU intensive, but mining planets has always been a lagging nightmare. Or you could put a delay between when the hole looks like a cube and when it smooths out. When a cube is removed wait 500ms and if no other cube is removed from the structure then force all recently removed cubes to 'smooth' the nearby terrain. Add a dust particle and sound to this change and it'll seem like dirt/sand/silt is actually settling.

    Planets/Asteroids can get smooth shapes and retain smoothness while being strip mined, but a few new block shapes would be needed for true smoothness.