Trying to Make a Looping Map

Ok so, If anyone knows the Tale of Tale’s game: ‘The Path’, an artistic survival game that plays off the Grim Brother’s Tale ‘Red Riding Hood’. It uses a mechanic I don’t see used very often that does WONDERS or keeping the game immersive.
What it is, is when the player hits the border of the map, they are immediately spawned on the opposite side of the map, creating the illusion that the player has walked in a complete circle, as opposed to hitting an invisible wall. I want to use this mechanic in my game if I can, but I’m not sure how to reproduce it. I know I’ll need a hidden actor box along the borders of my map, probably four different ones working in correlating opposite pairs, where when they player enters one it triggers the character to respawn in the opposite box on the map (or outside of it) so that the player could essentially keep walking forwards for infinity and never hit an edge. However, I don’t want the game to jump when they player is teleported either, I’m hoping to make it look as seamless as possible, but I’m just not sure how to do this. The easiest way to explain this if im confusing people, is to consider how you never hit an edge when walking around the world. It doesn’t end, you just end up where you started eventually.

Any help or suggestions? This mechanic is a must-have for any survival game and I’m definitely willing to share any solution I come across that works properly. Believe me when I say its a lot better than simply hitting the edge of a map or dying because u fell off a map or being eaten by a ocean critter for swimming out too far.

Sounds like a drumroll UE4 AnswerHub moment!

I’ll answer it though. There are a number of approaches you can take. I would load 3 of the same level or edge-of-level if 2D or 9 of the same level or edge-of-level if 3D. You simply have the duplicates there to “appear” as though it’s infinite. With proper maths and player movement, they will never know the difference.

Game making 101: Smoke and Mirrors :slight_smile:

The other approach is of course level-streaming if you want a true “infinite” world.

Sticking multiple maps together would create more problems than solve for me. Its a huge map, so placing duplicates would make running it a nightmare for players. Also it would still have an end, and for online gameplay purposes it would mean that despite looping the map you are actually in a different location, players could never find you because one persons location could be another person’s looped location.
I need one instance, one map, that jumps the player around when you try and walk off of it.
In short, I need to know how to teleport the character without having the world need to go to a load screen all over again. I know this involves invisible actors, where once entered trigger you to respawn near their correlating opposite on the map. I may loop map sections just so ppl can never see the end of the map when they hit these actors, that’s a good idea, but they wouldn’t be for traversing, just aesthetics.
Sooo…yea. Anyone know how to teleport a character to a new location without loading a new level?

Thanks for the suggestions tho!

This is just a thought, but if you have a multiplayer game where you chase someone else, teleporting seems to be the wrong approach.

Imagine chasing someone to the edge of your map, and he goes over and gets teleported to the other side. For him everything looks normal, but the person chasing him would be left alone and wondering where his target went, right?

Try the teleport node?

Do you have a better mechanic to simulate a round map that wouldn’t have some technicalities at the seams?
I think if two players are chasing each other they’d prob both be warped eventually. There’s also going to be a scent ability so people following the trail would end up being teleported themselves, regaining visual on their target. Its not perfect but I think as far as Optimization and Maps go its the better option to simulating a round map. Unless you have a suggestion? :3

How does one use the Teleport node?

Hello all. Is levels with looping coordinates still impossible in such modern technology as UE4? Is it like “lost knowledge of Ancients”, meaning games that had that in past? (I can name “Terminal Velocity”, “Fractal Combat”, but most likely there are others). Such feature, with some “distance fog” added would give perfect freedom of “small planet”, but flat actually. Any knowlege please on this, anyone? Thank You…

Would you say Gears of War’s Train Wreck level is a good example of looping level ? If so, how was that made ?

I am all into above-surface aerial shooters. Like this: https://youtu.be/B8YwdChqL_Y
For now, I am kind of weak in theory, and i have been always weak at math (i jumped into UE4 since it can be now visual Blueprints-only). I know about Cashgen, I guess have to study implementation. But, I don’t really need procedural (as I understand that term). I need placing 1 or 3 copies of level in direction where Player is moving. He needs to have visibility fog. I made an illustration (but now, when I think of it more, probably one “layer” of extra level copies has to be placed around all the time, and then swapped some of them left-righ, up-down, when needed). Please see picture. I would love to discuss this further. “End Game”, or Ultimate Goal - checkbox at Landscapes in UE4 editor - “Loop level coordinates (infinite level)”. Also debug checkbox for otherwise mandatory visibility fog.
LoopingMapSystem.jpg

It will work for multiplayer too if your take into consideration on which piece of map each player stands. When both players are on the edge piece you teleport both of them, when one is on the edge you teleport him but draw his avatar at previous edge piece for other player to see.

Thanks for not ignoring this topic :slight_smile: So, I am a 3-month beginner. I understand I should learn now about level streaming, understood. But I would like to ask to experienced folks just this: is it doable to “stream”, swap around some squared level with everything that is there, including positions of everything. I am pretty sure i can learn to master level streaming, I just would like to know, is my imagined goal reachable at the end :slight_smile: Thank You.

Interesting, that, after my conceptual question in last message, no one is really saying would my described “looped world” be even possible, in UE4. Is that a “No”? I wasn’t even asking for ready solution (but that would be nice of course), I just wish to know is that a viable goal to try to reach. Thank You. :slight_smile:

Well, you had whole month to try implementing it…

Motorstep, no you get it excactly wrong :slight_smile: I have maybe a hour or two in a day for UE4, so, there is much basics I still go thru, etc etc. That is exactly why I asked conceptual question - is what I described possible at all, or should I strip that from my big list of “to do, to try” :slight_smile: But, thanks for responding anyway! It is not that I am not doing anything, is my latest :slight_smile: ThunderGame - Lotsa Shootin - 2018-03-28 - YouTube

@Thunder_Owl Looking good! Looping level isn’t something out of ordinary. It’s just good ol’ hackery and more about the setup than technical limitations. Many UE3-based games did that. It’s just odd that no one seem to know how they did it.

2 Likes

Motorsep, thanks :slight_smile: Sounds positive and encouraging :slight_smile: About no one telling how exactly that can be done - smells like conspiracy! Haha… Like, you know, knowledge of freemassons. We are looking for secrets of “freeloopers” :smiley:

Four trigger volumes that are on the tick and any object entering gets teleported to cords on the opposing side? Six if you want top and bottom?

Vexar, teleporting sounds about right, but what will i see when approaching “border”?
In abstract theory, build in World Composition from tiles looks right way. But, I don’t see there option to use one and the same tile. When I tried World Composition, for me it appeared that i can not put the same tile 8 more times around me. Can I ? Also, all the items and happenings in all 9 have to be the same, just visibility fogged in radius in approx. size of one tile. Any constructive suggestions to try? Maybe I can “trick” World Composition somehow?

this sounds pretty fun to build, and i currently have nothing to do, (read: im sitting at home all day doing nothing for a few months). i am gonna give this a crack. it will probably be all sorts of whacky shack crazy hacky nonsense. should be lots of fun tbh. will keep updates rolling as they come.

There are multiple ways of approaching this.

First question would be, if you want to rely on the landscape tools of Unreal (aka use a landscape) or if you want to rely on good old static mesh landscapes imported from a world generator of some sorts. If you want to use multiple tiles, then the landscape option is the worst you could choose. Duplicating Unreal landscapes ist just soo bad for performance. I tried it out and it doesn’t bode well.

However, I don’t see a problem using the same landscape over and over again. What you will need is something for the “excess space”, so you don’t see the borders of the landscape itself.

Looping a landscape will also create it’s own set of problems. It already starts with the simple question:

  1. What collision box will the the player/other objects hit? If you have intersecting boxes the game could get confused, when you land directly between intersecting points.

or

  1. What about the relation of teleporting? When you are entering in a certain angle and position on one of the boxes, you will need to set the same rotation angle and a corresponding exit point on the other border of the map. There is already some math involved in that. So you would need to have some sort of measurement grid to calculate the location on the opposing site, so you visually don’t see teleporting happen.

To point 1: To reduce this kind of problem you should have 1 REALLY big landscape, so you can scale the collision boxes accordingly. That way it will be increasingly difficult to hit one of these intersecting points.

To point 2: That is entirely up to you, how you create this grid/coordinate system.

For the excess spaces, you can actually rely on normal static mesh tiles. They don’t even need to be high poly. It is basicly just background decoration at this point.

Another problem I see coming is that your spacecraft’s hover will cause problems. If you just touch the border of the map, it might teleport back and forth.

To solve this problem, you could “force” the spacecraft to be teleported, when it is in very close proximity.

I hope that helps you somewhat. The end of the story is that you will need to do it in the way you best see fit :).