Infinite space exploration sandbox

Hi there!

I am working on a procedural exploration game (multiplayer) with planetary level precision.

Here are some screenshots of the prototype (everything you see is procedurally generated, including the stars):

Latest Video:

I will try to keep this thread updated as much as possible, if you have any comments or questions feel free to reply to this thread.

Thank you for your time.

5 Likes

Looks fantastic, I too am a lover of making stuff that makes stuff for me, it might be a inherent lazy trait.

How long have you been working on this? I can’t believe the sheer scale of this game!

Is the generation time large?

Thank you for your kind comment, I have been working on this for 4 months.
The generation of a planet takes less than 1 second, it takes around 10 seconds to generate a Solar System.

1 Like

Time for some news!

  • Updated the water shader, and improved the water system it will now blend with the atmosphere’s color.
  • The movements of the controller are smoother, especially when entering a planet’s gravity field.
  • Detail management has been improved to allow the perlin generator to place trees and other objects in a more coherent way


Wow, I’m very impressed with your idea, as well as your implementation so far… NICE!

Now… I wanna land on a planet, find some indigenous life, and start violating the Starfleet Prime Directive!

Kurt

I like what your doing, always into games like this. Ill follow this and look forward to more updates.

Thank you for your support guys.

I improved the terrain shader to allow it to have up to 10 layers (instead of 5) now based on the red channel of the vertex colors, this allows me use the other channels for ambiant shadows or illumination.

Added caustics and improved the atmosphere:

Looks good, so I know its a exploration game, what other things will the player be able to do?

The gameplay itself is not defined yet, all i know is i will implement some resource collecting, crafting and it will be multiplayer.

The first step is to complete the Infinite Universe Engine, I am focusing on that for now.

Yeah makes since thats a big part of the game. Getting that right is key.

I wanna also add that it feels like in the movie you posted, you have chosen a good feel for the size of the planet (makes the curvature interesting of a given planet, not too flat, not too curved), as well as your spacing between planets, in order to make it interesting.

That makes me thing: are planets going to be arranged hierarchically in solar systems, or will it just be a network of “strings” of planets laced all over the place?? I suppose you could do either. Do the planets orbit each other in any way?? Couldn’t tell right off… I could see all kinds of things that would introduce that you’d have to deal with.

It’s a very fascinating idea you have there. It appeals to me on some fundamentally geeky level. I was thinking about it during yesterday’s solar eclipse too.

Kurt

I chose a size range that would make the planets big enough to be called planets, but small enough for a player to be able to move from one pole to the other without spending too much time (which could be boring)
It also avoids having landscapes that would feel like repeating themselves in a planet that would be too big.
I want the player to remember things about a specific trait of a planet.

The goal is to have planet in hierarchical order, that will orbit around the sun, the orbit thing requires some work on the shaders to make them recalculate the light direction (this is done once for the moment), this is in the TODO list.

As much as it makes sense that the planets would be in orbit, from a game level world knowledge standpoint, it would make it almost impossible to begin to memorize how the world layout is, such as to work out in your mind “How long will it take me to get there… should I bother right now or save it for later when I’m closer?”

Those types of mental calculations would become impossible and/or irrelevant if things were in a constant orbital flux… but it does seem odd that massive plants would just hang in place without motion.

My geek sense is torn between the two possible realities. :slight_smile:

Kurt

Do you have used third party assets (planets, rings) or is this your own development?
I like especially the space-atmosphere transition.
The control reminds me on Spore.

The glowing parts on the volcanic moon should be in the lower areas?

I’m interested in the resolution of you planets. Is it fixed or do you have a dynamic LOD? What do you use as basemesh for the subdividing (sphere, icosaeder)? I would apreciate if you could describe the process in some sentences.
I’m also interested if your planet types are meaningfull for the distance to the satr or do you allow ice planets close to the star. Do you have/plan gas giants which atmospheres can be entered?

Anyway, great work. Kudos.

This is a feature that will be implemented on the engine, but not necessarely on the game, as it can be a real pain to synchronize positions for planets.

No third party assets were used for the planets (except the trees), the spaceship is from the asset store though. I made all the shaders myself.

The Volcanic moon was just a test but you have a point.

The lod is dynamic and was made to have an infinity of levels, but in the actuall game i only use 2 levels. The base can be any mesh since all the vertices will be subdivided, It is more convenient to use a cube for the uvs though.

The distance to the sun is definitively a factor that affects the planets, is still need to think about the way I will organize this.
Also yes i plan to make planets with only gaz.

Here is a new video showing the Lod’s performances now that it has been optimized:

This is so freakin cool! Would love to hear some stuff about the technical cleverness going on in the background.

These are ico spheres I assume, right? But how do you project uv mapping on the sphere? Is is heightmap only or actual voxel based? How do you store entities on a planet? Are they persistant or just stored via seed? How are you handling view distances like this? And why are there water splashes in space?

Would love to hear some insight on some of your magic trickery :slight_smile:

Anyway, keep it up and good luck!

Thanks mate!

The base mesh can be anything, i use a subdivided cube, then i process heights using a list of Simplex noises with weights based on heights.

The textures are rendered using my Vertex based terrain shader, I assign a vertex colors instead of projecting a heightmap texture on a sphere, the shader will then decide what texture to display based on the value of one en the color channels. This method is less precise as it requires more vertices but it allows me to save memory.

Nothing is preventing me from implementing a voxel system, this is not the case for the moment, I am not focusing on this point because I want to make a multiplayer game, and this can be quite the pain to synchronize.

I am not quite sure what you mean by entities, if you are talking about the trees and other details, I use the value of my simplex noise to determine what detail/texture should be loaded.

Nothing is persistent in the system, the whole point of it is to be calulated on the fly via seed.

For the distances (not sure I really understand what exactly you want me to explain here), I simply created a controller that slows the movement speed when getting closer to a planet, this gives a smoother experience for the user.

About the water splashes you see in space, this is a bug with the Z-Buffer, it should be rendered after the terrain.

I hope I helped you have a better idea on how this all works.

Hi!

Added a new shader for the sun (it is now an actual object instead of a simple flare):