RelatedWorld Plugin for Unreal Engine 4

Hello, comrades. I want to annonce new plugin for unreal engine 4 (version 4.19 and later) wich adding support for background levels and instanced levels. This is will be usefull if you want create realy big world for players or multiroom game session or you have problem whis dynamic actors scale (like X-Rebirth ships interriors render)

Plugin for now in havy development and not support network or actors cross world travels. Also have some Editor only bugs (like tick issue in PIE).

You can found plugin sources on my GitHub repo here: Unreal-Engine-4-Multi-Map-Plugin

If you want to help me, please contact with me.

With best regards, TehnoMag

2 Likes

Hi, can you post screencaps/gifs/vids of what it can currently do?

for now it only tested for cross level render captures (offscene renderer) . On a screenshot, Default level rendered throw render Target texture on plain placed on Root Empty level with every Tick updates. In future this plane can be used as portal.

Major issue for now it is a Editor. While PIE, background levels can not ticks.

Can you upload a sample project two. It’s hard to understand how the plugin is supposed to be used.
Thanks

I will upload a sample project based on the 3td Person template, when I find a way to fix bugs in the editor and implement the basic actor transfer system.

In 2 words: I have project with Galaxy Simulation wich has support multiplayer and procedural build by server seed. Game have several generation laуers (Galaxy, Solar System, Planet orbit). This plugin can simplified process of world composing and solve floating point problem. We just cut full sized world by layers (like standard World Composing do), but placing levels not into Persistent Level as slaves but as Independed levels and switch Viewport then needed.

I guess there are two independent game modes running

yes for now. In future a plan to rewrite it and use some sort of Proxy Gamemode for transfering commands

I conceptuale upgraded plugin.
New features and fixes:

  • Fully worked in editor for now
  • No separate GameMode need for that worlds
  • Actors can migrate from world to world without needed to recreate them
  • Network support (via shared Netdriver all actors replicates onto main world on client side)
  • Multiplayer origin
  • World translation (so this can be used as alternative WorldComposer in multiplayer).

Known issues

  • Crash if not unload mannully in the EndPlay event
  • NetCullDistance working wrong (die server distances are not syncronize)
  • PhysX simulation ignore World translation

New “In Progress” version can be find here: https://github.com/Delta-Proxima-Tea…e-RelatedWorld

Physics replication seems to be fixed. However, more tests are needed. Especially i do not sure how it react to the change world translation while gameplay

Actors transltation from world to world are now working correctly.
Now all that remains is to solve the problem with NetCullDistance and implement Attachment replication.

And I still can’t figure out how to implement auto-unload triggering, according to the PersistentLevel`s EndPlay Event.

After solving these issues (except for unloding), I think it will be possible to assemble the module as a plugin and put it on the market.

NetCullDistance behavior was fixed.
Added ReplicationGraph as default replication driver (for now just for the testing purpose. Will be replaced later).

Changelog

  • Fixing Server->Client RPC
  • Added character movement compability

Also added sample project. Can be downloaded here (based on ThirdPerson template) https://github.com/Delta-Proxima-Tea…e-RelatedWorld

2 maps available for test

  1. Default - TEST/Maps/START_ONLINE - can be launch only in dedicated server mode
  2. Optional - TEST/Maps/START_OFFLINE - for singleplayer

Demonstration video available:

Case: Two maps loaded

  1. ThirdPersonExample map loaded in World Zero as Related on server side and as instance on a client side
  2. StartedMap map loadin In 0,100000000,0 as Related on server side and as instance on a client side.

On the key event character moving from one world to another.

  • On a server side world context changed
  • On a client side location and World Origin changed

ChangeLog:

  • Fixed issue related to the network camera update
  • Updated demo project (now players characters are visible correctly).

ChageLog:

  • Replaced Location Correction component with better one
  • Fixed movement lag when relative world translated very far
  • Changed location replication policy from WorldSpace to RelativeSpace
  • Added several dynamic delegates, accesable from blueprints
  • NetCullDistance does not work correctly again. Need to replace ReplicationGrpah with new policy support.
  • Demo project was updated.

ChangeLog:

  • Added new ReplicationGraph with Domain replication policy (only Public domain implemented for now)
  • NetCullDistance has experemental fix (but still got some problems if RelatedWorld was loaded very far away from global zero)
  • Demo project was updated

Domain replication policy is a policy whereby actors are replicated to clients according to the domain of the world they are on.
There are 3 domains:
Public: replication occurs to any client
Private: replication occurs only to clients that are in the same worlds. In this case, actors in the Public Domain are also replicated.
Isolated: Replication occurs exclusively to clients in this world. The public domain is ignored.

ChangeLog:

  • Implemented Public domain policy for the new ReplicationGraph
  • Implemented Private domain policy for the new ReplicationGraph

ChangeLog:

  • Implemented Isolated domain policy for the new ReplicationGraph
  • Fixed bug then Actors did not add to the Router Node while spawning if Spawning required new Rule
  • Demo project was updated

ChangeLog:

  • Fixed crash then are no any related worlds are loaded on the server
  • Added support for 4.26 (not fully working for now. See repository README)

ChangeLog:

  • 4.26 full support
  • Demo project repository switched to 4.26 (4.25 version can be find in separate brunch)