1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

What is the geometry of a planet ? Infinite potential ??

Discussion in 'General Discussion' started by BinaryMan, Dec 21, 2014.

  1. BinaryMan

    BinaryMan Crash Landed

    • Member
    I booted up 0.1.6 for the first time today. I am amazed at the technical achievement here.

    It looks like you found a way to generate a planet using icosahedron sphere mapping with arbitrary precision based on distance, but which can also contain the voxel data of the surface and sub-surface for any explored area. However, even after a couple hours of exploring there is hardly any region data stored and absolutely no lag. Somehow, you were able to create the continuity of large scale exploration in Starmade with the block precision of Minecraft, which I have not seen anyone attempt before.

    I spent the first 10 minutes roaming the surface, then tried to get to the center of Dunna (the KSP reference is not lost upon me). Except... Y = 0 is not the "center" or the "bottom". It seems the planet is something like 10 million blocks in radius, but the engine was still generating caverns and blocks I could interact with at Y= -1 billion, beyond the planet and into outer space. It didn't crash until Y > 2^31 . That got me thinking about the potential here.

    Can we store a planet that is 10m x 10m x 10k blocks deep (that is, in the real game Y stops at 0; Dunna surface seems to be Y = 8k-20k) if we explore it enough? Or, can the planet actually have a radius of 10m cubes such that we can dig through it and come out the other side, or reach the planet core, etc? I guess the answer here is that it can have any depth we want and as many layers as we want.

    It wasn't clear if I could wrap from a point on the surface back to that same point, but it seems based on a high up flight around the planet that it's not out of the question. At very fast speed, the terrain geometry will frequently switch suddenly so I'm not sure what is happening.

    It looks like the 3D chunk method can pretty much create any world we please. I'm curious how inter-planet travel and space station/ship or other things will be achieved, but even if that part is just point-to-point travel and resolving the massive object when we get there, it still will be much farther along than any other engine I have seen to date.
    joppiesaus likes this.
  2. PsychoticLeprechaun

    PsychoticLeprechaun Designer & Web Developer

    • Dev Member
    Thank you for your kind words, we're putting our all into Seed of Andromeda! If you enjoy what you have seen in 0.1.6, you will be blown away by what's in store for the next update!

    This situation of being able to fly lower below the surface than the total radius of a planet falls out of our solution for the game's spherical worlds. Which in its simplest, is attained by taking a cube of terrain (which itself is a wrapped 2D plane of terrain) and normalising all the points on the face, and so when you fly below a face, you just fly further and further lower on that particular face of the 2D plane, never reaching any of the other planes.

    If you mean, can you return to the same point on the planet by travelling all the way around it - yes you can! Our worlds are truly spherical, which is essential for our future updates (as before, 0.2.0 is going to be a biggie!). As for the geometry frequently switching at very high speed, that is due to the fact that you are travelling so fast that we can't generate the high quality meshes for the LOD fast enough, so you will for the most part see the lower quality mesh and occasionally see a jump from that to higher when you slow down.

    EDIT: This should be much less so the case in the next update! GPU heightmap generation ftw!


    To achieve interplanetary travel, we will disconnect the player from the planet grid at a certain altitude, and at that point they will be able to travel between planets, and upon approaching any other planet, will be joined onto that planet's grid. All I can say is: keep your eyes peeled, because good things are coming!
    Last edited: Dec 21, 2014
    PsychoticLeprechaun, Dec 21, 2014
    Last edited by PsychoticLeprechaun; at Dec 21, 2014
    #2
    joppiesaus and Sir_Moodz like this.
  3. Arctic

    Arctic Giant Robot Advocate

    • Tester
    It actually works by essentially making a cube and turning it into a sphere by normalising theirs vectors, creating a cube where all points - the voxels - are the same distance away from the centre. Ie, a cube. Ben has a video explaining it much better than i can.
  4. BinaryMan

    BinaryMan Crash Landed

    • Member
    Do you have plans to limit the Y value of the terrain such that there is a bottom? There is a weird geometric effect in the shape because as you get closer to the planet's core you'd expect the vectors to be closer together, but in fact at any depth you have the full number of blocks you can dig through on the X/Y surface plane.

    If we are looking at a mining shaft or machinery, it could only operate within the player's sphere of loaded chunks anyway and so it cannot go that far (relatively speaking) into the planet. I can see the mining aspect being very interesting here for materials deep in the planet (will bring up more ideas in gameplay section, since that is what the engine is ultimately about).

    I did notice the intense physics capability. The GPU is always going to be the most powerful parallel resource if you code it directly. Stuff like PhysX on NVIDIA cards for example. Only on planet Darwin when I cause massive cascades of gravel and water movement does the FPS drop. That is my favorite planet; you can follow the gravel slide to the bottom of a chute, or see the waves and ripples on the surface, or the bubbles rising to the surface that look like cellular automata.

    The immersive experience you were going for is definitely there. It is only at the extreme boundaries when the simulation aspect becomes apparent.
  5. PsychoticLeprechaun

    PsychoticLeprechaun Designer & Web Developer

    • Dev Member
    There will be a limit for all planets on how deep you can go. This will be explained due to pressures, heats and so on, however that distance will still be very many times (orders of magnitude even) more deep than is available in games such as Minecraft.

    As for physics performance, we have been multithreading many of our processes, and in the next update, we should see a performance gain for most all computers!
Similar Threads: geometry planet
Forum Title Date
General Discussion What is your favorite planet or moon to start your adventure? Jul 7, 2015
General Discussion Multi-player Dedicated Planet Server Jun 15, 2014
General Discussion Planet SOA May 28, 2014

Share This Page