Need help about space game and planets :(

Hello, I have read a lot of topics and nothing is even close to helping me.
I am new to Unreal Engine and I am looking for a way to create a space and a planets. The thing is I want the planets to be really big and possible to walk on. Something like force pulling you to the center of the planet. (Spherical world gravity)
There is no tutorial on anything close to a space game in UE’s youtube.
Any ideas ?

Are we talking a huge scale like, massive planet sized planets? Or something closer to Super Mario Galaxy? If it is the larger scale, it’s not really possible like you want. You would need a complicated system of levels to handle the transitions between space atmosphere and surface.

The Earth has a diameter of 12,742km. That translates into 1.2742 billion Unreal Units. The Moon, our nearest celestial neighbor, is 384,400km away, which translates into 38.44 billion unreal units. Right now, the largest Unreal maps can be around 20km, but I believe that’s only for landscape objects. (I could be wrong.)

Because Unreal doesn’t natively support radial or cylindrical gravity types, your best bet would be to have two different level types; One in space, where you can fly around and most planets are not-quite-to-scale, and planet-base levels, where you can run/fly around on a 1:1 scale planet, using streaming levels. You would probably want to have a generic transition between the two modes. (Short cinematic for flying out of space and onto a planet.) Flying seamlessly from space onto a planet would be very difficult to program. However, you could achieve a similar effect by obscuring the screen during re-entry and lift-off, when you switch between the two level modes. During re-entry, you can obscure the screen with fiery particles, and on liftoff, you can unload the planet level, as you wouldn’t see it while heading straight up.

For space levels, you can use a variety of techniques to handle travel and look. One of them is to have objects such as planets, ships, and stations be much smaller that normal, and just fly around a simple map where these smaller planets are placed. (Think Freelancer.) You won’t get majestically large planets, but it would allow for large maps with multiple planets, without breaking Unreal.

Another idea is to dynamically scale the level around the player. Things that are far away from the player would be scaled down, while things that are closer (say 5km or so) would be full scale. As the player moves towards a planet in the distance, both the position and the scale of the planet object would change until it’s at 100% scale. As the player moves away, the planet moves away and gets smaller. This would be a client-side effect that would make your levels appear larger than they really are. However, this would cause a number of issues, not least of which, would be developing a coordinate system that takes this scaling into account.

My final thought is to use lots of streaming levels. This would give you large scale worlds, and allow you to have vast star systems without any special trickery.

Thank you, but I was looking for something like Kerbal Space Program where you can move from planet surface to space without loading a new level.
Can’t I make it somehow as I get further away the planets get unloaded and then load them when I am close enough to be able to see them ?
Is it Unreal Engine world size limit or it is just hardware-side impossible, because I heard of a game Limit Theory where the universe is procedural and infinite

Most of the space sims that i have played usually have a system implemented where you don’t see or notice that your in a cutscene or a “transition” when leaving an area. Some use portals or warp lanes, sometimes both (refering to the X: Series). So i believe that in order to make what your trying to make, you will have to create a new scene for every instance of an area and splice them all together to create your universe, with transitions in between these areas. Thats what i would do anyways.

I’m in the beginning stages of making my own space sim. I have the idea and the tools, now i’m trying to use them. Thanks Kjasi for that info. I would have never known that UE4 has limits like that if i wasn’t interested in this post. So now i have this info and can create what i need accordingly.

I must point that this is not an UE4 limitation, you just CANT make a full universe with so large planets etc in ANY game engine, on of the reasons is because there are no hardware to support this large ammount of loaded info.

Unreal, as well as other engines has the hability to stream levels, and if Im right Epic is working on a full implementation of infinite worlds, which will be somethink like world of warcraft, where you walk and the engine loads the next part of the map and unloads the older ones (thats currently level streaming) but its true that it needs some improvements in UE4

Well… unless you’re doing a procedural system. There’s at least two game engines that are doing this right now (possibly smaller planets), but I wouldn’t hold my breath for any engine not specifically made for this purpose to allow it.

Thats not possible today, as I said they are forced to do streaming

Even if the planets are smaller than he wants, you will need to load and unload them, plus if you want them to be walkable, with objects, rocks, etc etc

If you are thinking on cry engine and star citizen game, they built an infinite world script, that makes what I said, load and unload the necessary areas

of course, if you want to do an angry birds game you will be able to do that without streaming, but thats not the case we are facing here

Previous “No Man’s Sky” posts may be of interest… But to add to what others have said, you’ll have to design and write a lot of the code in C++ yourself as the features aren’t in UE4 currently, and probably won’t be as Epic isn’t overly passionate about this area of the engine (check the Roadmap). But if you’re not a C++ Pro where does that leave you? You can scale down the ships to make the universe huge (and possibly fully procedural), and then stream in each planet’s corona & surface as standalone levels (as terrains / landscapes aren’t procedural)… Or you can try to license a platform that already does this. There’s many, but here’s a few random bookmarks:-

Limit Theory is a game, not an engine. Isn’t it ?

“Limit Theory: What Engine Does it Use?
We’ve written a custom engine from scratch using c++ and OpenGL. Having an intimate knowledge and control over the engine has allowed us to design it from the ground up to most efficiently support the level of procedural content generation that Limit Theory calls for. We’re also just crazy enthusiastic about game engine and graphics engine design…so it seemed like the natural choice!

Those links were mainly examples of how its necessary to build a custom engine for the type of game you’re after… However, those platforms aren’t proven yet, and they still face stiff competition from the likes of No Man’s Sky, Star Citizen and Elite Dangerous etc. So my guess is everything is up for grabs. If you have an innovative game idea, you might be able to cut a deal with the developers and get access to their work-in-progress. Its something I’m thinking about, rather than expecting Epic to add these types of features to UE4 in the near future, which seems unlikely… But unlike UE4, licensing a WIP won’t be free :slight_smile: