Hello. I have been investigating this, asking on forums, searching for such questions in past, and, while I do find such threads, in none of them there is a clear answer - how to make looping world? I will define the same question in various forms, because i am not sure which one is technically more correct:
- how to make flat but looping world?
- how to use the same level quadrant in World Composition several times, cloned (don’t see such options there)?
- how to clone level quadrant to all edges and stream/swap them around in direction where player is heading?
- how to stream the same base level (with all actors and everything) again and again, effectively making infinite “planet”, but flat?
This is all one and the same question. My goal is 3D first/3rd person view flying action game that do not have artificial boundaries. I am aiming at single-player-only. I also accept that some distance visibility fog would be needed.
Games in past (non-UE) that has such system and is my “role models” about game area:
- Terminal Velocity (MS-DOS) / Fury3 (Windows95)
- Fractal Combat / Fractal Combat X (Android)
I will include illustration approx. how I imagine how such game world should look from above.
I would be very happy to get any help, recommendations, examples for this topic.
Thanks to all in advance!
Will the player can rotate left right? Or is it a rail shooter? If it s you just have to loop stream one map. Otherwise I would use the dot product from the basic rail and just set the new stream level from there.
You can imagine something like the image youve got a wall (invisible of course) that teleport you with the same transform (position, camera rotation) at a position , so you’ve got the impression to have a looping city. I hope its will help you !
that would work for an exploration type game but not if there are ai controlled enemies. for example lets say there was a enemy chasing the player when the player passed through the transport wall, then the enemies would react by turning 180 and running back across the map. you would also need multiple copies of the map which could cause issues in some cases
I should’ve checked the example games first, it much more complex than what I thought, but level streaming is still a way I think
Thank You all who is trying to help, appreciated!
What confuses me even maybe more than question itself, is that this question has not been (i guess) wide known, asked, fixed, implemented in engine as couple of checkboxes already. Is really everybody okay that levels (especially in flying games) has “borders”, where you do mandatory U-turn, or get warning “return or die!”, or just simply bump into invisible wall or weird “shield-thing”? It is strange for me that leading game engine has such limitation and no simple solution for that. Either it would be as I imagine here, flat infinite looping, OR - real round planet-levels, where straight horizontal vector would actually go parallel to surface, around planet.
I am a newcomer to UE4, just since november, and this got me surprised, i thought UE got “all bases covered” (whatever that means, i am not an american :)) )
id say there is kind of a implementation already in use if you look into a endless runner type situation. basically your going to want to the opposite of whats listed in another answer, instead of moving the character your going to want to move a second copy of the landscape when you approach the edge of the landscape your on. this solution wouldnt work however with flying unless you had a massive landscape. as for creating a level that is built like a actual planet that would be really difficult to do as you would need to either have a dynamic gravity system and base the lighting on the players position or you would have to move the world instead of the player. in either case its super complex and would require modifications to the engine in some cases