So over the past week I have been working on some procedural planetary bodies. The terrain is voxel based mostly with a simple noise density function so I can focus on the actual implementation. Using a mix of origin rebasing and storing critical data (Density grid and player coordinates) as 64-bit vectors, I can achieve planets of any size without loss in precision, sacrificing multiplayer.
I plan to take this further and have travelling between different planetary bodies with realistic distances, without exceeding the play area of UE4. I will be travelling overseas for one month, so there will be no further updates during this period, but as soon as I get back, I will be straight back into it.
Biomes are in my research list, but right now my main priority has been just getting the streaming of the chunks working well. Once I return from holidays, I will tackle star system travel then biomes for the planets.
Dont really know yet, as its not just the origin rebasing that is going to be a problem with multiplayer, the way I plan to deal with star system travel will probably also not work in multiplayer. We’ll see what happens.
I am making a game, once the game is finished, the source will be released to the community for free.
Thanks, I have been keeping an eye on Star Citizens stuff, so helpful to have it here to keep track of it. Theres currently no reason the planetary rendering itself couldn’t be a plugin right now (The gravity is engine modifications). The 64 bit precision does not alter UE4 in any way, all the calculations for the planet surface is calculated in 64-bit precision, but then stored in 32-bit around the origin, this is why origin rebasing is used.
depends on how multiplayer origin rebasing works. it should work if the origin rebasing is completely done on the client with the server juust syncing client positions
Wow GalaxyaMan2015! that is truly amazing what you did
This subject about rendering planets is so demanding in this days. It would be great if Epic implemented this feature to the engine.
I have a question for you @
You said that you don’t alter UE4 at all, but did you create a new actor class for this? Do you need to define a new matrix with doubles for the coordinates?
It is very interesting and I would be glad if you could answer me