Landing on planets in UE, how do games like Space Engineers and Empyrion do this?

For some time I’ve been debating on getting started with the Unreal engine or Unity3D, and finally decided on Unreal. It has been amazing to dive into the engine and I finally got through my first set of tutorials making NPCs chase me around a map and making some basic worlds. I jumped into learning several different topics because I want to create a game like Space Engineers. The primay “want” of this is to create planets where you can seamlessly transition from space to the planet in a performant way. Empyrion’s trick is as soon as you contact a planet shape, it loads you into a flat map that overlaps on itself. But in Space Engineers, there is no such transition. In facThis text will be hiddent, you can drop something from orbit and have it land on the planet. The unreal engine is amazingly powerful, but I haven’t really seen any proof of concept or any tutorials that accomplish this. Unreal’s showcase “from ants to outerspace” appears to accomplish this, but it’s a trick where you can only zoom into that one part of the planet, not anywhere you like. The Voxel plugin sort of accomplishes this, but it’s laggy. I have started to see a few different ways UnitThis text will be hiddeny accomplishes planets you can land on and even destroy. I really want to stick with unreal engine, how can I do this? Is it even possible in the unreal engine??? I understand that it’s a difficult task, I’m just wanting to know where to get started on the journey knowing that it is possible. Even if it takes a while, if it’s possible to accomplish Space Engineers level gameplay, I will go for it.

3 Likes

This is one of the video’s I’ve already seen. It is a hacky way to do it. It is a seamless transition but only in that one spot.

I mean I could show you a clip, but Empyrion’s method is what I’m trying to avoid. You approach a sphere and once you enter atmosphere there’s a freeze, then suddenly the flat map is loaded. Space Engineers does this flawless and there’s no way Space Engineer’s game engine is more powerful then the Unreal Engine, that’s why I’m cuirous “how” space engineers does it. I am unable to find anything on what they do.

Hey there @snarkst0mper1! Welcome to the community! Yes it’s entirely possible, but by no means is it an easy feat. Unreal has some incredible useful tools like being able to rebase the world origin and the voxel plugin, which are where I’d usually point in the direction for this specifically. As many have said this is a goal for tons of developers. One example is the recently awarded Megagrant recipient Moonmen Games “Worlds of the future” that use the voxel plugin and world origin rebasing to great effect. How exactly they pulled it off is a mystery beyond the tools however.

Disclaimer this is external link to Youtube and everything past this point is not affiliated with Epic Games. This is not official Unreal Engine content.

I am aware Space Engineers is voxel based and they have planets, but that description isn’t telling us “how” they accomplish this. I’m also aware of the unreal engine plugin VoxelPlugin and VoxelPlugin Pro, there are tons of tutorals for open world voxel games, but nothing for an entire planet that isn’t glitchy.

I really appreciate that, and it is good to see they are working on it. It looks like a good start, but I do worry if they aren’t putting level of detail like trees and other things on the surface because they haven’t gotten to it yet, or doing that makes the game super laggy. Either way, that looks good so far. Also, I’ve heard of world origin rebasing, I remember something for UE4 where that isn’t supported or difficult to work in multiplayer. I haven’t looked that far ahead yet to see if that’s still an issue, but I’ll get around to that. Thank you for the resources. :slight_smile: I just wish more developers that have discovered this, would share that information. I’ve seen a couple other videos where this is showcased as possible, but it’s frustrating to have no leads on how to do this with the voxel plugin as someone new to unreal engine. I’ve heard how much we can tweak Unreal Engine, I’d figure if space engineers can do it, and their game engine sucks by comparison, unreal can definitely do it. :slight_smile: There also was another showcase called “Galaxia” where someone did this same thing in unreal engine 4… only he literally made a galaxy where he could fly around not just planets but other stars and galaxies, he had to use a completely new coordinate system for unreal engine. Galaxia in UE4 - YouTube like, how the heck does he do this and why do no developers share their tips. It is frustrating.

I think it’s a twofold issue in that rarely does anyone succeed in doing this to scale where it can actually be applied to a game and not so much just simulation. So finally those with the skill are usually doing it for commercial projects and sharing your internal tech outside of them is usually a no go. Sometimes you get someone who goes super in depth and makes a custom coordinate system, or a system to fake expansive spaces seemlessly, but not always do they finish these projects either.

This is one of those areas where everyone kind of finds their own solution based off of what information they can find, and iterates off of it.

Take it from me, I’ve followed the same path down to scientific papers and realized I just didn’t have the time to go into such deep development.

1 Like

Hmmm, you have a very good point there. Because the only real live working example I have and know of is Space Engineers. No way would they give a tutorial on how their engine works to accomplish this. I was just hoping since they got it, by now years later someone else had figured it out and made it mainstream. I also saw specific deep dives to solve specific “parts” of the problem, but never one full thing.

I definintely do need to do that. That’s true, I’m beginning to realize this isn’t a simple Q&A issue. I already didn’t assume it would be simple, I was just hoping the process of finding a starting point would be more simple. I think for now, the cloest I will get is in baby steps. Using the unreal engine I’ll first get to the point where I have a sort of barebones game, where all planets are flat maps, with just orbs floating in “space” where if something touches the orbs, a flat map loads. It wont’ be seamless, but I feel by the time I’ve gotten to that point, I’ll be ready to do more deep dives, and maybe work on a custom way of doing it.

I definitely think going so high with the goals off the bat will be detrimental to your progression. My recommendation is just as you say here, get the core systems you want together working, then dig into more information wherever you can.

The only thing we know for sure, is these systems (like Elite Dangerous) are all some form of smoke and mirrors, while technically their universe is to scale, you aren’t floating through each bit but teleporting around and having small instanced areas, and the ones that aren’t are quite heavily LOD’d like space engineers and heavily optimized down to their core.

If you observe how the terrain shifts as you’re coming in from space, it gives some solid hints that the closer you get, the terrain goes from essentially blurry mipmaps to cleaner mipmaps, to then false foliage, ten finally very up close you see the actual terrain that can be interacted with (and that isn’t false).

I think when you make the decision of how much fidelity you actually need, you can then start drilling down on how to be performant enough to pull it off seamlessly. By the time you have mechanics implemented you might be more leaning toward one or the other.

One thing I’m also thinking, but also could be greatly underestimating, is isn’t a round planet you land on the same thing as a flat map rendering high up, but round? Let’s say I don’t go the voxel land route. There are many games where you can take off from the surface and fly really high up where the object in flight is too far to render objects on the round including the ground itself in high detail. That isn’t anything new or revolutionary. The only difference I see between that and a planet, is making it round, and slowly lowering level of detail as you get farther, and well… gravity. It shouldn’t be that different right? The only difference being rendering that scenario in a sphere and with gravity that drops off.

You’ve got it! It’s much easier to fake it and make the planet round while far away, have some form of transition to make it look like the world is still fully round, then just pull the ship into the terrainspace like normally. That said, the seams are always visible for anyone that understands the nature of the problem. Seamless for players means suspension of disbelief more than anything.

Hi there,

I am tracking this topic, I am looking forward to testing the Shader World plugin, which showcased a “fake north pole” that can be a vast playable area in UE5. I would appreciate if @MaximeDupart could help us out.

Shader World 1.3 : Planet Node ‘Faked’ | North Pole Only | Unreal Engine - YouTube

OMFG I FOUND IT I FOUND IT!!! IT IS POSSIBLE!!! Someone made a plugin for it… that is $250 T.T but hey, it’s possible. They don’t even need to do world origin rebasing, they simply changed to 64 bit coordinates!!!

■■■■, this looks a lot more complicated than I imagined, but that, THAT is exactly what I want. I’m not sure if I’m ready to shell out that kinda money yet, but wow it’s tempting. Maybe, after I’m done with everything else making a game fun on a flat planet with land/sky/water vehicles, I’ll explore if I can accomplish this, or just bite the bullet and buy it. I am sticking with Unreal Engine, no more temptations from Unity.

2 Likes