divided multi-process engine host

Idea
Implement multi-process rendering like a Chromium/Chrome do this for render web pages.
1 process = 1 UE4 render engine

How will be work this scheme?


How its can be integrated into UE4?
Its will be simple:

  1. update to new version of UE4 core with this features
  2. add special flag one of 2 flags on compilation (1) SUBHOST_APPLICATION - when you want to run your game only as sub-process (not a main, but this NOT affect on Editor or Debug Run) or (2) SUBHOST_OPTIONAL - like 1, but can be running as normal application
  3. compile
  4. profit

How to integrate in level?
You need place a control and bind input events (like mouse/keyboard/gamepad) its will be work same as Coherent UI, control surface will be show render from subhost process.

Why this need to add in core?
Typical use cases:

  1. load delay free multi level - its mean, you can INSTANT change level when player go to level end - you can load next level in sub-process host and just switch render view from current to next from subhost
  2. split view - well knowed as hot seat for playing 2 ppl on one PC
  3. browser mode - its mean multi-tabbed game interface (for example - spectate 2 or more games)
  4. …your suggestion here…

FAQ!
Q: how todo will be work subprocesses?
A: you need start subprocess manually

Q: how to interate with subprocess?
A: you can use allowed method, but usually its RPC (Remote Procedure Call)

Q: what if subprocess crash?
A: that only broke surface associated with this subprocess, main game executable will be continue working

Thx for read.
Alex “axiieflex” Volkov.