How to visually implement World Wrap on a Hex Map?

I have a hex map and I already know how to get my map to generate on the east/west edges as if it were wrapped.

So now, I would like to actually wrap the world visually. Anyone know how this might be accomplished?

My best guess would be using level streaming to spawn the level to the left and right dynamically. When you scrolled to the right you could have a volume that spawns the level offscreen.

Hmm, could I stream the same level that I am already in but from the other side?

How about a giant portal wall? It passes visuals and literally teleports the player to the other side of the map when he passes through it. It would be big enough to be seamless as far as the player can tell the world is just wrapped and he isn’t being teleported.

Currently I am going to try and “Shadow” my main map to the east and to the west.

I am going to render my main map like normal. The process I use to determine the Vectors for this map I will use 2 more times with offsets so that I can render a “Shadow” of the map to the east and the west. These Shadows will contain collision volumes and everything just like the main map. All stored indexes will match at all times. Any change to a Shadow updates the single set of arrays that basically run the map.

I will use streaming to keep the loaded maps to a max of 2, but hopefully smaller chunks for the larger maps.

As I scroll further east or west, the player pawn will run into a trigger volume that teleports him to the equivalent position on the main map

The AI won’t care about the Shadows. It will only see the main map and anything that happens or takes place on the main map will replicate to the shadow maps solely for player visuals and interaction.

This setup should be acceptable until I figure out a more elegant way to wrap the world(or such a way is added to the editor/BP).

Here is the map with shadows:

Just need to work out streaming and put teleport volumes in near the far end of each shadow.

If anyone has any better ideas or implementation I would love to hear them! :slight_smile:

Streaming is a pain for this method. I can’t find a way to procedurally generate tiles into a specific level. Even if I put a generator blueprint into the world and give it to the Sub-Level, the tiles it generates don’t go into that sub-level. This is something that I would like fixed if possible, or some other option to specify what level something gets spawned in.

So right now I spawn 3 maps into the persistent world and the teleportation is almost seamless.

Even though the world wrap works in general I would still like to hear some better ideas if anyone has any!